diff mbox

[v6,1/2] media: i2c/ov5645: add the device tree binding document

Message ID 1473326035-25228-2-git-send-email-todor.tomov@linaro.org
State Superseded
Headers show

Commit Message

Todor Tomov Sept. 8, 2016, 9:13 a.m. UTC
Add the document for ov5645 device tree binding.

Signed-off-by: Todor Tomov <todor.tomov@linaro.org>

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

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Todor Tomov Oct. 14, 2016, 12:01 p.m. UTC | #1
Hi Laurent,

Thank you for the review.

On 09/08/2016 03:22 PM, Laurent Pinchart wrote:
> Hi Todor,

> 

> Thank you for the patch.

> 

> On Thursday 08 Sep 2016 12:13:54 Todor Tomov wrote:

>> Add the document for ov5645 device tree binding.

>>

>> Signed-off-by: Todor Tomov <todor.tomov@linaro.org>

>> ---

>>  .../devicetree/bindings/media/i2c/ov5645.txt       | 52 +++++++++++++++++++

>>  1 file changed, 52 insertions(+)

>>  create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.txt

>>

>> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt

>> b/Documentation/devicetree/bindings/media/i2c/ov5645.txt new file mode

>> 100644

>> index 0000000..bcf6dba

>> --- /dev/null

>> +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt

>> @@ -0,0 +1,52 @@

>> +* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor

>> +

>> +The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image sensor

>> with +an active array size of 2592H x 1944V. It is programmable through a

>> serial I2C +interface.

>> +

>> +Required Properties:

>> +- compatible: Value should be "ovti,ov5645".

>> +- clocks: Reference to the xclk clock.

>> +- clock-names: Should be "xclk".

>> +- clock-frequency: Frequency of the xclk clock.

>> +- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH.

>> +- reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW.

> 

> Shouldn't the enable and reset GPIOs be optional ?

I don't think so. The operations on the GPIOs are part of the power up sequence
of the sensor so we must have control over them to execute the exact sequence.

> 

>> +- vdddo-supply: Chip digital IO regulator.

>> +- vdda-supply: Chip analog regulator.

>> +- vddd-supply: Chip digital core regulator.

>> +

>> +The device node must contain one 'port' child node for its digital output

>> +video port, in accordance with the video interface bindings defined in

>> +Documentation/devicetree/bindings/media/video-interfaces.txt.

>> +

>> +Example:

>> +

>> +	&i2c1 {

>> +		...

>> +

>> +		ov5645: ov5645@78 {

>> +			compatible = "ovti,ov5645";

>> +			reg = <0x78>;

>> +

>> +			enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;

>> +			reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;

>> +			pinctrl-names = "default";

>> +			pinctrl-0 = <&camera_rear_default>;

>> +

>> +			clocks = <&clks 200>;

>> +			clock-names = "xclk";

>> +			clock-frequency = <23880000>;

>> +

>> +			vdddo-supply = <&camera_dovdd_1v8>;

>> +			vdda-supply = <&camera_avdd_2v8>;

>> +			vddd-supply = <&camera_dvdd_1v2>;

>> +

>> +			port {

>> +				ov5645_ep: endpoint {

>> +					clock-lanes = <1>;

>> +					data-lanes = <0 2>;

>> +					remote-endpoint = <&csi0_ep>;

>> +				};

>> +			};

>> +		};

>> +	};

> 


-- 
Best regards,
Todor Tomov
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Laurent Pinchart Oct. 19, 2016, 8:49 a.m. UTC | #2
Hi Todor,

On Friday 14 Oct 2016 15:01:08 Todor Tomov wrote:
> On 09/08/2016 03:22 PM, Laurent Pinchart wrote:

> > On Thursday 08 Sep 2016 12:13:54 Todor Tomov wrote:

> >> Add the document for ov5645 device tree binding.

> >> 

> >> Signed-off-by: Todor Tomov <todor.tomov@linaro.org>

> >> ---

> >> 

> >>  .../devicetree/bindings/media/i2c/ov5645.txt       | 52 ++++++++++++++++

> >>  1 file changed, 52 insertions(+)

> >>  create mode 100644

> >>  Documentation/devicetree/bindings/media/i2c/ov5645.txt

> >> 

> >> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt

> >> b/Documentation/devicetree/bindings/media/i2c/ov5645.txt new file mode

> >> 100644

> >> index 0000000..bcf6dba

> >> --- /dev/null

> >> +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt

> >> @@ -0,0 +1,52 @@

> >> +* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor

> >> +

> >> +The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image

> >> sensor with

> >> +an active array size of 2592H x 1944V. It is programmable through a

> >> serial I2C

> >> +interface.

> >> +

> >> +Required Properties:

> >> +- compatible: Value should be "ovti,ov5645".

> >> +- clocks: Reference to the xclk clock.

> >> +- clock-names: Should be "xclk".

> >> +- clock-frequency: Frequency of the xclk clock.

> >> +- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH.


By the way, isn't the pin called pwdnb and isn't it active low ?

> >> +- reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW.

> > 

> > Shouldn't the enable and reset GPIOs be optional ?

> 

> I don't think so. The operations on the GPIOs are part of the power up

> sequence of the sensor so we must have control over them to execute the

> exact sequence.


Right, let's keep them mandatory. If we later have to make them optional for a 
board that pulls one of those signals up (assuming this can work at all) we'll 
revisit the bindings.

> >> +- vdddo-supply: Chip digital IO regulator.

> >> +- vdda-supply: Chip analog regulator.

> >> +- vddd-supply: Chip digital core regulator.

> >> +

> >> +The device node must contain one 'port' child node for its digital

> >> output

> >> +video port, in accordance with the video interface bindings defined in

> >> +Documentation/devicetree/bindings/media/video-interfaces.txt.

> >> +

> >> +Example:

> >> +

> >> +	&i2c1 {

> >> +		...

> >> +

> >> +		ov5645: ov5645@78 {

> >> +			compatible = "ovti,ov5645";

> >> +			reg = <0x78>;

> >> +

> >> +			enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;

> >> +			reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;

> >> +			pinctrl-names = "default";

> >> +			pinctrl-0 = <&camera_rear_default>;

> >> +

> >> +			clocks = <&clks 200>;

> >> +			clock-names = "xclk";

> >> +			clock-frequency = <23880000>;

> >> +

> >> +			vdddo-supply = <&camera_dovdd_1v8>;

> >> +			vdda-supply = <&camera_avdd_2v8>;

> >> +			vddd-supply = <&camera_dvdd_1v2>;

> >> +

> >> +			port {

> >> +				ov5645_ep: endpoint {

> >> +					clock-lanes = <1>;

> >> +					data-lanes = <0 2>;

> >> +					remote-endpoint = <&csi0_ep>;

> >> +				};

> >> +			};

> >> +		};

> >> +	};


-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Todor Tomov Oct. 19, 2016, 9:14 a.m. UTC | #3
Hi Laurent,

Thank you for the review.

On 10/19/2016 11:49 AM, Laurent Pinchart wrote:
> Hi Todor,

> 

> On Friday 14 Oct 2016 15:01:08 Todor Tomov wrote:

>> On 09/08/2016 03:22 PM, Laurent Pinchart wrote:

>>> On Thursday 08 Sep 2016 12:13:54 Todor Tomov wrote:

>>>> Add the document for ov5645 device tree binding.

>>>>

>>>> Signed-off-by: Todor Tomov <todor.tomov@linaro.org>

>>>> ---

>>>>

>>>>  .../devicetree/bindings/media/i2c/ov5645.txt       | 52 ++++++++++++++++

>>>>  1 file changed, 52 insertions(+)

>>>>  create mode 100644

>>>>  Documentation/devicetree/bindings/media/i2c/ov5645.txt

>>>>

>>>> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt

>>>> b/Documentation/devicetree/bindings/media/i2c/ov5645.txt new file mode

>>>> 100644

>>>> index 0000000..bcf6dba

>>>> --- /dev/null

>>>> +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt

>>>> @@ -0,0 +1,52 @@

>>>> +* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor

>>>> +

>>>> +The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image

>>>> sensor with

>>>> +an active array size of 2592H x 1944V. It is programmable through a

>>>> serial I2C

>>>> +interface.

>>>> +

>>>> +Required Properties:

>>>> +- compatible: Value should be "ovti,ov5645".

>>>> +- clocks: Reference to the xclk clock.

>>>> +- clock-names: Should be "xclk".

>>>> +- clock-frequency: Frequency of the xclk clock.

>>>> +- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH.

> 

> By the way, isn't the pin called pwdnb and isn't it active low ?


Yes, the pin is called "pwdnb" and is active low (must be up for power to be up).
I have changed the name to "enable" as it is more generally used - this change
was suggested by Rob Herring. As the logic switches with this change of the name
I have stated it is active high which ends up in the same condition (enable
must be up for the power to be up). I think this is correct, isn't it?

> 

>>>> +- reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW.

>>>

>>> Shouldn't the enable and reset GPIOs be optional ?

>>

>> I don't think so. The operations on the GPIOs are part of the power up

>> sequence of the sensor so we must have control over them to execute the

>> exact sequence.

> 

> Right, let's keep them mandatory. If we later have to make them optional for a 

> board that pulls one of those signals up (assuming this can work at all) we'll 

> revisit the bindings.


Ok.

> 

>>>> +- vdddo-supply: Chip digital IO regulator.

>>>> +- vdda-supply: Chip analog regulator.

>>>> +- vddd-supply: Chip digital core regulator.

>>>> +

>>>> +The device node must contain one 'port' child node for its digital

>>>> output

>>>> +video port, in accordance with the video interface bindings defined in

>>>> +Documentation/devicetree/bindings/media/video-interfaces.txt.

>>>> +

>>>> +Example:

>>>> +

>>>> +	&i2c1 {

>>>> +		...

>>>> +

>>>> +		ov5645: ov5645@78 {

>>>> +			compatible = "ovti,ov5645";

>>>> +			reg = <0x78>;

>>>> +

>>>> +			enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;

>>>> +			reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;

>>>> +			pinctrl-names = "default";

>>>> +			pinctrl-0 = <&camera_rear_default>;

>>>> +

>>>> +			clocks = <&clks 200>;

>>>> +			clock-names = "xclk";

>>>> +			clock-frequency = <23880000>;

>>>> +

>>>> +			vdddo-supply = <&camera_dovdd_1v8>;

>>>> +			vdda-supply = <&camera_avdd_2v8>;

>>>> +			vddd-supply = <&camera_dvdd_1v2>;

>>>> +

>>>> +			port {

>>>> +				ov5645_ep: endpoint {

>>>> +					clock-lanes = <1>;

>>>> +					data-lanes = <0 2>;

>>>> +					remote-endpoint = <&csi0_ep>;

>>>> +				};

>>>> +			};

>>>> +		};

>>>> +	};

> 


-- 
Best regards,
Todor Tomov
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Laurent Pinchart Oct. 19, 2016, 9:21 a.m. UTC | #4
Hi Todor,

On Wednesday 19 Oct 2016 12:14:55 Todor Tomov wrote:
> On 10/19/2016 11:49 AM, Laurent Pinchart wrote:

> > On Friday 14 Oct 2016 15:01:08 Todor Tomov wrote:

> >> On 09/08/2016 03:22 PM, Laurent Pinchart wrote:

> >>> On Thursday 08 Sep 2016 12:13:54 Todor Tomov wrote:

> >>>> Add the document for ov5645 device tree binding.

> >>>> 

> >>>> Signed-off-by: Todor Tomov <todor.tomov@linaro.org>

> >>>> ---

> >>>> 

> >>>>  .../devicetree/bindings/media/i2c/ov5645.txt       | 52 ++++++++++++++

> >>>>  1 file changed, 52 insertions(+)

> >>>>  create mode 100644

> >>>>  Documentation/devicetree/bindings/media/i2c/ov5645.txt

> >>>> 

> >>>> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt

> >>>> b/Documentation/devicetree/bindings/media/i2c/ov5645.txt new file mode

> >>>> 100644

> >>>> index 0000000..bcf6dba

> >>>> --- /dev/null

> >>>> +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt

> >>>> @@ -0,0 +1,52 @@

> >>>> +* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor

> >>>> +

> >>>> +The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image

> >>>> sensor with

> >>>> +an active array size of 2592H x 1944V. It is programmable through a

> >>>> serial I2C

> >>>> +interface.

> >>>> +

> >>>> +Required Properties:

> >>>> +- compatible: Value should be "ovti,ov5645".

> >>>> +- clocks: Reference to the xclk clock.

> >>>> +- clock-names: Should be "xclk".

> >>>> +- clock-frequency: Frequency of the xclk clock.

> >>>> +- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH.

> > 

> > By the way, isn't the pin called pwdnb and isn't it active low ?

> 

> Yes, the pin is called "pwdnb" and is active low (must be up for power to be

> up). I have changed the name to "enable" as it is more generally used -

> this change was suggested by Rob Herring. As the logic switches with this

> change of the name I have stated it is active high which ends up in the

> same condition (enable must be up for the power to be up). I think this is

> correct, isn't it?


I thought that the rule was to name the GPIO properties based on the name of 
the pin. I could be wrong though. Rob, what's your opinion ?

> >>>> +- reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW.

> >>> 

> >>> Shouldn't the enable and reset GPIOs be optional ?

> >> 

> >> I don't think so. The operations on the GPIOs are part of the power up

> >> sequence of the sensor so we must have control over them to execute the

> >> exact sequence.

> > 

> > Right, let's keep them mandatory. If we later have to make them optional

> > for a board that pulls one of those signals up (assuming this can work at

> > all) we'll revisit the bindings.

> 

> Ok.

> 

> >>>> +- vdddo-supply: Chip digital IO regulator.

> >>>> +- vdda-supply: Chip analog regulator.

> >>>> +- vddd-supply: Chip digital core regulator.

> >>>> +

> >>>> +The device node must contain one 'port' child node for its digital

> >>>> output

> >>>> +video port, in accordance with the video interface bindings defined in

> >>>> +Documentation/devicetree/bindings/media/video-interfaces.txt.

> >>>> +

> >>>> +Example:

> >>>> +

> >>>> +	&i2c1 {

> >>>> +		...

> >>>> +

> >>>> +		ov5645: ov5645@78 {

> >>>> +			compatible = "ovti,ov5645";

> >>>> +			reg = <0x78>;

> >>>> +

> >>>> +			enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;

> >>>> +			reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;

> >>>> +			pinctrl-names = "default";

> >>>> +			pinctrl-0 = <&camera_rear_default>;

> >>>> +

> >>>> +			clocks = <&clks 200>;

> >>>> +			clock-names = "xclk";

> >>>> +			clock-frequency = <23880000>;

> >>>> +

> >>>> +			vdddo-supply = <&camera_dovdd_1v8>;

> >>>> +			vdda-supply = <&camera_avdd_2v8>;

> >>>> +			vddd-supply = <&camera_dvdd_1v2>;

> >>>> +

> >>>> +			port {

> >>>> +				ov5645_ep: endpoint {

> >>>> +					clock-lanes = <1>;

> >>>> +					data-lanes = <0 2>;

> >>>> +					remote-endpoint = <&csi0_ep>;

> >>>> +				};

> >>>> +			};

> >>>> +		};

> >>>> +	};


-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring Oct. 26, 2016, 6:53 p.m. UTC | #5
On Wed, Oct 19, 2016 at 4:21 AM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> Hi Todor,

>

> On Wednesday 19 Oct 2016 12:14:55 Todor Tomov wrote:

>> On 10/19/2016 11:49 AM, Laurent Pinchart wrote:

>> > On Friday 14 Oct 2016 15:01:08 Todor Tomov wrote:

>> >> On 09/08/2016 03:22 PM, Laurent Pinchart wrote:

>> >>> On Thursday 08 Sep 2016 12:13:54 Todor Tomov wrote:

>> >>>> Add the document for ov5645 device tree binding.

>> >>>>

>> >>>> Signed-off-by: Todor Tomov <todor.tomov@linaro.org>

>> >>>> ---

>> >>>>

>> >>>>  .../devicetree/bindings/media/i2c/ov5645.txt       | 52 ++++++++++++++

>> >>>>  1 file changed, 52 insertions(+)

>> >>>>  create mode 100644

>> >>>>  Documentation/devicetree/bindings/media/i2c/ov5645.txt

>> >>>>

>> >>>> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt

>> >>>> b/Documentation/devicetree/bindings/media/i2c/ov5645.txt new file mode

>> >>>> 100644

>> >>>> index 0000000..bcf6dba

>> >>>> --- /dev/null

>> >>>> +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt

>> >>>> @@ -0,0 +1,52 @@

>> >>>> +* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor

>> >>>> +

>> >>>> +The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image

>> >>>> sensor with

>> >>>> +an active array size of 2592H x 1944V. It is programmable through a

>> >>>> serial I2C

>> >>>> +interface.

>> >>>> +

>> >>>> +Required Properties:

>> >>>> +- compatible: Value should be "ovti,ov5645".

>> >>>> +- clocks: Reference to the xclk clock.

>> >>>> +- clock-names: Should be "xclk".

>> >>>> +- clock-frequency: Frequency of the xclk clock.

>> >>>> +- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH.

>> >

>> > By the way, isn't the pin called pwdnb and isn't it active low ?

>>

>> Yes, the pin is called "pwdnb" and is active low (must be up for power to be

>> up). I have changed the name to "enable" as it is more generally used -

>> this change was suggested by Rob Herring. As the logic switches with this

>> change of the name I have stated it is active high which ends up in the

>> same condition (enable must be up for the power to be up). I think this is

>> correct, isn't it?

>

> I thought that the rule was to name the GPIO properties based on the name of

> the pin. I could be wrong though. Rob, what's your opinion ?


Generally, yes that is the rule. However, an enable (or powerdown
being the inverse) pin is so common that I think it makes sense to use
a common name. Then generic power sequencing code can power up devices
(in the simple cases at least).

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Todor Tomov Nov. 1, 2016, 8:24 a.m. UTC | #6
On 10/26/2016 09:53 PM, Rob Herring wrote:
> On Wed, Oct 19, 2016 at 4:21 AM, Laurent Pinchart

> <laurent.pinchart@ideasonboard.com> wrote:

>> Hi Todor,

>>

>> On Wednesday 19 Oct 2016 12:14:55 Todor Tomov wrote:

>>> On 10/19/2016 11:49 AM, Laurent Pinchart wrote:

>>>> On Friday 14 Oct 2016 15:01:08 Todor Tomov wrote:

>>>>> On 09/08/2016 03:22 PM, Laurent Pinchart wrote:

>>>>>> On Thursday 08 Sep 2016 12:13:54 Todor Tomov wrote:

>>>>>>> Add the document for ov5645 device tree binding.

>>>>>>>

>>>>>>> Signed-off-by: Todor Tomov <todor.tomov@linaro.org>

>>>>>>> ---

>>>>>>>

>>>>>>>  .../devicetree/bindings/media/i2c/ov5645.txt       | 52 ++++++++++++++

>>>>>>>  1 file changed, 52 insertions(+)

>>>>>>>  create mode 100644

>>>>>>>  Documentation/devicetree/bindings/media/i2c/ov5645.txt

>>>>>>>

>>>>>>> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt

>>>>>>> b/Documentation/devicetree/bindings/media/i2c/ov5645.txt new file mode

>>>>>>> 100644

>>>>>>> index 0000000..bcf6dba

>>>>>>> --- /dev/null

>>>>>>> +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt

>>>>>>> @@ -0,0 +1,52 @@

>>>>>>> +* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor

>>>>>>> +

>>>>>>> +The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image

>>>>>>> sensor with

>>>>>>> +an active array size of 2592H x 1944V. It is programmable through a

>>>>>>> serial I2C

>>>>>>> +interface.

>>>>>>> +

>>>>>>> +Required Properties:

>>>>>>> +- compatible: Value should be "ovti,ov5645".

>>>>>>> +- clocks: Reference to the xclk clock.

>>>>>>> +- clock-names: Should be "xclk".

>>>>>>> +- clock-frequency: Frequency of the xclk clock.

>>>>>>> +- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH.

>>>>

>>>> By the way, isn't the pin called pwdnb and isn't it active low ?

>>>

>>> Yes, the pin is called "pwdnb" and is active low (must be up for power to be

>>> up). I have changed the name to "enable" as it is more generally used -

>>> this change was suggested by Rob Herring. As the logic switches with this

>>> change of the name I have stated it is active high which ends up in the

>>> same condition (enable must be up for the power to be up). I think this is

>>> correct, isn't it?

>>

>> I thought that the rule was to name the GPIO properties based on the name of

>> the pin. I could be wrong though. Rob, what's your opinion ?

> 

> Generally, yes that is the rule. However, an enable (or powerdown

> being the inverse) pin is so common that I think it makes sense to use

> a common name. Then generic power sequencing code can power up devices

> (in the simple cases at least).


Ok, so what can we decide about this case? I personally have a slight preference
for the name same as documentation. But I think most important is to follow the
rule if we have such a rule. If we don't have a single rule to follow every time
then it is not really important which one we will choose.

> 

> Rob

> 


-- 
Best regards,
Todor Tomov
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Laurent Pinchart Nov. 3, 2016, 12:06 a.m. UTC | #7
Hi Todor,

On Tuesday 01 Nov 2016 10:24:26 Todor Tomov wrote:
> On 10/26/2016 09:53 PM, Rob Herring wrote:

> > On Wed, Oct 19, 2016 at 4:21 AM, Laurent Pinchart wrote:

> >> On Wednesday 19 Oct 2016 12:14:55 Todor Tomov wrote:

> >>> On 10/19/2016 11:49 AM, Laurent Pinchart wrote:

> >>>> On Friday 14 Oct 2016 15:01:08 Todor Tomov wrote:

> >>>>> On 09/08/2016 03:22 PM, Laurent Pinchart wrote:

> >>>>>> On Thursday 08 Sep 2016 12:13:54 Todor Tomov wrote:

> >>>>>>> Add the document for ov5645 device tree binding.

> >>>>>>> 

> >>>>>>> Signed-off-by: Todor Tomov <todor.tomov@linaro.org>

> >>>>>>> ---

> >>>>>>> 

> >>>>>>>  .../devicetree/bindings/media/i2c/ov5645.txt       | 52 +++++++++++

> >>>>>>>  1 file changed, 52 insertions(+)

> >>>>>>>  create mode 100644

> >>>>>>>  Documentation/devicetree/bindings/media/i2c/ov5645.txt

> >>>>>>> 

> >>>>>>> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt

> >>>>>>> b/Documentation/devicetree/bindings/media/i2c/ov5645.txt new file

> >>>>>>> mode

> >>>>>>> 100644

> >>>>>>> index 0000000..bcf6dba

> >>>>>>> --- /dev/null

> >>>>>>> +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt

> >>>>>>> @@ -0,0 +1,52 @@

> >>>>>>> +* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor

> >>>>>>> +

> >>>>>>> +The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image

> >>>>>>> sensor with

> >>>>>>> +an active array size of 2592H x 1944V. It is programmable through a

> >>>>>>> serial I2C

> >>>>>>> +interface.

> >>>>>>> +

> >>>>>>> +Required Properties:

> >>>>>>> +- compatible: Value should be "ovti,ov5645".

> >>>>>>> +- clocks: Reference to the xclk clock.

> >>>>>>> +- clock-names: Should be "xclk".

> >>>>>>> +- clock-frequency: Frequency of the xclk clock.

> >>>>>>> +- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH.

> >>>> 

> >>>> By the way, isn't the pin called pwdnb and isn't it active low ?

> >>> 

> >>> Yes, the pin is called "pwdnb" and is active low (must be up for power

> >>> to be up). I have changed the name to "enable" as it is more generally

> >>> used - this change was suggested by Rob Herring. As the logic switches

> >>> with this change of the name I have stated it is active high which ends

> >>> up in the same condition (enable must be up for the power to be up). I

> >>> think this is correct, isn't it?

> >> 

> >> I thought that the rule was to name the GPIO properties based on the name

> >> of the pin. I could be wrong though. Rob, what's your opinion ?

> > 

> > Generally, yes that is the rule. However, an enable (or powerdown

> > being the inverse) pin is so common that I think it makes sense to use

> > a common name. Then generic power sequencing code can power up devices

> > (in the simple cases at least).

> 

> Ok, so what can we decide about this case? I personally have a slight

> preference for the name same as documentation. But I think most important

> is to follow the rule if we have such a rule. If we don't have a single

> rule to follow every time then it is not really important which one we will

> choose.


I'm fine with both solutions (and also have a slight preference for using the 
chip's pin name). If we decide to use "enable-gpios", the DT binding document 
should mention that the property corresponds to the chip's PWDNB pin.

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt b/Documentation/devicetree/bindings/media/i2c/ov5645.txt
new file mode 100644
index 0000000..bcf6dba
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt
@@ -0,0 +1,52 @@ 
+* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor
+
+The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image sensor with
+an active array size of 2592H x 1944V. It is programmable through a serial I2C
+interface.
+
+Required Properties:
+- compatible: Value should be "ovti,ov5645".
+- clocks: Reference to the xclk clock.
+- clock-names: Should be "xclk".
+- clock-frequency: Frequency of the xclk clock.
+- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH.
+- reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW.
+- vdddo-supply: Chip digital IO regulator.
+- vdda-supply: Chip analog regulator.
+- vddd-supply: Chip digital core regulator.
+
+The device node must contain one 'port' child node for its digital output
+video port, in accordance with the video interface bindings defined in
+Documentation/devicetree/bindings/media/video-interfaces.txt.
+
+Example:
+
+	&i2c1 {
+		...
+
+		ov5645: ov5645@78 {
+			compatible = "ovti,ov5645";
+			reg = <0x78>;
+
+			enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+			reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&camera_rear_default>;
+
+			clocks = <&clks 200>;
+			clock-names = "xclk";
+			clock-frequency = <23880000>;
+
+			vdddo-supply = <&camera_dovdd_1v8>;
+			vdda-supply = <&camera_avdd_2v8>;
+			vddd-supply = <&camera_dvdd_1v2>;
+
+			port {
+				ov5645_ep: endpoint {
+					clock-lanes = <1>;
+					data-lanes = <0 2>;
+					remote-endpoint = <&csi0_ep>;
+				};
+			};
+		};
+	};