diff mbox series

[v4,1/2,media] imx214: device tree binding

Message ID 20181002140515.16299-1-ricardo.ribalda@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v4,1/2,media] imx214: device tree binding | expand

Commit Message

Ricardo Ribalda Delgado Oct. 2, 2018, 2:05 p.m. UTC
Document bindings for imx214 camera sensor

Cc: devicetree@vger.kernel.org
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
Changelog from v3:

Sakari Ailus:
-s/should/shall/
-remove clock-lanes

Philippe De Muyter:
-s/imx274/imx214/

Laurent Pinchart:
-s/to to/to/
-Better description of lanes
-clock-names: Shall be "xclk"
-Drop clock-freq

 .../devicetree/bindings/media/i2c/imx214.txt  | 53 +++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/i2c/imx214.txt

Comments

Laurent Pinchart Oct. 2, 2018, 8:06 p.m. UTC | #1
Hi Ricardo,

Thank you for the patch.

On Tuesday, 2 October 2018 17:05:15 EEST Ricardo Ribalda Delgado wrote:
> Document bindings for imx214 camera sensor
> 
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
> ---
> Changelog from v3:
> 
> Sakari Ailus:
> -s/should/shall/
> -remove clock-lanes
> 
> Philippe De Muyter:
> -s/imx274/imx214/
> 
> Laurent Pinchart:
> -s/to to/to/
> -Better description of lanes
> -clock-names: Shall be "xclk"
> -Drop clock-freq
> 
>  .../devicetree/bindings/media/i2c/imx214.txt  | 53 +++++++++++++++++++
>  1 file changed, 53 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/imx214.txt
> 
> diff --git a/Documentation/devicetree/bindings/media/i2c/imx214.txt
> b/Documentation/devicetree/bindings/media/i2c/imx214.txt new file mode
> 100644
> index 000000000000..421a019ab7f9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/imx214.txt
> @@ -0,0 +1,53 @@
> +* Sony 1/3.06-Inch 13.13Mp CMOS Digital Image Sensor
> +
> +The Sony imx214 is a 1/3.06-inch CMOS active pixel digital image sensor
> with +an active array size of 4224H x 3200V. It is programmable through an
> I2C +interface. The I2C address can be configured to 0x1a or 0x10,
> depending on +how the hardware is wired.
> +Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a maximum
> +throughput of 1.2Gbps/lane.
> +
> +
> +Required Properties:
> +- compatible: value should be "sony,imx214" for imx214 sensor
> +- reg: I2C bus address of the device
> +- enable-gpios: GPIO descriptor for the enable pin.
> +- vdddo-supply: Chip digital IO regulator (1.8V).
> +- vdda-supply: Chip analog regulator (2.7V).
> +- vddd-supply: Chip digital core regulator (1.12V).
> +- clocks: Reference to the xclk clock.
> +- clock-names:  Shall be "xclk".
> +
> +Optional Properties:
> +- flash-leds: See ../video-interfaces.txt
> +- lens-focus: See ../video-interfaces.txt
> +
> +The imx214 device node shall contain one 'port' child node with
> +an 'endpoint' subnode. For further reading on port node refer to
> +Documentation/devicetree/bindings/media/video-interfaces.txt.
> +
> +Required Properties on endpoint:
> +- data-lanes: check ../video-interfaces.txt

As I suppose you got access to the datasheet which doesn't appear to be 
public, I'll take this as an opportunity to fish for information :-) Does the 
sensor support remapping data lanes ? Could you please document that here ?

You should also state that only the 2 lanes and 4 lanes options are valid, and 
what lanes can be used in those cases. I assume that would be <1 2> and <1 2 3 
4>, but if other options are possible, it would be useful to document that.

With this updated,

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> +- link-frequencies: check ../video-interfaces.txt
> +- remote-endpoint: check ../video-interfaces.txt
> +
> +Example:
> +
> +	camera_rear@1a {
> +		compatible = "sony,imx214";
> +		reg = <0x1a>;
> +		vdddo-supply = <&pm8994_lvs1>;
> +		vddd-supply = <&camera_vddd_1v12>;
> +		vdda-supply = <&pm8994_l17>;
> +		lens-focus = <&ad5820>;
> +		enable-gpios = <&msmgpio 25 GPIO_ACTIVE_HIGH>;
> +		clocks = <&mmcc CAMSS_MCLK0_CLK>;
> +		clock-names = "xclk";
> +		port {
> +			imx214_ep: endpoint {
> +				data-lanes = <1 2 3 4>;
> +				link-frequencies = /bits/ 64 <480000000>;
> +				remote-endpoint = <&csiphy0_ep>;
> +			};
> +		};
> +	};
Ricardo Ribalda Delgado Oct. 3, 2018, 6:23 a.m. UTC | #2
Hi Laurent
On Tue, Oct 2, 2018 at 10:06 PM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Ricardo,
>
> Thank you for the patch.
>
> On Tuesday, 2 October 2018 17:05:15 EEST Ricardo Ribalda Delgado wrote:
> > Document bindings for imx214 camera sensor
> >
> > Cc: devicetree@vger.kernel.org
> > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
> > ---
> > Changelog from v3:
> >
> > Sakari Ailus:
> > -s/should/shall/
> > -remove clock-lanes
> >
> > Philippe De Muyter:
> > -s/imx274/imx214/
> >
> > Laurent Pinchart:
> > -s/to to/to/
> > -Better description of lanes
> > -clock-names: Shall be "xclk"
> > -Drop clock-freq
> >
> >  .../devicetree/bindings/media/i2c/imx214.txt  | 53 +++++++++++++++++++
> >  1 file changed, 53 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/media/i2c/imx214.txt
> >
> > diff --git a/Documentation/devicetree/bindings/media/i2c/imx214.txt
> > b/Documentation/devicetree/bindings/media/i2c/imx214.txt new file mode
> > 100644
> > index 000000000000..421a019ab7f9
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/i2c/imx214.txt
> > @@ -0,0 +1,53 @@
> > +* Sony 1/3.06-Inch 13.13Mp CMOS Digital Image Sensor
> > +
> > +The Sony imx214 is a 1/3.06-inch CMOS active pixel digital image sensor
> > with +an active array size of 4224H x 3200V. It is programmable through an
> > I2C +interface. The I2C address can be configured to 0x1a or 0x10,
> > depending on +how the hardware is wired.
> > +Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a maximum
> > +throughput of 1.2Gbps/lane.
> > +
> > +
> > +Required Properties:
> > +- compatible: value should be "sony,imx214" for imx214 sensor
> > +- reg: I2C bus address of the device
> > +- enable-gpios: GPIO descriptor for the enable pin.
> > +- vdddo-supply: Chip digital IO regulator (1.8V).
> > +- vdda-supply: Chip analog regulator (2.7V).
> > +- vddd-supply: Chip digital core regulator (1.12V).
> > +- clocks: Reference to the xclk clock.
> > +- clock-names:  Shall be "xclk".
> > +
> > +Optional Properties:
> > +- flash-leds: See ../video-interfaces.txt
> > +- lens-focus: See ../video-interfaces.txt
> > +
> > +The imx214 device node shall contain one 'port' child node with
> > +an 'endpoint' subnode. For further reading on port node refer to
> > +Documentation/devicetree/bindings/media/video-interfaces.txt.
> > +
> > +Required Properties on endpoint:
> > +- data-lanes: check ../video-interfaces.txt
>
> As I suppose you got access to the datasheet which doesn't appear to be
> public, I'll take this as an opportunity to fish for information :-) Does the
> sensor support remapping data lanes ? Could you please document that here ?
>
> You should also state that only the 2 lanes and 4 lanes options are valid, and
> what lanes can be used in those cases. I assume that would be <1 2> and <1 2 3
> 4>, but if other options are possible, it would be useful to document that.

I wish I had. This is the best documentation that I got access to,
after a lot of googling:
http://www.ahdsensor.com/downloadRepository/3acdda8d-b531-4a76-a27d-9dd09be980ee.pdf

I never understood this secrecy around datasheets. How the f*&& are we
going to buy chips and make desings around them if we cannot get
information?! Sorry that was my daily vent

The 2 and 4 lane option was obtained from the functional description
of the chip (page 1). The obvious order would be <1 2>, but I have
also seen <1 3> in other chips, so I rather not mention it on the
devicetree doc.

Thanks a lot for your review :)

>
> With this updated,
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> > +- link-frequencies: check ../video-interfaces.txt
> > +- remote-endpoint: check ../video-interfaces.txt
> > +
> > +Example:
> > +
> > +     camera_rear@1a {
> > +             compatible = "sony,imx214";
> > +             reg = <0x1a>;
> > +             vdddo-supply = <&pm8994_lvs1>;
> > +             vddd-supply = <&camera_vddd_1v12>;
> > +             vdda-supply = <&pm8994_l17>;
> > +             lens-focus = <&ad5820>;
> > +             enable-gpios = <&msmgpio 25 GPIO_ACTIVE_HIGH>;
> > +             clocks = <&mmcc CAMSS_MCLK0_CLK>;
> > +             clock-names = "xclk";
> > +             port {
> > +                     imx214_ep: endpoint {
> > +                             data-lanes = <1 2 3 4>;
> > +                             link-frequencies = /bits/ 64 <480000000>;
> > +                             remote-endpoint = <&csiphy0_ep>;
> > +                     };
> > +             };
> > +     };
>
>
> --
> Regards,
>
> Laurent Pinchart
>
>
>
Sakari Ailus Oct. 3, 2018, 10:42 a.m. UTC | #3
On Wed, Oct 03, 2018 at 08:23:43AM +0200, Ricardo Ribalda Delgado wrote:
> Hi Laurent
> On Tue, Oct 2, 2018 at 10:06 PM Laurent Pinchart
> <laurent.pinchart@ideasonboard.com> wrote:
> >
> > Hi Ricardo,
> >
> > Thank you for the patch.
> >
> > On Tuesday, 2 October 2018 17:05:15 EEST Ricardo Ribalda Delgado wrote:
> > > Document bindings for imx214 camera sensor
> > >
> > > Cc: devicetree@vger.kernel.org
> > > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
> > > ---
> > > Changelog from v3:
> > >
> > > Sakari Ailus:
> > > -s/should/shall/
> > > -remove clock-lanes
> > >
> > > Philippe De Muyter:
> > > -s/imx274/imx214/
> > >
> > > Laurent Pinchart:
> > > -s/to to/to/
> > > -Better description of lanes
> > > -clock-names: Shall be "xclk"
> > > -Drop clock-freq
> > >
> > >  .../devicetree/bindings/media/i2c/imx214.txt  | 53 +++++++++++++++++++
> > >  1 file changed, 53 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/media/i2c/imx214.txt
> > >
> > > diff --git a/Documentation/devicetree/bindings/media/i2c/imx214.txt
> > > b/Documentation/devicetree/bindings/media/i2c/imx214.txt new file mode
> > > 100644
> > > index 000000000000..421a019ab7f9
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/media/i2c/imx214.txt
> > > @@ -0,0 +1,53 @@
> > > +* Sony 1/3.06-Inch 13.13Mp CMOS Digital Image Sensor
> > > +
> > > +The Sony imx214 is a 1/3.06-inch CMOS active pixel digital image sensor
> > > with +an active array size of 4224H x 3200V. It is programmable through an
> > > I2C +interface. The I2C address can be configured to 0x1a or 0x10,
> > > depending on +how the hardware is wired.
> > > +Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a maximum
> > > +throughput of 1.2Gbps/lane.
> > > +
> > > +
> > > +Required Properties:
> > > +- compatible: value should be "sony,imx214" for imx214 sensor
> > > +- reg: I2C bus address of the device
> > > +- enable-gpios: GPIO descriptor for the enable pin.
> > > +- vdddo-supply: Chip digital IO regulator (1.8V).
> > > +- vdda-supply: Chip analog regulator (2.7V).
> > > +- vddd-supply: Chip digital core regulator (1.12V).
> > > +- clocks: Reference to the xclk clock.
> > > +- clock-names:  Shall be "xclk".
> > > +
> > > +Optional Properties:
> > > +- flash-leds: See ../video-interfaces.txt
> > > +- lens-focus: See ../video-interfaces.txt
> > > +
> > > +The imx214 device node shall contain one 'port' child node with
> > > +an 'endpoint' subnode. For further reading on port node refer to
> > > +Documentation/devicetree/bindings/media/video-interfaces.txt.
> > > +
> > > +Required Properties on endpoint:
> > > +- data-lanes: check ../video-interfaces.txt
> >
> > As I suppose you got access to the datasheet which doesn't appear to be
> > public, I'll take this as an opportunity to fish for information :-) Does the
> > sensor support remapping data lanes ? Could you please document that here ?
> >
> > You should also state that only the 2 lanes and 4 lanes options are valid, and
> > what lanes can be used in those cases. I assume that would be <1 2> and <1 2 3
> > 4>, but if other options are possible, it would be useful to document that.
> 
> I wish I had. This is the best documentation that I got access to,
> after a lot of googling:
> http://www.ahdsensor.com/downloadRepository/3acdda8d-b531-4a76-a27d-9dd09be980ee.pdf
> 
> I never understood this secrecy around datasheets. How the f*&& are we
> going to buy chips and make desings around them if we cannot get
> information?! Sorry that was my daily vent
> 
> The 2 and 4 lane option was obtained from the functional description
> of the chip (page 1). The obvious order would be <1 2>, but I have
> also seen <1 3> in other chips, so I rather not mention it on the
> devicetree doc.

<1 3> makes sense if lane remapping is supported by the hardware. If it's
not, you should use a monotonically incrementing sequence.
Sakari Ailus Oct. 3, 2018, 10:47 a.m. UTC | #4
On Wed, Oct 03, 2018 at 01:42:51PM +0300, Sakari Ailus wrote:
> On Wed, Oct 03, 2018 at 08:23:43AM +0200, Ricardo Ribalda Delgado wrote:
> > Hi Laurent
> > On Tue, Oct 2, 2018 at 10:06 PM Laurent Pinchart
> > <laurent.pinchart@ideasonboard.com> wrote:
> > >
> > > Hi Ricardo,
> > >
> > > Thank you for the patch.
> > >
> > > On Tuesday, 2 October 2018 17:05:15 EEST Ricardo Ribalda Delgado wrote:
> > > > Document bindings for imx214 camera sensor
> > > >
> > > > Cc: devicetree@vger.kernel.org
> > > > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
> > > > ---
> > > > Changelog from v3:
> > > >
> > > > Sakari Ailus:
> > > > -s/should/shall/
> > > > -remove clock-lanes
> > > >
> > > > Philippe De Muyter:
> > > > -s/imx274/imx214/
> > > >
> > > > Laurent Pinchart:
> > > > -s/to to/to/
> > > > -Better description of lanes
> > > > -clock-names: Shall be "xclk"
> > > > -Drop clock-freq
> > > >
> > > >  .../devicetree/bindings/media/i2c/imx214.txt  | 53 +++++++++++++++++++
> > > >  1 file changed, 53 insertions(+)
> > > >  create mode 100644 Documentation/devicetree/bindings/media/i2c/imx214.txt
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/media/i2c/imx214.txt
> > > > b/Documentation/devicetree/bindings/media/i2c/imx214.txt new file mode
> > > > 100644
> > > > index 000000000000..421a019ab7f9
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/media/i2c/imx214.txt
> > > > @@ -0,0 +1,53 @@
> > > > +* Sony 1/3.06-Inch 13.13Mp CMOS Digital Image Sensor
> > > > +
> > > > +The Sony imx214 is a 1/3.06-inch CMOS active pixel digital image sensor
> > > > with +an active array size of 4224H x 3200V. It is programmable through an
> > > > I2C +interface. The I2C address can be configured to 0x1a or 0x10,
> > > > depending on +how the hardware is wired.
> > > > +Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a maximum
> > > > +throughput of 1.2Gbps/lane.
> > > > +
> > > > +
> > > > +Required Properties:
> > > > +- compatible: value should be "sony,imx214" for imx214 sensor
> > > > +- reg: I2C bus address of the device
> > > > +- enable-gpios: GPIO descriptor for the enable pin.
> > > > +- vdddo-supply: Chip digital IO regulator (1.8V).
> > > > +- vdda-supply: Chip analog regulator (2.7V).
> > > > +- vddd-supply: Chip digital core regulator (1.12V).
> > > > +- clocks: Reference to the xclk clock.
> > > > +- clock-names:  Shall be "xclk".
> > > > +
> > > > +Optional Properties:
> > > > +- flash-leds: See ../video-interfaces.txt
> > > > +- lens-focus: See ../video-interfaces.txt
> > > > +
> > > > +The imx214 device node shall contain one 'port' child node with
> > > > +an 'endpoint' subnode. For further reading on port node refer to
> > > > +Documentation/devicetree/bindings/media/video-interfaces.txt.
> > > > +
> > > > +Required Properties on endpoint:
> > > > +- data-lanes: check ../video-interfaces.txt
> > >
> > > As I suppose you got access to the datasheet which doesn't appear to be
> > > public, I'll take this as an opportunity to fish for information :-) Does the
> > > sensor support remapping data lanes ? Could you please document that here ?
> > >
> > > You should also state that only the 2 lanes and 4 lanes options are valid, and
> > > what lanes can be used in those cases. I assume that would be <1 2> and <1 2 3
> > > 4>, but if other options are possible, it would be useful to document that.
> > 
> > I wish I had. This is the best documentation that I got access to,
> > after a lot of googling:
> > http://www.ahdsensor.com/downloadRepository/3acdda8d-b531-4a76-a27d-9dd09be980ee.pdf
> > 
> > I never understood this secrecy around datasheets. How the f*&& are we
> > going to buy chips and make desings around them if we cannot get
> > information?! Sorry that was my daily vent
> > 
> > The 2 and 4 lane option was obtained from the functional description
> > of the chip (page 1). The obvious order would be <1 2>, but I have
> > also seen <1 3> in other chips, so I rather not mention it on the
> > devicetree doc.
> 
> <1 3> makes sense if lane remapping is supported by the hardware. If it's
> not, you should use a monotonically incrementing sequence.

The DT binding documentation states that if lane reordering is not
supported, monotonically incremented values shall be used. So no need to
put that here.

The reader would probably need some hardware documentation for creating a
board to begin with, and could obtain the information on lane remapping
support from the datasheet. I think more elaborate documentation in this
area makes sense for CSI-2 receiver drivers, especially those with multiple
receivers that can share lanes.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/media/i2c/imx214.txt b/Documentation/devicetree/bindings/media/i2c/imx214.txt
new file mode 100644
index 000000000000..421a019ab7f9
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/imx214.txt
@@ -0,0 +1,53 @@ 
+* Sony 1/3.06-Inch 13.13Mp CMOS Digital Image Sensor
+
+The Sony imx214 is a 1/3.06-inch CMOS active pixel digital image sensor with
+an active array size of 4224H x 3200V. It is programmable through an I2C
+interface. The I2C address can be configured to 0x1a or 0x10, depending on
+how the hardware is wired.
+Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a maximum
+throughput of 1.2Gbps/lane.
+
+
+Required Properties:
+- compatible: value should be "sony,imx214" for imx214 sensor
+- reg: I2C bus address of the device
+- enable-gpios: GPIO descriptor for the enable pin.
+- vdddo-supply: Chip digital IO regulator (1.8V).
+- vdda-supply: Chip analog regulator (2.7V).
+- vddd-supply: Chip digital core regulator (1.12V).
+- clocks: Reference to the xclk clock.
+- clock-names:  Shall be "xclk".
+
+Optional Properties:
+- flash-leds: See ../video-interfaces.txt
+- lens-focus: See ../video-interfaces.txt
+
+The imx214 device node shall contain one 'port' child node with
+an 'endpoint' subnode. For further reading on port node refer to
+Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+Required Properties on endpoint:
+- data-lanes: check ../video-interfaces.txt
+- link-frequencies: check ../video-interfaces.txt
+- remote-endpoint: check ../video-interfaces.txt
+
+Example:
+
+	camera_rear@1a {
+		compatible = "sony,imx214";
+		reg = <0x1a>;
+		vdddo-supply = <&pm8994_lvs1>;
+		vddd-supply = <&camera_vddd_1v12>;
+		vdda-supply = <&pm8994_l17>;
+		lens-focus = <&ad5820>;
+		enable-gpios = <&msmgpio 25 GPIO_ACTIVE_HIGH>;
+		clocks = <&mmcc CAMSS_MCLK0_CLK>;
+		clock-names = "xclk";
+		port {
+			imx214_ep: endpoint {
+				data-lanes = <1 2 3 4>;
+				link-frequencies = /bits/ 64 <480000000>;
+				remote-endpoint = <&csiphy0_ep>;
+			};
+		};
+	};