From: Mark Rutland <mark.rutland@arm.com>
To: Sebastian Reichel <sre@debian.org>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"rob.herring@calxeda.com" <rob.herring@calxeda.com>,
Pawel Moll <Pawel.Moll@arm.com>,
Stephen Warren <swarren@wwwdotorg.org>,
Ian Campbell <ijc+devicetree@hellion.org.uk>
Subject: Re: [early RFC] Device Tree bindings for OMAP3 Camera Subsystem
Date: Fri, 15 Nov 2013 17:18:10 +0000 [thread overview]
Message-ID: <20131115171809.GJ24831@e106331-lin.cambridge.arm.com> (raw)
In-Reply-To: <20131103220315.GA11659@earth.universe>
On Sun, Nov 03, 2013 at 10:03:15PM +0000, Sebastian Reichel wrote:
> Hi,
>
> This is an early RFC for omap3isp DT support. For now i just created a potential DT
> binding documentation based on the existing platform data:
>
> Binding for the OMAP3 Camera subsystem with the image signal processor (ISP) feature.
>
> omap3isp node
> -------------
>
> Required properties:
>
> - compatible : should be "ti,omap3isp" for OMAP3;
> - reg : physical addresses and length of the registers set;
> - clocks : list of clock specifiers, corresponding to entries in
> clock-names property;
> - clock-names : must contain "cam_ick", "cam_mclk", "csi2_96m_fck",
> "l3_ick" entries, matching entries in the clocks property;
> - interrupts : must contain mmu interrupt;
> - ti,iommu : phandle to isp mmu;
s/;/./ (or s/;//)
>
> Optional properties:
>
> - VDD_CSIPHY1-supply : regulator for csi phy1
> - VDD_CSIPHY2-supply : regulator for csi phy2
I'd make these lower-case. Upper case is unusual, and lower-case is
preferred.
> - ti,isp-xclk-1 : device(s) attached to ISP's first external clock
> - ti,isp-xclk-2 : device(s) attached to ISP's second external clock
If the ISP is acting as a clock controller, it should have #clock-cells,
and export clocks to the consumers. They can in turn refer to th ISP via
the standard clocks property.
>
> device-group subnode
> --------------------
>
> Required properties:
> - ti,isp-interface-type : Integer describing the interface type, one of the following
> * 0 = ISP_INTERFACE_PARALLEL
> * 1 = ISP_INTERFACE_CSI2A_PHY2
> * 2 = ISP_INTERFACE_CCP2B_PHY1
> * 3 = ISP_INTERFACE_CCP2B_PHY2
> * 4 = ISP_INTERFACE_CSI2C_PHY1
Are these PHYs always present?
Are they external to the ISP?
It's not possible for several of these to be valid simultaneously?
> - ti,isp-devices : Array of phandles to devices connected via the interface
Which devices are these? This looks backwards to me...
> - One of the following configuration nodes (depending on ti,isp-interface-type)
> - ti,ccp2-bus-cfg : CCP2 bus configuration (needed for ISP_INTERFACE_CCP*)
> - ti,parallel-bus-cfg : PARALLEL bus configuration (needed for ISP_INTERFACE_PARALLEL)
> - ti,csi2-bus-cfg : CSI bus configuration (needed for ISP_INTERFACE_CSI*)
>
> ccp2-bus-cfg subnode
> --------------------
>
> Required properties:
> - ti,video-port-clock-divisor : integer; used for video port output clock control
>
> Optional properties:
> - ti,inverted-clock : boolean; clock/strobe signal is inverted
> - ti,enable-crc : boolean; enable crc checking
Why can't this be a run-time option?
> - ti,ccp2-mode-mipi : boolean; port is used in MIPI-CSI1 mode (default: CCP2 mode)
> - ti,phy-layer-is-strobe : boolean; use data/strobe physical layer (default: data/clock physical layer)
> - ti,data-lane-configuration : integer array with position and polarity information for lane 1 and 2
> - ti,clock-lane-configuration : integer array with position and polarity information for clock lane
In what precise format?
>
> parallel-bus-cfg subnode
> ------------------------
>
> Required properties:
> - ti,data-lane-shift : integer; shift data lanes by this amount
>
> Optional properties:
> - ti,clock-falling-edge : boolean; sample on falling edge (default: rising edge)
> - ti,horizontal-synchronization-active-low : boolean; default: active high
> - ti,vertical-synchronization-active-low : boolean; default: active high
> - ti,data-polarity-ones-complement : boolean; data polarity is one's complement
>
> csi2-bus-cfg subnode
> --------------------
>
> Required properties:
> - ti,video-port-clock-divisor : integer; used for video port output clock control
>
> Optional properties:
> - ti,data-lane-configuration : integer array with position and polarity information for lane 1 and 2
> - ti,clock-lane-configuration : integer array with position and polarity information for clock lane
> - ti,enable-crc : boolean; enable crc checking
Similarly, run-time selectable?
>
> Example for Nokia N900
> ----------------------
>
> omap3isp: isp@480BC000 {
> compatible = "ti,omap3isp";
> reg = <
> /* OMAP3430+ */
> 0x480BC000 0x070 /* base */
> 0x480BC100 0x078 /* cbuf */
> 0x480BC400 0x1F0 /* cpp2 */
> 0x480BC600 0x0A8 /* ccdc */
> 0x480BCA00 0x048 /* hist */
> 0x480BCC00 0x060 /* h3a */
> 0x480BCE00 0x0A0 /* prev */
> 0x480BD000 0x0AC /* resz */
> 0x480BD200 0x0FC /* sbl */
> 0x480BD400 0x070 /* mmu */
> >;
The binding implied a single contiguous reg entry. These look like they
are in a contiguous register space, is it not possible to describe them
via a single large contiguous entry?
Also, please bracket individual entries in a list like so:
reg = <0x0 0x4>,
<0x44 0x27>,
<0x800 0x63>;
It's far easier to read arbitrary lists when they're bracketed
consistently.
>
> clocks = < &cam_ick &cam_mclk &csi2_96m_fck &l3_ick >;
Similarly here.
> clock-names = "cam_ick", "cam_mclk", "csi2_96m_fck", "l3_ick";
>
> interrupts = <24>;
>
> ti,iommu = <&mmu_isp>;
>
> ti,isp-xclk-1 = <
> &et8ek8
> &smiapp_dfl
> >;
And here (though I think this property is unnecessary).
Thanks,
Mark.
next prev parent reply other threads:[~2013-11-15 17:18 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-03 22:03 [early RFC] Device Tree bindings for OMAP3 Camera Subsystem Sebastian Reichel
2013-11-04 19:49 ` jean-philippe francois
2013-11-06 0:48 ` Laurent Pinchart
2013-11-15 17:18 ` Mark Rutland [this message]
2014-01-15 19:41 ` [RFCv2] Device Tree bindings for OMAP3 Camera System Sebastian Reichel
2014-01-20 4:19 ` Sakari Ailus
2014-01-20 22:16 ` Sylwester Nawrocki
2014-01-20 23:27 ` Sebastian Reichel
2014-01-22 22:27 ` Sylwester Nawrocki
2014-01-22 22:57 ` Laurent Pinchart
2014-01-23 0:11 ` Sebastian Reichel
2014-01-23 11:44 ` Laurent Pinchart
2014-02-01 9:39 ` Sakari Ailus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131115171809.GJ24831@e106331-lin.cambridge.arm.com \
--to=mark.rutland@arm.com \
--cc=Pawel.Moll@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=rob.herring@calxeda.com \
--cc=sre@debian.org \
--cc=swarren@wwwdotorg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).