diff mbox series

[v6,1/3] dt-bindings: display: bridge: Document THC63LVD1024 LVDS decoder

Message ID 1521213399-31947-2-git-send-email-jacopo+renesas@jmondi.org
State Changes Requested, archived
Headers show
Series drm: Add Thine THC63LVD1024 LVDS decoder bridge | expand

Commit Message

Jacopo Mondi March 16, 2018, 3:16 p.m. UTC
Document Thine THC63LVD1024 LVDS decoder device tree bindings.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
 .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 ++++++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt

Comments

Laurent Pinchart March 20, 2018, 12:43 p.m. UTC | #1
Hi Jacopo,

(CC'ing Rob)

Thank you for the patch.

On Friday, 16 March 2018 17:16:37 EET Jacopo Mondi wrote:
> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
> 
> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> ---
>  .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
>  1 file changed, 66 insertions(+)
>  create mode 100644
> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> 
> diff --git
> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> new file mode 100644
> index 0000000..8225c6a
> --- /dev/null
> +++
> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> @@ -0,0 +1,66 @@
> +Thine Electronics THC63LVD1024 LVDS decoder
> +-------------------------------------------
> +
> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
> streams
> +to parallel data outputs. The chip supports single/dual input/output modes,
> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
> outputs.
> +
> +Single or dual operation modes, output data mapping and DDR output modes
> are
> +configured through input signals and the chip does not expose any control
> bus.
> +
> +Required properties:
> +- compatible: Shall be "thine,thc63lvd1024"
> +
> +Optional properties:
> +- vcc-supply: Power supply for TTL output and digital circuitry
> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
> +- lvcc-supply: Power supply for LVDS inputs
> +- pvcc-supply: Power supply for PLL circuitry

As explained in a comment to one of the previous versions of this series, I'm 
tempted to make vcc-supply mandatory and drop the three other power supplies 
for now, as I believe there's very little chance they will be connected to 
separately controllable regulators (all supplies use the same voltage). In the 
very unlikely event that this occurs in design we need to support in the 
future, the cvcc, lvcc and pvcc supplies can be added later as optional 
without breaking backward compatibility.

Apart from that,

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

> +- pdwn-gpios: Power down GPIO signal. Active low
> +- oe-gpios: Output enable GPIO signal. Active high
> +
> +The THC63LVD1024 video port connections are modeled according
> +to OF graph bindings specified by
> Documentation/devicetree/bindings/graph.txt
> +
> +Required video port nodes:
> +- Port@0: First LVDS input port
> +- Port@2: First digital CMOS/TTL parallel output
> +
> +Optional video port nodes:
> +- Port@1: Second LVDS input port
> +- Port@3: Second digital CMOS/TTL parallel output
> +
> +Example:
> +--------
> +
> +	thc63lvd1024: lvds-decoder {
> +		compatible = "thine,thc63lvd1024";
> +
> +		vcc-supply = <&reg_lvds_vcc>;
> +		lvcc-supply = <&reg_lvds_lvcc>;
> +
> +		pdwn-gpio = <&gpio4 15 GPIO_ACTIVE_LOW>;
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				lvds_dec_in_0: endpoint {
> +					remote-endpoint = <&lvds_out>;
> +				};
> +			};
> +
> +			port@2{
> +				reg = <2>;
> +
> +				lvds_dec_out_2: endpoint {
> +					remote-endpoint = <&adv7511_in>;
> +				};
> +
> +			};
> +
> +		};
> +	};
Jacopo Mondi March 26, 2018, 12:08 p.m. UTC | #2
Hi Laurent,

On Tue, Mar 20, 2018 at 02:43:33PM +0200, Laurent Pinchart wrote:
> Hi Jacopo,
>
> (CC'ing Rob)
>
> Thank you for the patch.
>
> On Friday, 16 March 2018 17:16:37 EET Jacopo Mondi wrote:
> > Document Thine THC63LVD1024 LVDS decoder device tree bindings.
> >
> > Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> > Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> > Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> > ---
> >  .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
> >  1 file changed, 66 insertions(+)
> >  create mode 100644
> > Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >
> > diff --git
> > a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> > b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> > new file mode 100644
> > index 0000000..8225c6a
> > --- /dev/null
> > +++
> > b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> > @@ -0,0 +1,66 @@
> > +Thine Electronics THC63LVD1024 LVDS decoder
> > +-------------------------------------------
> > +
> > +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
> > streams
> > +to parallel data outputs. The chip supports single/dual input/output modes,
> > +handling up to two two input LVDS stream and up to two digital CMOS/TTL
> > outputs.
> > +
> > +Single or dual operation modes, output data mapping and DDR output modes
> > are
> > +configured through input signals and the chip does not expose any control
> > bus.
> > +
> > +Required properties:
> > +- compatible: Shall be "thine,thc63lvd1024"
> > +
> > +Optional properties:
> > +- vcc-supply: Power supply for TTL output and digital circuitry
> > +- cvcc-supply: Power supply for TTL CLOCKOUT signal
> > +- lvcc-supply: Power supply for LVDS inputs
> > +- pvcc-supply: Power supply for PLL circuitry
>
> As explained in a comment to one of the previous versions of this series, I'm
> tempted to make vcc-supply mandatory and drop the three other power supplies
> for now, as I believe there's very little chance they will be connected to
> separately controllable regulators (all supplies use the same voltage). In the
> very unlikely event that this occurs in design we need to support in the
> future, the cvcc, lvcc and pvcc supplies can be added later as optional
> without breaking backward compatibility.

Fine, you and Andrzej both agree on this, and I actually do, as all
the supplies have the same voltage.

I'll make vcc the only and mandatory supply.

I'll keep Andrzej Reviwed-by as he suggested it, and add yours.

Thanks
   j

>
> Apart from that,
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> > +- pdwn-gpios: Power down GPIO signal. Active low
> > +- oe-gpios: Output enable GPIO signal. Active high
> > +
> > +The THC63LVD1024 video port connections are modeled according
> > +to OF graph bindings specified by
> > Documentation/devicetree/bindings/graph.txt
> > +
> > +Required video port nodes:
> > +- Port@0: First LVDS input port
> > +- Port@2: First digital CMOS/TTL parallel output
> > +
> > +Optional video port nodes:
> > +- Port@1: Second LVDS input port
> > +- Port@3: Second digital CMOS/TTL parallel output
> > +
> > +Example:
> > +--------
> > +
> > +	thc63lvd1024: lvds-decoder {
> > +		compatible = "thine,thc63lvd1024";
> > +
> > +		vcc-supply = <&reg_lvds_vcc>;
> > +		lvcc-supply = <&reg_lvds_lvcc>;
> > +
> > +		pdwn-gpio = <&gpio4 15 GPIO_ACTIVE_LOW>;
> > +
> > +		ports {
> > +			#address-cells = <1>;
> > +			#size-cells = <0>;
> > +
> > +			port@0 {
> > +				reg = <0>;
> > +
> > +				lvds_dec_in_0: endpoint {
> > +					remote-endpoint = <&lvds_out>;
> > +				};
> > +			};
> > +
> > +			port@2{
> > +				reg = <2>;
> > +
> > +				lvds_dec_out_2: endpoint {
> > +					remote-endpoint = <&adv7511_in>;
> > +				};
> > +
> > +			};
> > +
> > +		};
> > +	};
>
> --
> Regards,
>
> Laurent Pinchart
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring (Arm) March 26, 2018, 10:22 p.m. UTC | #3
On Tue, Mar 20, 2018 at 02:43:33PM +0200, Laurent Pinchart wrote:
> Hi Jacopo,
> 
> (CC'ing Rob)
> 
> Thank you for the patch.
> 
> On Friday, 16 March 2018 17:16:37 EET Jacopo Mondi wrote:
> > Document Thine THC63LVD1024 LVDS decoder device tree bindings.
> > 
> > Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> > Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> > Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> > ---
> >  .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
> >  1 file changed, 66 insertions(+)
> >  create mode 100644
> > Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> > 
> > diff --git
> > a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> > b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> > new file mode 100644
> > index 0000000..8225c6a
> > --- /dev/null
> > +++
> > b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> > @@ -0,0 +1,66 @@
> > +Thine Electronics THC63LVD1024 LVDS decoder
> > +-------------------------------------------
> > +
> > +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
> > streams
> > +to parallel data outputs. The chip supports single/dual input/output modes,
> > +handling up to two two input LVDS stream and up to two digital CMOS/TTL
> > outputs.
> > +
> > +Single or dual operation modes, output data mapping and DDR output modes
> > are
> > +configured through input signals and the chip does not expose any control
> > bus.
> > +
> > +Required properties:
> > +- compatible: Shall be "thine,thc63lvd1024"
> > +
> > +Optional properties:
> > +- vcc-supply: Power supply for TTL output and digital circuitry
> > +- cvcc-supply: Power supply for TTL CLOCKOUT signal
> > +- lvcc-supply: Power supply for LVDS inputs
> > +- pvcc-supply: Power supply for PLL circuitry
> 
> As explained in a comment to one of the previous versions of this series, I'm 
> tempted to make vcc-supply mandatory and drop the three other power supplies 
> for now, as I believe there's very little chance they will be connected to 
> separately controllable regulators (all supplies use the same voltage). In the 
> very unlikely event that this occurs in design we need to support in the 
> future, the cvcc, lvcc and pvcc supplies can be added later as optional 
> without breaking backward compatibility.

I'm okay with that.

> Apart from that,
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> 
> > +- pdwn-gpios: Power down GPIO signal. Active low

powerdown-gpios is the semi-standard name.

> > +- oe-gpios: Output enable GPIO signal. Active high
> > +
> > +The THC63LVD1024 video port connections are modeled according
> > +to OF graph bindings specified by
> > Documentation/devicetree/bindings/graph.txt
> > +
> > +Required video port nodes:
> > +- Port@0: First LVDS input port
> > +- Port@2: First digital CMOS/TTL parallel output

s/Port/port/

> > +
> > +Optional video port nodes:
> > +- Port@1: Second LVDS input port
> > +- Port@3: Second digital CMOS/TTL parallel output
> > +
> > +Example:
> > +--------
> > +
> > +	thc63lvd1024: lvds-decoder {
> > +		compatible = "thine,thc63lvd1024";
> > +
> > +		vcc-supply = <&reg_lvds_vcc>;
> > +		lvcc-supply = <&reg_lvds_lvcc>;
> > +
> > +		pdwn-gpio = <&gpio4 15 GPIO_ACTIVE_LOW>;
> > +
> > +		ports {
> > +			#address-cells = <1>;
> > +			#size-cells = <0>;
> > +
> > +			port@0 {
> > +				reg = <0>;
> > +
> > +				lvds_dec_in_0: endpoint {
> > +					remote-endpoint = <&lvds_out>;
> > +				};
> > +			};
> > +
> > +			port@2{
> > +				reg = <2>;
> > +
> > +				lvds_dec_out_2: endpoint {
> > +					remote-endpoint = <&adv7511_in>;
> > +				};
> > +
> > +			};
> > +
> > +		};
> > +	};
> 
> -- 
> Regards,
> 
> Laurent Pinchart
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vladimir Zapolskiy March 27, 2018, 6:15 a.m. UTC | #4
Hi Jacopo,

On 03/27/2018 01:22 AM, Rob Herring wrote:
> On Tue, Mar 20, 2018 at 02:43:33PM +0200, Laurent Pinchart wrote:
>> Hi Jacopo,
>>
>> (CC'ing Rob)
>>
>> Thank you for the patch.
>>
>> On Friday, 16 March 2018 17:16:37 EET Jacopo Mondi wrote:
>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
>>>
>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
>>> ---
>>>  .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
>>>  1 file changed, 66 insertions(+)
>>>  create mode 100644
>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>
>>> diff --git
>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>> new file mode 100644
>>> index 0000000..8225c6a
>>> --- /dev/null
>>> +++
>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>> @@ -0,0 +1,66 @@
>>> +Thine Electronics THC63LVD1024 LVDS decoder
>>> +-------------------------------------------
>>> +
>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
>>> streams
>>> +to parallel data outputs. The chip supports single/dual input/output modes,
>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
>>> outputs.
>>> +
>>> +Single or dual operation modes, output data mapping and DDR output modes
>>> are
>>> +configured through input signals and the chip does not expose any control
>>> bus.
>>> +
>>> +Required properties:
>>> +- compatible: Shall be "thine,thc63lvd1024"
>>> +
>>> +Optional properties:
>>> +- vcc-supply: Power supply for TTL output and digital circuitry
>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
>>> +- lvcc-supply: Power supply for LVDS inputs
>>> +- pvcc-supply: Power supply for PLL circuitry
>>
>> As explained in a comment to one of the previous versions of this series, I'm 
>> tempted to make vcc-supply mandatory and drop the three other power supplies 
>> for now, as I believe there's very little chance they will be connected to 
>> separately controllable regulators (all supplies use the same voltage). In the 
>> very unlikely event that this occurs in design we need to support in the 
>> future, the cvcc, lvcc and pvcc supplies can be added later as optional 
>> without breaking backward compatibility.
> 
> I'm okay with that.
> 
>> Apart from that,
>>
>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>
>>> +- pdwn-gpios: Power down GPIO signal. Active low
> 
> powerdown-gpios is the semi-standard name.
> 

right, I've also noticed it. If possible please avoid shortenings in
property names.

>>> +- oe-gpios: Output enable GPIO signal. Active high
>>> +

And this one is also a not ever met property name, please consider to
rename it to 'enable-gpios', for instance display panels define it.

>>> +The THC63LVD1024 video port connections are modeled according
>>> +to OF graph bindings specified by
>>> Documentation/devicetree/bindings/graph.txt

[snip]

>>> +
>>> +			port@2{
>>> +				reg = <2>;
>>> +
>>> +				lvds_dec_out_2: endpoint {
>>> +					remote-endpoint = <&adv7511_in>;
>>> +				};
>>> +

Drop a surplus empty line above.

>>> +			};
>>> +

Drop a surplus empty line above.

>>> +		};
>>> +	};

--
With best wishes,
Vladimir
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andrzej Hajda March 27, 2018, 7:12 a.m. UTC | #5
On 27.03.2018 08:15, Vladimir Zapolskiy wrote:
> Hi Jacopo,
>
> On 03/27/2018 01:22 AM, Rob Herring wrote:
>> On Tue, Mar 20, 2018 at 02:43:33PM +0200, Laurent Pinchart wrote:
>>> Hi Jacopo,
>>>
>>> (CC'ing Rob)
>>>
>>> Thank you for the patch.
>>>
>>> On Friday, 16 March 2018 17:16:37 EET Jacopo Mondi wrote:
>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
>>>>
>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
>>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
>>>> ---
>>>>  .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
>>>>  1 file changed, 66 insertions(+)
>>>>  create mode 100644
>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>
>>>> diff --git
>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>> new file mode 100644
>>>> index 0000000..8225c6a
>>>> --- /dev/null
>>>> +++
>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>> @@ -0,0 +1,66 @@
>>>> +Thine Electronics THC63LVD1024 LVDS decoder
>>>> +-------------------------------------------
>>>> +
>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
>>>> streams
>>>> +to parallel data outputs. The chip supports single/dual input/output modes,
>>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
>>>> outputs.
>>>> +
>>>> +Single or dual operation modes, output data mapping and DDR output modes
>>>> are
>>>> +configured through input signals and the chip does not expose any control
>>>> bus.
>>>> +
>>>> +Required properties:
>>>> +- compatible: Shall be "thine,thc63lvd1024"
>>>> +
>>>> +Optional properties:
>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
>>>> +- lvcc-supply: Power supply for LVDS inputs
>>>> +- pvcc-supply: Power supply for PLL circuitry
>>> As explained in a comment to one of the previous versions of this series, I'm 
>>> tempted to make vcc-supply mandatory and drop the three other power supplies 
>>> for now, as I believe there's very little chance they will be connected to 
>>> separately controllable regulators (all supplies use the same voltage). In the 
>>> very unlikely event that this occurs in design we need to support in the 
>>> future, the cvcc, lvcc and pvcc supplies can be added later as optional 
>>> without breaking backward compatibility.
>> I'm okay with that.
>>
>>> Apart from that,
>>>
>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>>
>>>> +- pdwn-gpios: Power down GPIO signal. Active low
>> powerdown-gpios is the semi-standard name.
>>
> right, I've also noticed it. If possible please avoid shortenings in
> property names.

It is not shortening, it just follow pin name from decoder's datasheet.

>
>>>> +- oe-gpios: Output enable GPIO signal. Active high
>>>> +
> And this one is also a not ever met property name, please consider to
> rename it to 'enable-gpios', for instance display panels define it.


Again, it follows datasheet naming scheme. Has something changed in DT
conventions?

Regards
Andrzej

>
>>>> +The THC63LVD1024 video port connections are modeled according
>>>> +to OF graph bindings specified by
>>>> Documentation/devicetree/bindings/graph.txt
> [snip]
>
>>>> +
>>>> +			port@2{
>>>> +				reg = <2>;
>>>> +
>>>> +				lvds_dec_out_2: endpoint {
>>>> +					remote-endpoint = <&adv7511_in>;
>>>> +				};
>>>> +
> Drop a surplus empty line above.
>
>>>> +			};
>>>> +
> Drop a surplus empty line above.
>
>>>> +		};
>>>> +	};
> --
> With best wishes,
> Vladimir
>
>
>

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jacopo Mondi March 27, 2018, 7:33 a.m. UTC | #6
Hi Andrzej,

On Tue, Mar 27, 2018 at 09:12:46AM +0200, Andrzej Hajda wrote:
> On 27.03.2018 08:15, Vladimir Zapolskiy wrote:
> > Hi Jacopo,
> >
> > On 03/27/2018 01:22 AM, Rob Herring wrote:
> >> On Tue, Mar 20, 2018 at 02:43:33PM +0200, Laurent Pinchart wrote:
> >>> Hi Jacopo,
> >>>
> >>> (CC'ing Rob)
> >>>
> >>> Thank you for the patch.
> >>>
> >>> On Friday, 16 March 2018 17:16:37 EET Jacopo Mondi wrote:
> >>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
> >>>>
> >>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> >>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> >>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> >>>> ---
> >>>>  .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
> >>>>  1 file changed, 66 insertions(+)
> >>>>  create mode 100644
> >>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>
> >>>> diff --git
> >>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>> new file mode 100644
> >>>> index 0000000..8225c6a
> >>>> --- /dev/null
> >>>> +++
> >>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>> @@ -0,0 +1,66 @@
> >>>> +Thine Electronics THC63LVD1024 LVDS decoder
> >>>> +-------------------------------------------
> >>>> +
> >>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
> >>>> streams
> >>>> +to parallel data outputs. The chip supports single/dual input/output modes,
> >>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
> >>>> outputs.
> >>>> +
> >>>> +Single or dual operation modes, output data mapping and DDR output modes
> >>>> are
> >>>> +configured through input signals and the chip does not expose any control
> >>>> bus.
> >>>> +
> >>>> +Required properties:
> >>>> +- compatible: Shall be "thine,thc63lvd1024"
> >>>> +
> >>>> +Optional properties:
> >>>> +- vcc-supply: Power supply for TTL output and digital circuitry
> >>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
> >>>> +- lvcc-supply: Power supply for LVDS inputs
> >>>> +- pvcc-supply: Power supply for PLL circuitry
> >>> As explained in a comment to one of the previous versions of this series, I'm
> >>> tempted to make vcc-supply mandatory and drop the three other power supplies
> >>> for now, as I believe there's very little chance they will be connected to
> >>> separately controllable regulators (all supplies use the same voltage). In the
> >>> very unlikely event that this occurs in design we need to support in the
> >>> future, the cvcc, lvcc and pvcc supplies can be added later as optional
> >>> without breaking backward compatibility.
> >> I'm okay with that.
> >>
> >>> Apart from that,
> >>>
> >>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>>
> >>>> +- pdwn-gpios: Power down GPIO signal. Active low
> >> powerdown-gpios is the semi-standard name.
> >>
> > right, I've also noticed it. If possible please avoid shortenings in
> > property names.
>
> It is not shortening, it just follow pin name from decoder's datasheet.
>
> >
> >>>> +- oe-gpios: Output enable GPIO signal. Active high
> >>>> +
> > And this one is also a not ever met property name, please consider to
> > rename it to 'enable-gpios', for instance display panels define it.
>
>
> Again, it follows datasheet naming scheme. Has something changed in DT
> conventions?

Seconded. My understanding is that the property name should reflect
what reported in the the chip manual. For THC63LVD1024 the enable and
power down pins are named 'OE' and 'PDWN' respectively.

Thanks
   j

>
> Regards
> Andrzej
>
> >
> >>>> +The THC63LVD1024 video port connections are modeled according
> >>>> +to OF graph bindings specified by
> >>>> Documentation/devicetree/bindings/graph.txt
> > [snip]
> >
> >>>> +
> >>>> +			port@2{
> >>>> +				reg = <2>;
> >>>> +
> >>>> +				lvds_dec_out_2: endpoint {
> >>>> +					remote-endpoint = <&adv7511_in>;
> >>>> +				};
> >>>> +
> > Drop a surplus empty line above.
> >
> >>>> +			};
> >>>> +
> > Drop a surplus empty line above.
> >
> >>>> +		};
> >>>> +	};
> > --
> > With best wishes,
> > Vladimir
> >
> >
> >
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sergei Shtylyov March 27, 2018, 8:27 a.m. UTC | #7
Hello!

On 3/27/2018 10:33 AM, jacopo mondi wrote:
[...]
>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
>>>>>>
>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
>>>>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
>>>>>> ---
>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
>>>>>>   1 file changed, 66 insertions(+)
>>>>>>   create mode 100644
>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>
>>>>>> diff --git
>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>> new file mode 100644
>>>>>> index 0000000..8225c6a
>>>>>> --- /dev/null
>>>>>> +++
>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>> @@ -0,0 +1,66 @@
>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
>>>>>> +-------------------------------------------
>>>>>> +
>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
>>>>>> streams
>>>>>> +to parallel data outputs. The chip supports single/dual input/output modes,
>>>>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
>>>>>> outputs.
>>>>>> +
>>>>>> +Single or dual operation modes, output data mapping and DDR output modes
>>>>>> are
>>>>>> +configured through input signals and the chip does not expose any control
>>>>>> bus.
>>>>>> +
>>>>>> +Required properties:
>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
>>>>>> +
>>>>>> +Optional properties:
>>>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
>>>>>> +- lvcc-supply: Power supply for LVDS inputs
>>>>>> +- pvcc-supply: Power supply for PLL circuitry
>>>>> As explained in a comment to one of the previous versions of this series, I'm
>>>>> tempted to make vcc-supply mandatory and drop the three other power supplies
>>>>> for now, as I believe there's very little chance they will be connected to
>>>>> separately controllable regulators (all supplies use the same voltage). In the
>>>>> very unlikely event that this occurs in design we need to support in the
>>>>> future, the cvcc, lvcc and pvcc supplies can be added later as optional
>>>>> without breaking backward compatibility.
>>>> I'm okay with that.
>>>>
>>>>> Apart from that,
>>>>>
>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>>>>
>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
>>>> powerdown-gpios is the semi-standard name.
>>>>
>>> right, I've also noticed it. If possible please avoid shortenings in
>>> property names.
>>
>> It is not shortening, it just follow pin name from decoder's datasheet.
>>
>>>
>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
>>>>>> +
>>> And this one is also a not ever met property name, please consider to
>>> rename it to 'enable-gpios', for instance display panels define it.
>>
>>
>> Again, it follows datasheet naming scheme. Has something changed in DT
>> conventions?
> 
> Seconded. My understanding is that the property name should reflect
> what reported in the the chip manual. For THC63LVD1024 the enable and
> power down pins are named 'OE' and 'PDWN' respectively.

    But don't we need the vendor prefix in the prop names then, like 
"renesas,oe-gpios" then?

> Thanks
>     j

MBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vladimir Zapolskiy March 27, 2018, 8:30 a.m. UTC | #8
Hi Sergei,

On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
> Hello!
> 
> On 3/27/2018 10:33 AM, jacopo mondi wrote:
> [...]
>>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
>>>>>>>
>>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
>>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
>>>>>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
>>>>>>> ---
>>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
>>>>>>>   1 file changed, 66 insertions(+)
>>>>>>>   create mode 100644
>>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>>
>>>>>>> diff --git
>>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>> new file mode 100644
>>>>>>> index 0000000..8225c6a
>>>>>>> --- /dev/null
>>>>>>> +++
>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>> @@ -0,0 +1,66 @@
>>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
>>>>>>> +-------------------------------------------
>>>>>>> +
>>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
>>>>>>> streams
>>>>>>> +to parallel data outputs. The chip supports single/dual input/output modes,
>>>>>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
>>>>>>> outputs.
>>>>>>> +
>>>>>>> +Single or dual operation modes, output data mapping and DDR output modes
>>>>>>> are
>>>>>>> +configured through input signals and the chip does not expose any control
>>>>>>> bus.
>>>>>>> +
>>>>>>> +Required properties:
>>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
>>>>>>> +
>>>>>>> +Optional properties:
>>>>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
>>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
>>>>>>> +- lvcc-supply: Power supply for LVDS inputs
>>>>>>> +- pvcc-supply: Power supply for PLL circuitry
>>>>>> As explained in a comment to one of the previous versions of this series, I'm
>>>>>> tempted to make vcc-supply mandatory and drop the three other power supplies
>>>>>> for now, as I believe there's very little chance they will be connected to
>>>>>> separately controllable regulators (all supplies use the same voltage). In the
>>>>>> very unlikely event that this occurs in design we need to support in the
>>>>>> future, the cvcc, lvcc and pvcc supplies can be added later as optional
>>>>>> without breaking backward compatibility.
>>>>> I'm okay with that.
>>>>>
>>>>>> Apart from that,
>>>>>>
>>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>>>>>
>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
>>>>> powerdown-gpios is the semi-standard name.
>>>>>
>>>> right, I've also noticed it. If possible please avoid shortenings in
>>>> property names.
>>>
>>> It is not shortening, it just follow pin name from decoder's datasheet.
>>>
>>>>
>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
>>>>>>> +
>>>> And this one is also a not ever met property name, please consider to
>>>> rename it to 'enable-gpios', for instance display panels define it.
>>>
>>>
>>> Again, it follows datasheet naming scheme. Has something changed in DT
>>> conventions?
>>
>> Seconded. My understanding is that the property name should reflect
>> what reported in the the chip manual. For THC63LVD1024 the enable and
>> power down pins are named 'OE' and 'PDWN' respectively.
> 
>     But don't we need the vendor prefix in the prop names then, like 
> "renesas,oe-gpios" then?
> 

Seconded, with a correction to "thine,oe-gpios".

If vendor agnostic properties are supposed to be used, then please follow
the referenced by Rob semi-standard notations.

--
With best wishes,
Vladimir
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jacopo Mondi March 27, 2018, 8:57 a.m. UTC | #9
Hi Vladimir,

On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:
> Hi Sergei,
>
> On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
> > Hello!
> >
> > On 3/27/2018 10:33 AM, jacopo mondi wrote:
> > [...]
> >>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
> >>>>>>>
> >>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> >>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> >>>>>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> >>>>>>> ---
> >>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
> >>>>>>>   1 file changed, 66 insertions(+)
> >>>>>>>   create mode 100644
> >>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>>
> >>>>>>> diff --git
> >>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>> new file mode 100644
> >>>>>>> index 0000000..8225c6a
> >>>>>>> --- /dev/null
> >>>>>>> +++
> >>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>> @@ -0,0 +1,66 @@
> >>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
> >>>>>>> +-------------------------------------------
> >>>>>>> +
> >>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
> >>>>>>> streams
> >>>>>>> +to parallel data outputs. The chip supports single/dual input/output modes,
> >>>>>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
> >>>>>>> outputs.
> >>>>>>> +
> >>>>>>> +Single or dual operation modes, output data mapping and DDR output modes
> >>>>>>> are
> >>>>>>> +configured through input signals and the chip does not expose any control
> >>>>>>> bus.
> >>>>>>> +
> >>>>>>> +Required properties:
> >>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
> >>>>>>> +
> >>>>>>> +Optional properties:
> >>>>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
> >>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
> >>>>>>> +- lvcc-supply: Power supply for LVDS inputs
> >>>>>>> +- pvcc-supply: Power supply for PLL circuitry
> >>>>>> As explained in a comment to one of the previous versions of this series, I'm
> >>>>>> tempted to make vcc-supply mandatory and drop the three other power supplies
> >>>>>> for now, as I believe there's very little chance they will be connected to
> >>>>>> separately controllable regulators (all supplies use the same voltage). In the
> >>>>>> very unlikely event that this occurs in design we need to support in the
> >>>>>> future, the cvcc, lvcc and pvcc supplies can be added later as optional
> >>>>>> without breaking backward compatibility.
> >>>>> I'm okay with that.
> >>>>>
> >>>>>> Apart from that,
> >>>>>>
> >>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>>>>>
> >>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
> >>>>> powerdown-gpios is the semi-standard name.
> >>>>>
> >>>> right, I've also noticed it. If possible please avoid shortenings in
> >>>> property names.
> >>>
> >>> It is not shortening, it just follow pin name from decoder's datasheet.
> >>>
> >>>>
> >>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
> >>>>>>> +
> >>>> And this one is also a not ever met property name, please consider to
> >>>> rename it to 'enable-gpios', for instance display panels define it.
> >>>
> >>>
> >>> Again, it follows datasheet naming scheme. Has something changed in DT
> >>> conventions?
> >>
> >> Seconded. My understanding is that the property name should reflect
> >> what reported in the the chip manual. For THC63LVD1024 the enable and
> >> power down pins are named 'OE' and 'PDWN' respectively.
> >
> >     But don't we need the vendor prefix in the prop names then, like
> > "renesas,oe-gpios" then?
> >
>
> Seconded, with a correction to "thine,oe-gpios".
>

mmm, okay then...

A grep for that semi-standard properties names in Documentation/
returns only usage examples and no actual definitions, so I assume this
is why they are semi-standard. Seems like there is some tribal knowledge
involved in defining what is semi-standard and what's not, or are those
properties documented somewhere?

Thanks
   j


> If vendor agnostic properties are supposed to be used, then please follow
> the referenced by Rob semi-standard notations.
>
> --
> With best wishes,
> Vladimir
Vladimir Zapolskiy March 27, 2018, 9:37 a.m. UTC | #10
Hi Jacopo,

On 03/27/2018 11:57 AM, jacopo mondi wrote:
> Hi Vladimir,
> 
> On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:
>> Hi Sergei,
>>
>> On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
>>> Hello!
>>>
>>> On 3/27/2018 10:33 AM, jacopo mondi wrote:
>>> [...]
>>>>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
>>>>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
>>>>>>>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
>>>>>>>>> ---
>>>>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
>>>>>>>>>   1 file changed, 66 insertions(+)
>>>>>>>>>   create mode 100644
>>>>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>>>>
>>>>>>>>> diff --git
>>>>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>>>> new file mode 100644
>>>>>>>>> index 0000000..8225c6a
>>>>>>>>> --- /dev/null
>>>>>>>>> +++
>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>>>> @@ -0,0 +1,66 @@
>>>>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
>>>>>>>>> +-------------------------------------------
>>>>>>>>> +
>>>>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
>>>>>>>>> streams
>>>>>>>>> +to parallel data outputs. The chip supports single/dual input/output modes,
>>>>>>>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
>>>>>>>>> outputs.
>>>>>>>>> +
>>>>>>>>> +Single or dual operation modes, output data mapping and DDR output modes
>>>>>>>>> are
>>>>>>>>> +configured through input signals and the chip does not expose any control
>>>>>>>>> bus.
>>>>>>>>> +
>>>>>>>>> +Required properties:
>>>>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
>>>>>>>>> +
>>>>>>>>> +Optional properties:
>>>>>>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
>>>>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
>>>>>>>>> +- lvcc-supply: Power supply for LVDS inputs
>>>>>>>>> +- pvcc-supply: Power supply for PLL circuitry
>>>>>>>> As explained in a comment to one of the previous versions of this series, I'm
>>>>>>>> tempted to make vcc-supply mandatory and drop the three other power supplies
>>>>>>>> for now, as I believe there's very little chance they will be connected to
>>>>>>>> separately controllable regulators (all supplies use the same voltage). In the
>>>>>>>> very unlikely event that this occurs in design we need to support in the
>>>>>>>> future, the cvcc, lvcc and pvcc supplies can be added later as optional
>>>>>>>> without breaking backward compatibility.
>>>>>>> I'm okay with that.
>>>>>>>
>>>>>>>> Apart from that,
>>>>>>>>
>>>>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>>>>>>>
>>>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
>>>>>>> powerdown-gpios is the semi-standard name.
>>>>>>>
>>>>>> right, I've also noticed it. If possible please avoid shortenings in
>>>>>> property names.
>>>>>
>>>>> It is not shortening, it just follow pin name from decoder's datasheet.
>>>>>
>>>>>>
>>>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
>>>>>>>>> +
>>>>>> And this one is also a not ever met property name, please consider to
>>>>>> rename it to 'enable-gpios', for instance display panels define it.
>>>>>
>>>>>
>>>>> Again, it follows datasheet naming scheme. Has something changed in DT
>>>>> conventions?
>>>>
>>>> Seconded. My understanding is that the property name should reflect
>>>> what reported in the the chip manual. For THC63LVD1024 the enable and
>>>> power down pins are named 'OE' and 'PDWN' respectively.
>>>
>>>     But don't we need the vendor prefix in the prop names then, like
>>> "renesas,oe-gpios" then?
>>>
>>
>> Seconded, with a correction to "thine,oe-gpios".
>>
> 
> mmm, okay then...
> 
> A grep for that semi-standard properties names in Documentation/
> returns only usage examples and no actual definitions, so I assume this
> is why they are semi-standard.

Here we have to be specific about a particular property, let it be 'oe-gpios'
vs. 'enable-gpios' and let's collect some statistics:

% grep -Hr oe-gpios Documentation/devicetree/bindings/* | wc -l
0

$ grep -Hr enable-gpios Documentation/devicetree/bindings/* | wc -l
86

While 'thine,oe-gpios' would be correct, I see no reason to introduce a vendor
specific property to define a pin with a common and well understood purpose.

If you go forward with the vendor specific prefix, apparently you can set the name
to 'thine,oe-gpio' (single) or even to 'thine,oe', or does the datasheet names
the pin as "OE GPIO" or "OE connected to a GPIO"? I guess no.

Standards do not define '-gpios' suffix, but partially the description is found
in Documentation/bindings/gpio/gpio.txt, still it is not a section in any
standard as far as I know.

> Seems like there is some tribal knowledge involved in defining what
> is semi-standard and what's not, or are those properties documented somewhere?
> 

The point is that there is no formal standard which describes every IP,
every IC and every single their property, some device node names and property
names are recommended in ePAPR and Devicetree Specification though.

Think of a confusion if 'rst-gpios' (have you seen any ICs with an RST pin?) and
'reset-gpios' are different. Same applies to 'pdwn-gpios' vs. 'powerdown-gpios'.

>> If vendor agnostic properties are supposed to be used, then please follow
>> the referenced by Rob semi-standard notations.

--
With best wishes,
Vladimir
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jacopo Mondi March 27, 2018, 10:10 a.m. UTC | #11
Hi Vladimir,

On Tue, Mar 27, 2018 at 12:37:31PM +0300, Vladimir Zapolskiy wrote:
> Hi Jacopo,
>
> On 03/27/2018 11:57 AM, jacopo mondi wrote:
> > Hi Vladimir,
> >
> > On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:
> >> Hi Sergei,
> >>
> >> On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
> >>> Hello!
> >>>
> >>> On 3/27/2018 10:33 AM, jacopo mondi wrote:
> >>> [...]
> >>>>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
> >>>>>>>>>
> >>>>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> >>>>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> >>>>>>>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> >>>>>>>>> ---
> >>>>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
> >>>>>>>>>   1 file changed, 66 insertions(+)
> >>>>>>>>>   create mode 100644
> >>>>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>>>>
> >>>>>>>>> diff --git
> >>>>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>>>> new file mode 100644
> >>>>>>>>> index 0000000..8225c6a
> >>>>>>>>> --- /dev/null
> >>>>>>>>> +++
> >>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>>>> @@ -0,0 +1,66 @@
> >>>>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
> >>>>>>>>> +-------------------------------------------
> >>>>>>>>> +
> >>>>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
> >>>>>>>>> streams
> >>>>>>>>> +to parallel data outputs. The chip supports single/dual input/output modes,
> >>>>>>>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
> >>>>>>>>> outputs.
> >>>>>>>>> +
> >>>>>>>>> +Single or dual operation modes, output data mapping and DDR output modes
> >>>>>>>>> are
> >>>>>>>>> +configured through input signals and the chip does not expose any control
> >>>>>>>>> bus.
> >>>>>>>>> +
> >>>>>>>>> +Required properties:
> >>>>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
> >>>>>>>>> +
> >>>>>>>>> +Optional properties:
> >>>>>>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
> >>>>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
> >>>>>>>>> +- lvcc-supply: Power supply for LVDS inputs
> >>>>>>>>> +- pvcc-supply: Power supply for PLL circuitry
> >>>>>>>> As explained in a comment to one of the previous versions of this series, I'm
> >>>>>>>> tempted to make vcc-supply mandatory and drop the three other power supplies
> >>>>>>>> for now, as I believe there's very little chance they will be connected to
> >>>>>>>> separately controllable regulators (all supplies use the same voltage). In the
> >>>>>>>> very unlikely event that this occurs in design we need to support in the
> >>>>>>>> future, the cvcc, lvcc and pvcc supplies can be added later as optional
> >>>>>>>> without breaking backward compatibility.
> >>>>>>> I'm okay with that.
> >>>>>>>
> >>>>>>>> Apart from that,
> >>>>>>>>
> >>>>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>>>>>>>
> >>>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
> >>>>>>> powerdown-gpios is the semi-standard name.
> >>>>>>>
> >>>>>> right, I've also noticed it. If possible please avoid shortenings in
> >>>>>> property names.
> >>>>>
> >>>>> It is not shortening, it just follow pin name from decoder's datasheet.
> >>>>>
> >>>>>>
> >>>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
> >>>>>>>>> +
> >>>>>> And this one is also a not ever met property name, please consider to
> >>>>>> rename it to 'enable-gpios', for instance display panels define it.
> >>>>>
> >>>>>
> >>>>> Again, it follows datasheet naming scheme. Has something changed in DT
> >>>>> conventions?
> >>>>
> >>>> Seconded. My understanding is that the property name should reflect
> >>>> what reported in the the chip manual. For THC63LVD1024 the enable and
> >>>> power down pins are named 'OE' and 'PDWN' respectively.
> >>>
> >>>     But don't we need the vendor prefix in the prop names then, like
> >>> "renesas,oe-gpios" then?
> >>>
> >>
> >> Seconded, with a correction to "thine,oe-gpios".
> >>
> >
> > mmm, okay then...
> >
> > A grep for that semi-standard properties names in Documentation/
> > returns only usage examples and no actual definitions, so I assume this
> > is why they are semi-standard.
>
> Here we have to be specific about a particular property, let it be 'oe-gpios'
> vs. 'enable-gpios' and let's collect some statistics:
>
> % grep -Hr oe-gpios Documentation/devicetree/bindings/* | wc -l
> 0
>
> $ grep -Hr enable-gpios Documentation/devicetree/bindings/* | wc -l
> 86
>
> While 'thine,oe-gpios' would be correct, I see no reason to introduce a vendor
> specific property to define a pin with a common and well understood purpose.
>
> If you go forward with the vendor specific prefix, apparently you can set the name
> to 'thine,oe-gpio' (single) or even to 'thine,oe', or does the datasheet names
> the pin as "OE GPIO" or "OE connected to a GPIO"? I guess no.
>

Let me clarify I don't want to push for a vendor specific name or
similar, I'm fine with using 'semi-standard' names, I'm just confused
by the 'semi-standard' definition. I guess from your examples, the
usage count makes a difference here.

> Standards do not define '-gpios' suffix, but partially the description is found
> in Documentation/bindings/gpio/gpio.txt, still it is not a section in any
> standard as far as I know.

>
> > Seems like there is some tribal knowledge involved in defining what
> > is semi-standard and what's not, or are those properties documented somewhere?
> >
>
> The point is that there is no formal standard which describes every IP,
> every IC and every single their property, some device node names and property
> names are recommended in ePAPR and Devicetree Specification though.
>
> Think of a confusion if 'rst-gpios' (have you seen any ICs with an RST pin?) and
> 'reset-gpios' are different. Same applies to 'pdwn-gpios' vs. 'powerdown-gpios'.

I see all your points and I agree with most of them. Anyway, if the
chip manual describes a pin as 'RST' I would not find it confusing to
have a 'rst-gpio' defined in bindings :)

Let me be a bit pesky here: what if a chip defines a reset GPIO, which
is definitely a reset, but names it, say "XYZ" ? Would you prefer to
see it defined as "reset-gpios" for consistency with other bindings,
or "xyz-gpios" for consistency with documentation?

Thanks
   j
>
> >> If vendor agnostic properties are supposed to be used, then please follow
> >> the referenced by Rob semi-standard notations.
>
> --
> With best wishes,
> Vladimir
Vladimir Zapolskiy March 27, 2018, 11:03 a.m. UTC | #12
Hi Jacopo,

On 03/27/2018 01:10 PM, jacopo mondi wrote:
> Hi Vladimir,
> 
> On Tue, Mar 27, 2018 at 12:37:31PM +0300, Vladimir Zapolskiy wrote:
>> Hi Jacopo,
>>
>> On 03/27/2018 11:57 AM, jacopo mondi wrote:
>>> Hi Vladimir,
>>>
>>> On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:
>>>> Hi Sergei,
>>>>
>>>> On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
>>>>> Hello!
>>>>>
>>>>> On 3/27/2018 10:33 AM, jacopo mondi wrote:
>>>>> [...]
>>>>>>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
>>>>>>>>>>>
>>>>>>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
>>>>>>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
>>>>>>>>>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
>>>>>>>>>>> ---
>>>>>>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
>>>>>>>>>>>   1 file changed, 66 insertions(+)
>>>>>>>>>>>   create mode 100644
>>>>>>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>>>>>>
>>>>>>>>>>> diff --git
>>>>>>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>>>>>> new file mode 100644
>>>>>>>>>>> index 0000000..8225c6a
>>>>>>>>>>> --- /dev/null
>>>>>>>>>>> +++
>>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
>>>>>>>>>>> @@ -0,0 +1,66 @@
>>>>>>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
>>>>>>>>>>> +-------------------------------------------
>>>>>>>>>>> +
>>>>>>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
>>>>>>>>>>> streams
>>>>>>>>>>> +to parallel data outputs. The chip supports single/dual input/output modes,
>>>>>>>>>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
>>>>>>>>>>> outputs.
>>>>>>>>>>> +
>>>>>>>>>>> +Single or dual operation modes, output data mapping and DDR output modes
>>>>>>>>>>> are
>>>>>>>>>>> +configured through input signals and the chip does not expose any control
>>>>>>>>>>> bus.
>>>>>>>>>>> +
>>>>>>>>>>> +Required properties:
>>>>>>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
>>>>>>>>>>> +
>>>>>>>>>>> +Optional properties:
>>>>>>>>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
>>>>>>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
>>>>>>>>>>> +- lvcc-supply: Power supply for LVDS inputs
>>>>>>>>>>> +- pvcc-supply: Power supply for PLL circuitry
>>>>>>>>>> As explained in a comment to one of the previous versions of this series, I'm
>>>>>>>>>> tempted to make vcc-supply mandatory and drop the three other power supplies
>>>>>>>>>> for now, as I believe there's very little chance they will be connected to
>>>>>>>>>> separately controllable regulators (all supplies use the same voltage). In the
>>>>>>>>>> very unlikely event that this occurs in design we need to support in the
>>>>>>>>>> future, the cvcc, lvcc and pvcc supplies can be added later as optional
>>>>>>>>>> without breaking backward compatibility.
>>>>>>>>> I'm okay with that.
>>>>>>>>>
>>>>>>>>>> Apart from that,
>>>>>>>>>>
>>>>>>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>>>>>>>>>
>>>>>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
>>>>>>>>> powerdown-gpios is the semi-standard name.
>>>>>>>>>
>>>>>>>> right, I've also noticed it. If possible please avoid shortenings in
>>>>>>>> property names.
>>>>>>>
>>>>>>> It is not shortening, it just follow pin name from decoder's datasheet.
>>>>>>>
>>>>>>>>
>>>>>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
>>>>>>>>>>> +
>>>>>>>> And this one is also a not ever met property name, please consider to
>>>>>>>> rename it to 'enable-gpios', for instance display panels define it.
>>>>>>>
>>>>>>>
>>>>>>> Again, it follows datasheet naming scheme. Has something changed in DT
>>>>>>> conventions?
>>>>>>
>>>>>> Seconded. My understanding is that the property name should reflect
>>>>>> what reported in the the chip manual. For THC63LVD1024 the enable and
>>>>>> power down pins are named 'OE' and 'PDWN' respectively.
>>>>>
>>>>>     But don't we need the vendor prefix in the prop names then, like
>>>>> "renesas,oe-gpios" then?
>>>>>
>>>>
>>>> Seconded, with a correction to "thine,oe-gpios".
>>>>
>>>
>>> mmm, okay then...
>>>
>>> A grep for that semi-standard properties names in Documentation/
>>> returns only usage examples and no actual definitions, so I assume this
>>> is why they are semi-standard.
>>
>> Here we have to be specific about a particular property, let it be 'oe-gpios'
>> vs. 'enable-gpios' and let's collect some statistics:
>>
>> % grep -Hr oe-gpios Documentation/devicetree/bindings/* | wc -l
>> 0
>>
>> $ grep -Hr enable-gpios Documentation/devicetree/bindings/* | wc -l
>> 86
>>
>> While 'thine,oe-gpios' would be correct, I see no reason to introduce a vendor
>> specific property to define a pin with a common and well understood purpose.
>>
>> If you go forward with the vendor specific prefix, apparently you can set the name
>> to 'thine,oe-gpio' (single) or even to 'thine,oe', or does the datasheet names
>> the pin as "OE GPIO" or "OE connected to a GPIO"? I guess no.
>>
> 
> Let me clarify I don't want to push for a vendor specific name or
> similar, I'm fine with using 'semi-standard' names, I'm just confused
> by the 'semi-standard' definition. I guess from your examples, the
> usage count makes a difference here.

yes, in gneneral you can read "semi-standard" as "widely used", thus collecting
statistics is a good enough method to make a reasoning.

Hopefully the next evolutionary step of "widely used" is "described in standard".

>> Standards do not define '-gpios' suffix, but partially the description is found
>> in Documentation/bindings/gpio/gpio.txt, still it is not a section in any
>> standard as far as I know.
> 
>>
>>> Seems like there is some tribal knowledge involved in defining what
>>> is semi-standard and what's not, or are those properties documented somewhere?
>>>
>>
>> The point is that there is no formal standard which describes every IP,
>> every IC and every single their property, some device node names and property
>> names are recommended in ePAPR and Devicetree Specification though.
>>
>> Think of a confusion if 'rst-gpios' (have you seen any ICs with an RST pin?) and
>> 'reset-gpios' are different. Same applies to 'pdwn-gpios' vs. 'powerdown-gpios'.
> 
> I see all your points and I agree with most of them. Anyway, if the
> chip manual describes a pin as 'RST' I would not find it confusing to
> have a 'rst-gpio' defined in bindings :)
> 
> Let me be a bit pesky here: what if a chip defines a reset GPIO, which
> is definitely a reset, but names it, say "XYZ" ? Would you prefer to
> see it defined as "reset-gpios" for consistency with other bindings,
> or "xyz-gpios" for consistency with documentation?

If a pin is definitely an IC reset as you said, then my preference is to see
it described under 'reset-gpios' property name, plus a comment in the IC
device tree documentation document about it. I can provide two reasons to
advocate my position:

1) developers spend significantly more time reading and editing the actual
   DTSI/DTS board files rather than reading and editing documentation,
   it makes sense to use common property names to save time and reduce
   amount of "what does 'oe' stand for?" type of questions; I suppose
   that the recommendation to avoid not "widely used" abbreviations in
   device node and property names arises from the same reasoning,

2) "widely used" and "standard" properties are excellent candidates for
   developing (or re-using) generalization wrappers, it happened so many
   times in the past, and this process shall be supported in my opinion;
   due to compatibility restrictions it might be problematic to change
   property names, and every new exception to "widely used" properties
   makes problematic to develop and maintain these kinds of wrappers, and
   of course it postpones a desired "described in standard" recognition.

If my point of view is accepted, I do admit that a developer who
translates a board schematics to board DTS file may experience a minor
discomfort, which is mitigated if relevant pin names are found in device
tree binding documentation in comments to properties, still the overall
gain is noticeably higher in my personal opinion.

--
With best wishes,
Vladimir
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jacopo Mondi March 29, 2018, 10:02 a.m. UTC | #13
Hi Vladimir,

On Tue, Mar 27, 2018 at 02:03:25PM +0300, Vladimir Zapolskiy wrote:
> Hi Jacopo,
>
> On 03/27/2018 01:10 PM, jacopo mondi wrote:
> > Hi Vladimir,
> >
> > On Tue, Mar 27, 2018 at 12:37:31PM +0300, Vladimir Zapolskiy wrote:
> >> Hi Jacopo,
> >>
> >> On 03/27/2018 11:57 AM, jacopo mondi wrote:
> >>> Hi Vladimir,
> >>>
> >>> On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:
> >>>> Hi Sergei,
> >>>>
> >>>> On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
> >>>>> Hello!
> >>>>>
> >>>>> On 3/27/2018 10:33 AM, jacopo mondi wrote:
> >>>>> [...]
> >>>>>>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
> >>>>>>>>>>>
> >>>>>>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> >>>>>>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> >>>>>>>>>>> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> >>>>>>>>>>> ---
> >>>>>>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++++++++++++++++++
> >>>>>>>>>>>   1 file changed, 66 insertions(+)
> >>>>>>>>>>>   create mode 100644
> >>>>>>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>>>>>>
> >>>>>>>>>>> diff --git
> >>>>>>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>>>>>> new file mode 100644
> >>>>>>>>>>> index 0000000..8225c6a
> >>>>>>>>>>> --- /dev/null
> >>>>>>>>>>> +++
> >>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
> >>>>>>>>>>> @@ -0,0 +1,66 @@
> >>>>>>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
> >>>>>>>>>>> +-------------------------------------------
> >>>>>>>>>>> +
> >>>>>>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS
> >>>>>>>>>>> streams
> >>>>>>>>>>> +to parallel data outputs. The chip supports single/dual input/output modes,
> >>>>>>>>>>> +handling up to two two input LVDS stream and up to two digital CMOS/TTL
> >>>>>>>>>>> outputs.
> >>>>>>>>>>> +
> >>>>>>>>>>> +Single or dual operation modes, output data mapping and DDR output modes
> >>>>>>>>>>> are
> >>>>>>>>>>> +configured through input signals and the chip does not expose any control
> >>>>>>>>>>> bus.
> >>>>>>>>>>> +
> >>>>>>>>>>> +Required properties:
> >>>>>>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
> >>>>>>>>>>> +
> >>>>>>>>>>> +Optional properties:
> >>>>>>>>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
> >>>>>>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
> >>>>>>>>>>> +- lvcc-supply: Power supply for LVDS inputs
> >>>>>>>>>>> +- pvcc-supply: Power supply for PLL circuitry
> >>>>>>>>>> As explained in a comment to one of the previous versions of this series, I'm
> >>>>>>>>>> tempted to make vcc-supply mandatory and drop the three other power supplies
> >>>>>>>>>> for now, as I believe there's very little chance they will be connected to
> >>>>>>>>>> separately controllable regulators (all supplies use the same voltage). In the
> >>>>>>>>>> very unlikely event that this occurs in design we need to support in the
> >>>>>>>>>> future, the cvcc, lvcc and pvcc supplies can be added later as optional
> >>>>>>>>>> without breaking backward compatibility.
> >>>>>>>>> I'm okay with that.
> >>>>>>>>>
> >>>>>>>>>> Apart from that,
> >>>>>>>>>>
> >>>>>>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>>>>>>>>>
> >>>>>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
> >>>>>>>>> powerdown-gpios is the semi-standard name.
> >>>>>>>>>
> >>>>>>>> right, I've also noticed it. If possible please avoid shortenings in
> >>>>>>>> property names.
> >>>>>>>
> >>>>>>> It is not shortening, it just follow pin name from decoder's datasheet.
> >>>>>>>
> >>>>>>>>
> >>>>>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
> >>>>>>>>>>> +
> >>>>>>>> And this one is also a not ever met property name, please consider to
> >>>>>>>> rename it to 'enable-gpios', for instance display panels define it.
> >>>>>>>
> >>>>>>>
> >>>>>>> Again, it follows datasheet naming scheme. Has something changed in DT
> >>>>>>> conventions?
> >>>>>>
> >>>>>> Seconded. My understanding is that the property name should reflect
> >>>>>> what reported in the the chip manual. For THC63LVD1024 the enable and
> >>>>>> power down pins are named 'OE' and 'PDWN' respectively.
> >>>>>
> >>>>>     But don't we need the vendor prefix in the prop names then, like
> >>>>> "renesas,oe-gpios" then?
> >>>>>
> >>>>
> >>>> Seconded, with a correction to "thine,oe-gpios".
> >>>>
> >>>
> >>> mmm, okay then...
> >>>
> >>> A grep for that semi-standard properties names in Documentation/
> >>> returns only usage examples and no actual definitions, so I assume this
> >>> is why they are semi-standard.
> >>
> >> Here we have to be specific about a particular property, let it be 'oe-gpios'
> >> vs. 'enable-gpios' and let's collect some statistics:
> >>
> >> % grep -Hr oe-gpios Documentation/devicetree/bindings/* | wc -l
> >> 0
> >>
> >> $ grep -Hr enable-gpios Documentation/devicetree/bindings/* | wc -l
> >> 86
> >>
> >> While 'thine,oe-gpios' would be correct, I see no reason to introduce a vendor
> >> specific property to define a pin with a common and well understood purpose.
> >>
> >> If you go forward with the vendor specific prefix, apparently you can set the name
> >> to 'thine,oe-gpio' (single) or even to 'thine,oe', or does the datasheet names
> >> the pin as "OE GPIO" or "OE connected to a GPIO"? I guess no.
> >>
> >
> > Let me clarify I don't want to push for a vendor specific name or
> > similar, I'm fine with using 'semi-standard' names, I'm just confused
> > by the 'semi-standard' definition. I guess from your examples, the
> > usage count makes a difference here.
>
> yes, in gneneral you can read "semi-standard" as "widely used", thus collecting
> statistics is a good enough method to make a reasoning.
>
> Hopefully the next evolutionary step of "widely used" is "described in standard".
>
> >> Standards do not define '-gpios' suffix, but partially the description is found
> >> in Documentation/bindings/gpio/gpio.txt, still it is not a section in any
> >> standard as far as I know.
> >
> >>
> >>> Seems like there is some tribal knowledge involved in defining what
> >>> is semi-standard and what's not, or are those properties documented somewhere?
> >>>
> >>
> >> The point is that there is no formal standard which describes every IP,
> >> every IC and every single their property, some device node names and property
> >> names are recommended in ePAPR and Devicetree Specification though.
> >>
> >> Think of a confusion if 'rst-gpios' (have you seen any ICs with an RST pin?) and
> >> 'reset-gpios' are different. Same applies to 'pdwn-gpios' vs. 'powerdown-gpios'.
> >
> > I see all your points and I agree with most of them. Anyway, if the
> > chip manual describes a pin as 'RST' I would not find it confusing to
> > have a 'rst-gpio' defined in bindings :)
> >
> > Let me be a bit pesky here: what if a chip defines a reset GPIO, which
> > is definitely a reset, but names it, say "XYZ" ? Would you prefer to
> > see it defined as "reset-gpios" for consistency with other bindings,
> > or "xyz-gpios" for consistency with documentation?
>
> If a pin is definitely an IC reset as you said, then my preference is to see
> it described under 'reset-gpios' property name, plus a comment in the IC
> device tree documentation document about it. I can provide two reasons to
> advocate my position:
>
> 1) developers spend significantly more time reading and editing the actual
>    DTSI/DTS board files rather than reading and editing documentation,
>    it makes sense to use common property names to save time and reduce
>    amount of "what does 'oe' stand for?" type of questions; I suppose
>    that the recommendation to avoid not "widely used" abbreviations in
>    device node and property names arises from the same reasoning,
>
> 2) "widely used" and "standard" properties are excellent candidates for
>    developing (or re-using) generalization wrappers, it happened so many
>    times in the past, and this process shall be supported in my opinion;
>    due to compatibility restrictions it might be problematic to change
>    property names, and every new exception to "widely used" properties
>    makes problematic to develop and maintain these kinds of wrappers, and
>    of course it postpones a desired "described in standard" recognition.
>
> If my point of view is accepted, I do admit that a developer who
> translates a board schematics to board DTS file may experience a minor
> discomfort, which is mitigated if relevant pin names are found in device
> tree binding documentation in comments to properties, still the overall
> gain is noticeably higher in my personal opinion.
>

Thank you for sharing your point of view. Makes much sense actually.
I will use semi-standard names in v7 bindings.

Thanks
   j

> --
> With best wishes,
> Vladimir
Laurent Pinchart April 2, 2018, 1:36 p.m. UTC | #14
Hi Vladimir,

On Tuesday, 27 March 2018 14:03:25 EEST Vladimir Zapolskiy wrote:
> On 03/27/2018 01:10 PM, jacopo mondi wrote:
> > On Tue, Mar 27, 2018 at 12:37:31PM +0300, Vladimir Zapolskiy wrote:
> >> On 03/27/2018 11:57 AM, jacopo mondi wrote:
> >>> On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:
> >>>> On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
> >>>>> On 3/27/2018 10:33 AM, jacopo mondi wrote:
> >>>>> [...]
> >>>>> 
> >>>>>>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
> >>>>>>>>>>> 
> >>>>>>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> >>>>>>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> >>>>>>>>>>> Reviewed-by: Niklas Söderlund
> >>>>>>>>>>> <niklas.soderlund+renesas@ragnatech.se>
> >>>>>>>>>>> ---
> >>>>>>>>>>> 
> >>>>>>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66
> >>>>>>>>>>>   +++++++++++++++++++
> >>>>>>>>>>>   1 file changed, 66 insertions(+)
> >>>>>>>>>>>   create mode 100644
> >>>>>>>>>>> 
> >>>>>>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1
> >>>>>>>>>>> 024.txt
> >>>>>>>>>>> 
> >>>>>>>>>>> diff --git
> >>>>>>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lv
> >>>>>>>>>>> d1024.txt
> >>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lv
> >>>>>>>>>>> d1024.txt
> >>>>>>>>>>> new file mode 100644
> >>>>>>>>>>> index 0000000..8225c6a
> >>>>>>>>>>> --- /dev/null
> >>>>>>>>>>> +++
> >>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lv
> >>>>>>>>>>> d1024.txt
> >>>>>>>>>>> @@ -0,0 +1,66 @@
> >>>>>>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
> >>>>>>>>>>> +-------------------------------------------
> >>>>>>>>>>> +
> >>>>>>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to
> >>>>>>>>>>> convert LVDS streams
> >>>>>>>>>>> +to parallel data outputs. The chip supports single/dual
> >>>>>>>>>>> input/output modes, +handling up to two two input LVDS stream
> >>>>>>>>>>> and up to two digital CMOS/TTL outputs.
> >>>>>>>>>>> +
> >>>>>>>>>>> +Single or dual operation modes, output data mapping and DDR
> >>>>>>>>>>> output modes are
> >>>>>>>>>>> +configured through input signals and the chip does not expose
> >>>>>>>>>>> any control bus.
> >>>>>>>>>>> +
> >>>>>>>>>>> +Required properties:
> >>>>>>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
> >>>>>>>>>>> +
> >>>>>>>>>>> +Optional properties:
> >>>>>>>>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
> >>>>>>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
> >>>>>>>>>>> +- lvcc-supply: Power supply for LVDS inputs
> >>>>>>>>>>> +- pvcc-supply: Power supply for PLL circuitry
> >>>>>>>>>> 
> >>>>>>>>>> As explained in a comment to one of the previous versions of this
> >>>>>>>>>> series, I'm tempted to make vcc-supply mandatory and drop the
> >>>>>>>>>> three other power supplies for now, as I believe there's very
> >>>>>>>>>> little chance they will be connected to separately controllable
> >>>>>>>>>> regulators (all supplies use the same voltage). In the very
> >>>>>>>>>> unlikely event that this occurs in design we need to support in
> >>>>>>>>>> the future, the cvcc, lvcc and pvcc supplies can be added later
> >>>>>>>>>> as optional without breaking backward compatibility.
> >>>>>>>>> 
> >>>>>>>>> I'm okay with that.
> >>>>>>>>> 
> >>>>>>>>>> Apart from that,
> >>>>>>>>>> 
> >>>>>>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>>>>>>>>> 
> >>>>>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
> >>>>>>>>> 
> >>>>>>>>> powerdown-gpios is the semi-standard name.
> >>>>>>>> 
> >>>>>>>> right, I've also noticed it. If possible please avoid shortenings
> >>>>>>>> in property names.
> >>>>>>> 
> >>>>>>> It is not shortening, it just follow pin name from decoder's
> >>>>>>> datasheet.
> >>>>>>> 
> >>>>>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
> >>>>>>>>>>> +
> >>>>>>>> 
> >>>>>>>> And this one is also a not ever met property name, please consider
> >>>>>>>> to rename it to 'enable-gpios', for instance display panels define
> >>>>>>>> it.
> >>>>>>> 
> >>>>>>> Again, it follows datasheet naming scheme. Has something changed in
> >>>>>>> DT conventions?
> >>>>>> 
> >>>>>> Seconded. My understanding is that the property name should reflect
> >>>>>> what reported in the the chip manual. For THC63LVD1024 the enable and
> >>>>>> power down pins are named 'OE' and 'PDWN' respectively.
> >>>>>> 
> >>>>> But don't we need the vendor prefix in the prop names then, like
> >>>>> "renesas,oe-gpios" then?
> >>>> 
> >>>> Seconded, with a correction to "thine,oe-gpios".
> >>> 
> >>> mmm, okay then...
> >>> 
> >>> A grep for that semi-standard properties names in Documentation/
> >>> returns only usage examples and no actual definitions, so I assume this
> >>> is why they are semi-standard.
> >> 
> >> Here we have to be specific about a particular property, let it be
> >> 'oe-gpios' vs. 'enable-gpios' and let's collect some statistics:
> >> 
> >> % grep -Hr oe-gpios Documentation/devicetree/bindings/* | wc -l
> >> 0
> >> 
> >> $ grep -Hr enable-gpios Documentation/devicetree/bindings/* | wc -l
> >> 86
> >> 
> >> While 'thine,oe-gpios' would be correct, I see no reason to introduce a
> >> vendor specific property to define a pin with a common and well
> >> understood purpose.
> >> 
> >> If you go forward with the vendor specific prefix, apparently you can set
> >> the name to 'thine,oe-gpio' (single) or even to 'thine,oe', or does the
> >> datasheet names the pin as "OE GPIO" or "OE connected to a GPIO"? I
> >> guess no.
> > 
> > Let me clarify I don't want to push for a vendor specific name or
> > similar, I'm fine with using 'semi-standard' names, I'm just confused
> > by the 'semi-standard' definition. I guess from your examples, the
> > usage count makes a difference here.
> 
> yes, in gneneral you can read "semi-standard" as "widely used", thus
> collecting statistics is a good enough method to make a reasoning.
> 
> Hopefully the next evolutionary step of "widely used" is "described in
> standard".
> 
> >> Standards do not define '-gpios' suffix, but partially the description is
> >> found in Documentation/bindings/gpio/gpio.txt, still it is not a section
> >> in any standard as far as I know.
> >> 
> >>> Seems like there is some tribal knowledge involved in defining what
> >>> is semi-standard and what's not, or are those properties documented
> >>> somewhere?
> >> 
> >> The point is that there is no formal standard which describes every IP,
> >> every IC and every single their property, some device node names and
> >> property names are recommended in ePAPR and Devicetree Specification
> >> though.
> >> 
> >> Think of a confusion if 'rst-gpios' (have you seen any ICs with an RST
> >> pin?) and 'reset-gpios' are different. Same applies to 'pdwn-gpios' vs.
> >> 'powerdown-gpios'.
> > 
> > I see all your points and I agree with most of them. Anyway, if the
> > chip manual describes a pin as 'RST' I would not find it confusing to
> > have a 'rst-gpio' defined in bindings :)
> > 
> > Let me be a bit pesky here: what if a chip defines a reset GPIO, which
> > is definitely a reset, but names it, say "XYZ" ? Would you prefer to
> > see it defined as "reset-gpios" for consistency with other bindings,
> > or "xyz-gpios" for consistency with documentation?
> 
> If a pin is definitely an IC reset as you said, then my preference is to see
> it described under 'reset-gpios' property name, plus a comment in the IC
> device tree documentation document about it. I can provide two reasons to
> advocate my position:
> 
> 1) developers spend significantly more time reading and editing the actual
>    DTSI/DTS board files rather than reading and editing documentation,
>    it makes sense to use common property names to save time and reduce
>    amount of "what does 'oe' stand for?" type of questions; I suppose
>    that the recommendation to avoid not "widely used" abbreviations in
>    device node and property names arises from the same reasoning,
> 
> 2) "widely used" and "standard" properties are excellent candidates for
>    developing (or re-using) generalization wrappers, it happened so many
>    times in the past, and this process shall be supported in my opinion;
>    due to compatibility restrictions it might be problematic to change
>    property names, and every new exception to "widely used" properties
>    makes problematic to develop and maintain these kinds of wrappers, and
>    of course it postpones a desired "described in standard" recognition.
> 
> If my point of view is accepted, I do admit that a developer who
> translates a board schematics to board DTS file may experience a minor
> discomfort, which is mitigated if relevant pin names are found in device
> tree binding documentation in comments to properties, still the overall
> gain is noticeably higher in my personal opinion.

I have to disagree with this. When using a property name that doesn't 
correspond to the hardware documentation, developers will need to refer to the 
DT bindings documentation to confirm the property name. "Widely used" property 
names will not save time, they will use more time. This is of course marginal 
and I don't think it would have any noticeable impact, but I don't think your 
argument holds.

I'm all for standardizing properties across DT bindings for multiple 
components, but doing so in a semi-random fashion will in my opinion not 
result in any gain. We can decide that power-down or output-enable GPIOS 
should have common property names (and I'm not even sure that would be useful, 
but we can certainly discuss it), but in that case someone should make a 
proposal and get the names standardized. Unless we do so, no matter what 
property name gets picked for a particular binding, it won't become 
universally used by magic.

I'd like to hear the DT bindings maintainers position on this matter.
Jacopo Mondi April 3, 2018, 12:33 p.m. UTC | #15
Hi Rob,
    sorry for pointing to you directly :)

On Mon, Apr 02, 2018 at 04:36:55PM +0300, Laurent Pinchart wrote:
> Hi Vladimir,
>
> On Tuesday, 27 March 2018 14:03:25 EEST Vladimir Zapolskiy wrote:
> > On 03/27/2018 01:10 PM, jacopo mondi wrote:
> > > On Tue, Mar 27, 2018 at 12:37:31PM +0300, Vladimir Zapolskiy wrote:
> > >> On 03/27/2018 11:57 AM, jacopo mondi wrote:
> > >>> On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:

[snip]

> > >>>>>>>>>>
> > >>>>>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
> > >>>>>>>>>
> > >>>>>>>>> powerdown-gpios is the semi-standard name.
> > >>>>>>>>
> > >>>>>>>> right, I've also noticed it. If possible please avoid shortenings
> > >>>>>>>> in property names.
> > >>>>>>>
> > >>>>>>> It is not shortening, it just follow pin name from decoder's
> > >>>>>>> datasheet.
> > >>>>>>>
> > >>>>>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
> > >>>>>>>>>>> +
> > >>>>>>>>
> > >>>>>>>> And this one is also a not ever met property name, please consider
> > >>>>>>>> to rename it to 'enable-gpios', for instance display panels define
> > >>>>>>>> it.
> > >>>>>>>
> > >>>>>>> Again, it follows datasheet naming scheme. Has something changed in
> > >>>>>>> DT conventions?
> > >>>>>>
> > >>>>>> Seconded. My understanding is that the property name should reflect
> > >>>>>> what reported in the the chip manual. For THC63LVD1024 the enable and
> > >>>>>> power down pins are named 'OE' and 'PDWN' respectively.
> > >>>>>>
> > >>>>> But don't we need the vendor prefix in the prop names then, like
> > >>>>> "renesas,oe-gpios" then?
> > >>>>
> > >>>> Seconded, with a correction to "thine,oe-gpios".
> > >>>
> > >>> mmm, okay then...
> > >>>
> > >>> A grep for that semi-standard properties names in Documentation/
> > >>> returns only usage examples and no actual definitions, so I assume this
> > >>> is why they are semi-standard.
> > >>
> > >> Here we have to be specific about a particular property, let it be
> > >> 'oe-gpios' vs. 'enable-gpios' and let's collect some statistics:
> > >>
> > >> % grep -Hr oe-gpios Documentation/devicetree/bindings/* | wc -l
> > >> 0
> > >>
> > >> $ grep -Hr enable-gpios Documentation/devicetree/bindings/* | wc -l
> > >> 86
> > >>
> > >> While 'thine,oe-gpios' would be correct, I see no reason to introduce a
> > >> vendor specific property to define a pin with a common and well
> > >> understood purpose.
> > >>
> > >> If you go forward with the vendor specific prefix, apparently you can set
> > >> the name to 'thine,oe-gpio' (single) or even to 'thine,oe', or does the
> > >> datasheet names the pin as "OE GPIO" or "OE connected to a GPIO"? I
> > >> guess no.
> > >
> > > Let me clarify I don't want to push for a vendor specific name or
> > > similar, I'm fine with using 'semi-standard' names, I'm just confused
> > > by the 'semi-standard' definition. I guess from your examples, the
> > > usage count makes a difference here.
> >
> > yes, in gneneral you can read "semi-standard" as "widely used", thus
> > collecting statistics is a good enough method to make a reasoning.
> >
> > Hopefully the next evolutionary step of "widely used" is "described in
> > standard".
> >
> > >> Standards do not define '-gpios' suffix, but partially the description is
> > >> found in Documentation/bindings/gpio/gpio.txt, still it is not a section
> > >> in any standard as far as I know.
> > >>
> > >>> Seems like there is some tribal knowledge involved in defining what
> > >>> is semi-standard and what's not, or are those properties documented
> > >>> somewhere?
> > >>
> > >> The point is that there is no formal standard which describes every IP,
> > >> every IC and every single their property, some device node names and
> > >> property names are recommended in ePAPR and Devicetree Specification
> > >> though.
> > >>
> > >> Think of a confusion if 'rst-gpios' (have you seen any ICs with an RST
> > >> pin?) and 'reset-gpios' are different. Same applies to 'pdwn-gpios' vs.
> > >> 'powerdown-gpios'.
> > >
> > > I see all your points and I agree with most of them. Anyway, if the
> > > chip manual describes a pin as 'RST' I would not find it confusing to
> > > have a 'rst-gpio' defined in bindings :)
> > >
> > > Let me be a bit pesky here: what if a chip defines a reset GPIO, which
> > > is definitely a reset, but names it, say "XYZ" ? Would you prefer to
> > > see it defined as "reset-gpios" for consistency with other bindings,
> > > or "xyz-gpios" for consistency with documentation?
> >
> > If a pin is definitely an IC reset as you said, then my preference is to see
> > it described under 'reset-gpios' property name, plus a comment in the IC
> > device tree documentation document about it. I can provide two reasons to
> > advocate my position:
> >
> > 1) developers spend significantly more time reading and editing the actual
> >    DTSI/DTS board files rather than reading and editing documentation,
> >    it makes sense to use common property names to save time and reduce
> >    amount of "what does 'oe' stand for?" type of questions; I suppose
> >    that the recommendation to avoid not "widely used" abbreviations in
> >    device node and property names arises from the same reasoning,
> >
> > 2) "widely used" and "standard" properties are excellent candidates for
> >    developing (or re-using) generalization wrappers, it happened so many
> >    times in the past, and this process shall be supported in my opinion;
> >    due to compatibility restrictions it might be problematic to change
> >    property names, and every new exception to "widely used" properties
> >    makes problematic to develop and maintain these kinds of wrappers, and
> >    of course it postpones a desired "described in standard" recognition.
> >
> > If my point of view is accepted, I do admit that a developer who
> > translates a board schematics to board DTS file may experience a minor
> > discomfort, which is mitigated if relevant pin names are found in device
> > tree binding documentation in comments to properties, still the overall
> > gain is noticeably higher in my personal opinion.
>
> I have to disagree with this. When using a property name that doesn't
> correspond to the hardware documentation, developers will need to refer to the
> DT bindings documentation to confirm the property name. "Widely used" property
> names will not save time, they will use more time. This is of course marginal
> and I don't think it would have any noticeable impact, but I don't think your
> argument holds.
>
> I'm all for standardizing properties across DT bindings for multiple
> components, but doing so in a semi-random fashion will in my opinion not
> result in any gain. We can decide that power-down or output-enable GPIOS
> should have common property names (and I'm not even sure that would be useful,
> but we can certainly discuss it), but in that case someone should make a
> proposal and get the names standardized. Unless we do so, no matter what
> property name gets picked for a particular binding, it won't become
> universally used by magic.
>
> I'd like to hear the DT bindings maintainers position on this matter.
>

Me too :)

As driver developer I see both Vladimir's and Laurent's points.
I still prefer to reflect in bindings the pin name assigned in the
chip manual, over semi-standard names, but that's a personal preference.

In order to send next version I would like to know which direction do
the dt custodians should be taken on this.

Thanks
   j


> --
> Regards,
>
> Laurent Pinchart
>
>
>
Rob Herring (Arm) April 5, 2018, 4:33 p.m. UTC | #16
On Mon, Apr 2, 2018 at 8:36 AM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> Hi Vladimir,
>
> On Tuesday, 27 March 2018 14:03:25 EEST Vladimir Zapolskiy wrote:
>> On 03/27/2018 01:10 PM, jacopo mondi wrote:
>> > On Tue, Mar 27, 2018 at 12:37:31PM +0300, Vladimir Zapolskiy wrote:
>> >> On 03/27/2018 11:57 AM, jacopo mondi wrote:
>> >>> On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:
>> >>>> On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
>> >>>>> On 3/27/2018 10:33 AM, jacopo mondi wrote:
>> >>>>> [...]
>> >>>>>
>> >>>>>>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree bindings.
>> >>>>>>>>>>>
>> >>>>>>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
>> >>>>>>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
>> >>>>>>>>>>> Reviewed-by: Niklas Söderlund
>> >>>>>>>>>>> <niklas.soderlund+renesas@ragnatech.se>
>> >>>>>>>>>>> ---
>> >>>>>>>>>>>
>> >>>>>>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66
>> >>>>>>>>>>>   +++++++++++++++++++
>> >>>>>>>>>>>   1 file changed, 66 insertions(+)
>> >>>>>>>>>>>   create mode 100644
>> >>>>>>>>>>>
>> >>>>>>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1
>> >>>>>>>>>>> 024.txt
>> >>>>>>>>>>>
>> >>>>>>>>>>> diff --git
>> >>>>>>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc63lv
>> >>>>>>>>>>> d1024.txt
>> >>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lv
>> >>>>>>>>>>> d1024.txt
>> >>>>>>>>>>> new file mode 100644
>> >>>>>>>>>>> index 0000000..8225c6a
>> >>>>>>>>>>> --- /dev/null
>> >>>>>>>>>>> +++
>> >>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc63lv
>> >>>>>>>>>>> d1024.txt
>> >>>>>>>>>>> @@ -0,0 +1,66 @@
>> >>>>>>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
>> >>>>>>>>>>> +-------------------------------------------
>> >>>>>>>>>>> +
>> >>>>>>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to
>> >>>>>>>>>>> convert LVDS streams
>> >>>>>>>>>>> +to parallel data outputs. The chip supports single/dual
>> >>>>>>>>>>> input/output modes, +handling up to two two input LVDS stream
>> >>>>>>>>>>> and up to two digital CMOS/TTL outputs.
>> >>>>>>>>>>> +
>> >>>>>>>>>>> +Single or dual operation modes, output data mapping and DDR
>> >>>>>>>>>>> output modes are
>> >>>>>>>>>>> +configured through input signals and the chip does not expose
>> >>>>>>>>>>> any control bus.
>> >>>>>>>>>>> +
>> >>>>>>>>>>> +Required properties:
>> >>>>>>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
>> >>>>>>>>>>> +
>> >>>>>>>>>>> +Optional properties:
>> >>>>>>>>>>> +- vcc-supply: Power supply for TTL output and digital circuitry
>> >>>>>>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
>> >>>>>>>>>>> +- lvcc-supply: Power supply for LVDS inputs
>> >>>>>>>>>>> +- pvcc-supply: Power supply for PLL circuitry
>> >>>>>>>>>>
>> >>>>>>>>>> As explained in a comment to one of the previous versions of this
>> >>>>>>>>>> series, I'm tempted to make vcc-supply mandatory and drop the
>> >>>>>>>>>> three other power supplies for now, as I believe there's very
>> >>>>>>>>>> little chance they will be connected to separately controllable
>> >>>>>>>>>> regulators (all supplies use the same voltage). In the very
>> >>>>>>>>>> unlikely event that this occurs in design we need to support in
>> >>>>>>>>>> the future, the cvcc, lvcc and pvcc supplies can be added later
>> >>>>>>>>>> as optional without breaking backward compatibility.
>> >>>>>>>>>
>> >>>>>>>>> I'm okay with that.
>> >>>>>>>>>
>> >>>>>>>>>> Apart from that,
>> >>>>>>>>>>
>> >>>>>>>>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> >>>>>>>>>>
>> >>>>>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
>> >>>>>>>>>
>> >>>>>>>>> powerdown-gpios is the semi-standard name.
>> >>>>>>>>
>> >>>>>>>> right, I've also noticed it. If possible please avoid shortenings
>> >>>>>>>> in property names.
>> >>>>>>>
>> >>>>>>> It is not shortening, it just follow pin name from decoder's
>> >>>>>>> datasheet.
>> >>>>>>>
>> >>>>>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
>> >>>>>>>>>>> +
>> >>>>>>>>
>> >>>>>>>> And this one is also a not ever met property name, please consider
>> >>>>>>>> to rename it to 'enable-gpios', for instance display panels define
>> >>>>>>>> it.
>> >>>>>>>
>> >>>>>>> Again, it follows datasheet naming scheme. Has something changed in
>> >>>>>>> DT conventions?
>> >>>>>>
>> >>>>>> Seconded. My understanding is that the property name should reflect
>> >>>>>> what reported in the the chip manual. For THC63LVD1024 the enable and
>> >>>>>> power down pins are named 'OE' and 'PDWN' respectively.
>> >>>>>>
>> >>>>> But don't we need the vendor prefix in the prop names then, like
>> >>>>> "renesas,oe-gpios" then?
>> >>>>
>> >>>> Seconded, with a correction to "thine,oe-gpios".
>> >>>
>> >>> mmm, okay then...
>> >>>
>> >>> A grep for that semi-standard properties names in Documentation/
>> >>> returns only usage examples and no actual definitions, so I assume this
>> >>> is why they are semi-standard.
>> >>
>> >> Here we have to be specific about a particular property, let it be
>> >> 'oe-gpios' vs. 'enable-gpios' and let's collect some statistics:
>> >>
>> >> % grep -Hr oe-gpios Documentation/devicetree/bindings/* | wc -l
>> >> 0
>> >>
>> >> $ grep -Hr enable-gpios Documentation/devicetree/bindings/* | wc -l
>> >> 86
>> >>
>> >> While 'thine,oe-gpios' would be correct, I see no reason to introduce a
>> >> vendor specific property to define a pin with a common and well
>> >> understood purpose.
>> >>
>> >> If you go forward with the vendor specific prefix, apparently you can set
>> >> the name to 'thine,oe-gpio' (single) or even to 'thine,oe', or does the
>> >> datasheet names the pin as "OE GPIO" or "OE connected to a GPIO"? I
>> >> guess no.
>> >
>> > Let me clarify I don't want to push for a vendor specific name or
>> > similar, I'm fine with using 'semi-standard' names, I'm just confused
>> > by the 'semi-standard' definition. I guess from your examples, the
>> > usage count makes a difference here.
>>
>> yes, in gneneral you can read "semi-standard" as "widely used", thus
>> collecting statistics is a good enough method to make a reasoning.
>>
>> Hopefully the next evolutionary step of "widely used" is "described in
>> standard".
>>
>> >> Standards do not define '-gpios' suffix, but partially the description is
>> >> found in Documentation/bindings/gpio/gpio.txt, still it is not a section
>> >> in any standard as far as I know.
>> >>
>> >>> Seems like there is some tribal knowledge involved in defining what
>> >>> is semi-standard and what's not, or are those properties documented
>> >>> somewhere?
>> >>
>> >> The point is that there is no formal standard which describes every IP,
>> >> every IC and every single their property, some device node names and
>> >> property names are recommended in ePAPR and Devicetree Specification
>> >> though.
>> >>
>> >> Think of a confusion if 'rst-gpios' (have you seen any ICs with an RST
>> >> pin?) and 'reset-gpios' are different. Same applies to 'pdwn-gpios' vs.
>> >> 'powerdown-gpios'.
>> >
>> > I see all your points and I agree with most of them. Anyway, if the
>> > chip manual describes a pin as 'RST' I would not find it confusing to
>> > have a 'rst-gpio' defined in bindings :)
>> >
>> > Let me be a bit pesky here: what if a chip defines a reset GPIO, which
>> > is definitely a reset, but names it, say "XYZ" ? Would you prefer to
>> > see it defined as "reset-gpios" for consistency with other bindings,
>> > or "xyz-gpios" for consistency with documentation?
>>
>> If a pin is definitely an IC reset as you said, then my preference is to see
>> it described under 'reset-gpios' property name, plus a comment in the IC
>> device tree documentation document about it. I can provide two reasons to
>> advocate my position:
>>
>> 1) developers spend significantly more time reading and editing the actual
>>    DTSI/DTS board files rather than reading and editing documentation,
>>    it makes sense to use common property names to save time and reduce
>>    amount of "what does 'oe' stand for?" type of questions; I suppose
>>    that the recommendation to avoid not "widely used" abbreviations in
>>    device node and property names arises from the same reasoning,
>>
>> 2) "widely used" and "standard" properties are excellent candidates for
>>    developing (or re-using) generalization wrappers, it happened so many
>>    times in the past, and this process shall be supported in my opinion;
>>    due to compatibility restrictions it might be problematic to change
>>    property names, and every new exception to "widely used" properties
>>    makes problematic to develop and maintain these kinds of wrappers, and
>>    of course it postpones a desired "described in standard" recognition.
>>
>> If my point of view is accepted, I do admit that a developer who
>> translates a board schematics to board DTS file may experience a minor
>> discomfort, which is mitigated if relevant pin names are found in device
>> tree binding documentation in comments to properties, still the overall
>> gain is noticeably higher in my personal opinion.
>
> I have to disagree with this. When using a property name that doesn't
> correspond to the hardware documentation, developers will need to refer to the
> DT bindings documentation to confirm the property name. "Widely used" property
> names will not save time, they will use more time. This is of course marginal
> and I don't think it would have any noticeable impact, but I don't think your
> argument holds.

We can have it both ways. The name should follow the documented
name/function. For example, we have enable-gpios which is simply the
invert of powerdown-gpios (for software's purposes). Pick the one
closest to the documentation. We're not trying to make bindings use
"enable" if a signal is called "powerdown".

What we don't want is gratuitous variation in the names based on the
whims of hw designers:

resetb-gpios
resetn-gpios
rst-gpios
rstn-gpios
nRESET-gpios

...you get the idea (and I left out vendor prefixes).

> I'm all for standardizing properties across DT bindings for multiple
> components, but doing so in a semi-random fashion will in my opinion not
> result in any gain. We can decide that power-down or output-enable GPIOS
> should have common property names (and I'm not even sure that would be useful,
> but we can certainly discuss it), but in that case someone should make a
> proposal and get the names standardized. Unless we do so, no matter what
> property name gets picked for a particular binding, it won't become
> universally used by magic.

For "output enable", I suspect that is a common signal/function and
should have a standardized name. Generally, the way this works is we
get several variations and then we try to standardize things. I think
we can all agree standardizing first is better. If you want to put it
in a common place, please do. Maybe people will read that. Regardless,
the only way to enforce following standard names is with review.

Debating "oe" vs. "output-enable" is bikeshedding IMO. Anyone familiar
with h/w design should recognize OE.

The reason to try and standardize names is so we can have common
drivers or library functions. In particular, for things like GPIOs
that need to be configured first for devices on otherwise discoverable
buses, this is very useful.

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Laurent Pinchart April 5, 2018, 6:53 p.m. UTC | #17
Hi Rob,

On Thursday, 5 April 2018 19:33:33 EEST Rob Herring wrote:
> On Mon, Apr 2, 2018 at 8:36 AM, Laurent Pinchart wrote:
> > On Tuesday, 27 March 2018 14:03:25 EEST Vladimir Zapolskiy wrote:
> >> On 03/27/2018 01:10 PM, jacopo mondi wrote:
> >>> On Tue, Mar 27, 2018 at 12:37:31PM +0300, Vladimir Zapolskiy wrote:
> >>>> On 03/27/2018 11:57 AM, jacopo mondi wrote:
> >>>>> On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:
> >>>>>> On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
> >>>>>>> On 3/27/2018 10:33 AM, jacopo mondi wrote:
> >>>>>>> [...]
> >>>>>>> 
> >>>>>>>>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree
> >>>>>>>>>>>>> bindings.
> >>>>>>>>>>>>> 
> >>>>>>>>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> >>>>>>>>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> >>>>>>>>>>>>> Reviewed-by: Niklas Söderlund
> >>>>>>>>>>>>> <niklas.soderlund+renesas@ragnatech.se>
> >>>>>>>>>>>>> ---
> >>>>>>>>>>>>> 
> >>>>>>>>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++
> >>>>>>>>>>>>>   1 file changed, 66 insertions(+)
> >>>>>>>>>>>>>   create mode 100644
> >>>>>>>>>>>>> 
> >>>>>>>>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63l
> >>>>>>>>>>>>> vd1024.txt
> >>>>>>>>>>>>> diff --git
> >>>>>>>>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc6
> >>>>>>>>>>>>> 3lvd1024.txt
> >>>>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc6
> >>>>>>>>>>>>> 3lvd1024.txt
> >>>>>>>>>>>>> new file mode 100644
> >>>>>>>>>>>>> index 0000000..8225c6a
> >>>>>>>>>>>>> --- /dev/null
> >>>>>>>>>>>>> +++
> >>>>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc6
> >>>>>>>>>>>>> 3lvd1024.txt
> >>>>>>>>>>>>> @@ -0,0 +1,66 @@
> >>>>>>>>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
> >>>>>>>>>>>>> +-------------------------------------------
> >>>>>>>>>>>>> +
> >>>>>>>>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to
> >>>>>>>>>>>>> convert LVDS streams
> >>>>>>>>>>>>> +to parallel data outputs. The chip supports single/dual
> >>>>>>>>>>>>> input/output modes,
> >>>>>>>>>>>>> +handling up to two two input LVDS stream and up to two
> >>>>>>>>>>>>> digital CMOS/TTL outputs.
> >>>>>>>>>>>>> +
> >>>>>>>>>>>>> +Single or dual operation modes, output data mapping and DDR
> >>>>>>>>>>>>> output modes are
> >>>>>>>>>>>>> +configured through input signals and the chip does not
> >>>>>>>>>>>>> expose any control bus.
> >>>>>>>>>>>>> +
> >>>>>>>>>>>>> +Required properties:
> >>>>>>>>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
> >>>>>>>>>>>>> +
> >>>>>>>>>>>>> +Optional properties:
> >>>>>>>>>>>>> +- vcc-supply: Power supply for TTL output and digital
> >>>>>>>>>>>>> circuitry
> >>>>>>>>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
> >>>>>>>>>>>>> +- lvcc-supply: Power supply for LVDS inputs
> >>>>>>>>>>>>> +- pvcc-supply: Power supply for PLL circuitry
> >>>>>>>>>>>> 
> >>>>>>>>>>>> As explained in a comment to one of the previous versions of
> >>>>>>>>>>>> this series, I'm tempted to make vcc-supply mandatory and drop
> >>>>>>>>>>>> the three other power supplies for now, as I believe there's
> >>>>>>>>>>>> very little chance they will be connected to separately
> >>>>>>>>>>>> controllable regulators (all supplies use the same voltage). In
> >>>>>>>>>>>> the very unlikely event that this occurs in design we need to
> >>>>>>>>>>>> support in the future, the cvcc, lvcc and pvcc supplies can be
> >>>>>>>>>>>> added later as optional without breaking backward
> >>>>>>>>>>>> compatibility.
> >>>>>>>>>>> 
> >>>>>>>>>>> I'm okay with that.
> >>>>>>>>>>> 
> >>>>>>>>>>>> Apart from that,
> >>>>>>>>>>>> 
> >>>>>>>>>>>> Reviewed-by: Laurent Pinchart
> >>>>>>>>>>>> <laurent.pinchart@ideasonboard.com>
> >>>>>>>>>>>> 
> >>>>>>>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
> >>>>>>>>>>> 
> >>>>>>>>>>> powerdown-gpios is the semi-standard name.
> >>>>>>>>>> 
> >>>>>>>>>> right, I've also noticed it. If possible please avoid
> >>>>>>>>>> shortenings in property names.
> >>>>>>>>> 
> >>>>>>>>> It is not shortening, it just follow pin name from decoder's
> >>>>>>>>> datasheet.
> >>>>>>>>> 
> >>>>>>>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
> >>>>>>>>>>>>> +
> >>>>>>>>>> 
> >>>>>>>>>> And this one is also a not ever met property name, please
> >>>>>>>>>> consider to rename it to 'enable-gpios', for instance display
> >>>>>>>>>> panels define it.
> >>>>>>>>> 
> >>>>>>>>> Again, it follows datasheet naming scheme. Has something changed
> >>>>>>>>> in DT conventions?
> >>>>>>>> 
> >>>>>>>> Seconded. My understanding is that the property name should
> >>>>>>>> reflect what reported in the the chip manual. For THC63LVD1024 the
> >>>>>>>> enable and power down pins are named 'OE' and 'PDWN' respectively.
> >>>>>>> 
> >>>>>>> But don't we need the vendor prefix in the prop names then, like
> >>>>>>> "renesas,oe-gpios" then?
> >>>>>> 
> >>>>>> Seconded, with a correction to "thine,oe-gpios".
> >>>>> 
> >>>>> mmm, okay then...
> >>>>> 
> >>>>> A grep for that semi-standard properties names in Documentation/
> >>>>> returns only usage examples and no actual definitions, so I assume
> >>>>> this is why they are semi-standard.
> >>>> 
> >>>> Here we have to be specific about a particular property, let it be
> >>>> 'oe-gpios' vs. 'enable-gpios' and let's collect some statistics:
> >>>> 
> >>>> % grep -Hr oe-gpios Documentation/devicetree/bindings/* | wc -l
> >>>> 0
> >>>> 
> >>>> $ grep -Hr enable-gpios Documentation/devicetree/bindings/* | wc -l
> >>>> 86
> >>>> 
> >>>> While 'thine,oe-gpios' would be correct, I see no reason to introduce
> >>>> a vendor specific property to define a pin with a common and well
> >>>> understood purpose.
> >>>> 
> >>>> If you go forward with the vendor specific prefix, apparently you can
> >>>> set the name to 'thine,oe-gpio' (single) or even to 'thine,oe', or does
> >>>> the datasheet names the pin as "OE GPIO" or "OE connected to a GPIO"? I
> >>>> guess no.
> >>> 
> >>> Let me clarify I don't want to push for a vendor specific name or
> >>> similar, I'm fine with using 'semi-standard' names, I'm just confused
> >>> by the 'semi-standard' definition. I guess from your examples, the
> >>> usage count makes a difference here.
> >> 
> >> yes, in gneneral you can read "semi-standard" as "widely used", thus
> >> collecting statistics is a good enough method to make a reasoning.
> >> 
> >> Hopefully the next evolutionary step of "widely used" is "described in
> >> standard".
> >> 
> >>>> Standards do not define '-gpios' suffix, but partially the description
> >>>> is found in Documentation/bindings/gpio/gpio.txt, still it is not a
> >>>> section in any standard as far as I know.
> >>>> 
> >>>>> Seems like there is some tribal knowledge involved in defining what
> >>>>> is semi-standard and what's not, or are those properties documented
> >>>>> somewhere?
> >>>> 
> >>>> The point is that there is no formal standard which describes every
> >>>> IP, every IC and every single their property, some device node names
> >>>> and property names are recommended in ePAPR and Devicetree
> >>>> Specification though.
> >>>> 
> >>>> Think of a confusion if 'rst-gpios' (have you seen any ICs with an RST
> >>>> pin?) and 'reset-gpios' are different. Same applies to 'pdwn-gpios'
> >>>> vs. 'powerdown-gpios'.
> >>> 
> >>> I see all your points and I agree with most of them. Anyway, if the
> >>> chip manual describes a pin as 'RST' I would not find it confusing to
> >>> have a 'rst-gpio' defined in bindings :)
> >>> 
> >>> Let me be a bit pesky here: what if a chip defines a reset GPIO, which
> >>> is definitely a reset, but names it, say "XYZ" ? Would you prefer to
> >>> see it defined as "reset-gpios" for consistency with other bindings,
> >>> or "xyz-gpios" for consistency with documentation?
> >> 
> >> If a pin is definitely an IC reset as you said, then my preference is to
> >> see it described under 'reset-gpios' property name, plus a comment in
> >> the IC device tree documentation document about it. I can provide two
> >> reasons to advocate my position:
> >> 
> >> 1) developers spend significantly more time reading and editing the
> >> actual
> >> 
> >>    DTSI/DTS board files rather than reading and editing documentation,
> >>    it makes sense to use common property names to save time and reduce
> >>    amount of "what does 'oe' stand for?" type of questions; I suppose
> >>    that the recommendation to avoid not "widely used" abbreviations in
> >>    device node and property names arises from the same reasoning,
> >> 
> >> 2) "widely used" and "standard" properties are excellent candidates for
> >> 
> >>    developing (or re-using) generalization wrappers, it happened so many
> >>    times in the past, and this process shall be supported in my opinion;
> >>    due to compatibility restrictions it might be problematic to change
> >>    property names, and every new exception to "widely used" properties
> >>    makes problematic to develop and maintain these kinds of wrappers, and
> >>    of course it postpones a desired "described in standard" recognition.
> >> 
> >> If my point of view is accepted, I do admit that a developer who
> >> translates a board schematics to board DTS file may experience a minor
> >> discomfort, which is mitigated if relevant pin names are found in device
> >> tree binding documentation in comments to properties, still the overall
> >> gain is noticeably higher in my personal opinion.
> > 
> > I have to disagree with this. When using a property name that doesn't
> > correspond to the hardware documentation, developers will need to refer to
> > the DT bindings documentation to confirm the property name. "Widely used"
> > property names will not save time, they will use more time. This is of
> > course marginal and I don't think it would have any noticeable impact,
> > but I don't think your argument holds.
> 
> We can have it both ways. The name should follow the documented
> name/function. For example, we have enable-gpios which is simply the
> invert of powerdown-gpios (for software's purposes). Pick the one
> closest to the documentation. We're not trying to make bindings use
> "enable" if a signal is called "powerdown".
> 
> What we don't want is gratuitous variation in the names based on the
> whims of hw designers:
> 
> resetb-gpios
> resetn-gpios
> rst-gpios
> rstn-gpios
> nRESET-gpios
> 
> ...you get the idea (and I left out vendor prefixes).

Do we have a list of standardized names that should be used preferentially ? 
If not, should we create one ?

> > I'm all for standardizing properties across DT bindings for multiple
> > components, but doing so in a semi-random fashion will in my opinion not
> > result in any gain. We can decide that power-down or output-enable GPIOS
> > should have common property names (and I'm not even sure that would be
> > useful, but we can certainly discuss it), but in that case someone should
> > make a proposal and get the names standardized. Unless we do so, no
> > matter what property name gets picked for a particular binding, it won't
> > become universally used by magic.
> 
> For "output enable", I suspect that is a common signal/function and
> should have a standardized name. Generally, the way this works is we
> get several variations and then we try to standardize things. I think
> we can all agree standardizing first is better. If you want to put it
> in a common place, please do. Maybe people will read that. Regardless,
> the only way to enforce following standard names is with review.
> 
> Debating "oe" vs. "output-enable" is bikeshedding IMO. Anyone familiar
> with h/w design should recognize OE.
> 
> The reason to try and standardize names is so we can have common
> drivers or library functions. In particular, for things like GPIOs
> that need to be configured first for devices on otherwise discoverable
> buses, this is very useful.

I'm not sure we will ever implement that for the OE or power-down GPIOs, but 
I'm also not sure we will never do it, so I suppose it makes sense, just in 
case.
Rob Herring (Arm) April 5, 2018, 9:27 p.m. UTC | #18
On Thu, Apr 5, 2018 at 1:53 PM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> Hi Rob,
>
> On Thursday, 5 April 2018 19:33:33 EEST Rob Herring wrote:
>> On Mon, Apr 2, 2018 at 8:36 AM, Laurent Pinchart wrote:
>> > On Tuesday, 27 March 2018 14:03:25 EEST Vladimir Zapolskiy wrote:
>> >> On 03/27/2018 01:10 PM, jacopo mondi wrote:
>> >>> On Tue, Mar 27, 2018 at 12:37:31PM +0300, Vladimir Zapolskiy wrote:
>> >>>> On 03/27/2018 11:57 AM, jacopo mondi wrote:
>> >>>>> On Tue, Mar 27, 2018 at 11:30:29AM +0300, Vladimir Zapolskiy wrote:
>> >>>>>> On 03/27/2018 11:27 AM, Sergei Shtylyov wrote:
>> >>>>>>> On 3/27/2018 10:33 AM, jacopo mondi wrote:
>> >>>>>>> [...]
>> >>>>>>>
>> >>>>>>>>>>>>> Document Thine THC63LVD1024 LVDS decoder device tree
>> >>>>>>>>>>>>> bindings.
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
>> >>>>>>>>>>>>> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
>> >>>>>>>>>>>>> Reviewed-by: Niklas Söderlund
>> >>>>>>>>>>>>> <niklas.soderlund+renesas@ragnatech.se>
>> >>>>>>>>>>>>> ---
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>>   .../bindings/display/bridge/thine,thc63lvd1024.txt | 66 +++
>> >>>>>>>>>>>>>   1 file changed, 66 insertions(+)
>> >>>>>>>>>>>>>   create mode 100644
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> Documentation/devicetree/bindings/display/bridge/thine,thc63l
>> >>>>>>>>>>>>> vd1024.txt
>> >>>>>>>>>>>>> diff --git
>> >>>>>>>>>>>>> a/Documentation/devicetree/bindings/display/bridge/thine,thc6
>> >>>>>>>>>>>>> 3lvd1024.txt
>> >>>>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc6
>> >>>>>>>>>>>>> 3lvd1024.txt
>> >>>>>>>>>>>>> new file mode 100644
>> >>>>>>>>>>>>> index 0000000..8225c6a
>> >>>>>>>>>>>>> --- /dev/null
>> >>>>>>>>>>>>> +++
>> >>>>>>>>>>>>> b/Documentation/devicetree/bindings/display/bridge/thine,thc6
>> >>>>>>>>>>>>> 3lvd1024.txt
>> >>>>>>>>>>>>> @@ -0,0 +1,66 @@
>> >>>>>>>>>>>>> +Thine Electronics THC63LVD1024 LVDS decoder
>> >>>>>>>>>>>>> +-------------------------------------------
>> >>>>>>>>>>>>> +
>> >>>>>>>>>>>>> +The THC63LVD1024 is a dual link LVDS receiver designed to
>> >>>>>>>>>>>>> convert LVDS streams
>> >>>>>>>>>>>>> +to parallel data outputs. The chip supports single/dual
>> >>>>>>>>>>>>> input/output modes,
>> >>>>>>>>>>>>> +handling up to two two input LVDS stream and up to two
>> >>>>>>>>>>>>> digital CMOS/TTL outputs.
>> >>>>>>>>>>>>> +
>> >>>>>>>>>>>>> +Single or dual operation modes, output data mapping and DDR
>> >>>>>>>>>>>>> output modes are
>> >>>>>>>>>>>>> +configured through input signals and the chip does not
>> >>>>>>>>>>>>> expose any control bus.
>> >>>>>>>>>>>>> +
>> >>>>>>>>>>>>> +Required properties:
>> >>>>>>>>>>>>> +- compatible: Shall be "thine,thc63lvd1024"
>> >>>>>>>>>>>>> +
>> >>>>>>>>>>>>> +Optional properties:
>> >>>>>>>>>>>>> +- vcc-supply: Power supply for TTL output and digital
>> >>>>>>>>>>>>> circuitry
>> >>>>>>>>>>>>> +- cvcc-supply: Power supply for TTL CLOCKOUT signal
>> >>>>>>>>>>>>> +- lvcc-supply: Power supply for LVDS inputs
>> >>>>>>>>>>>>> +- pvcc-supply: Power supply for PLL circuitry
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> As explained in a comment to one of the previous versions of
>> >>>>>>>>>>>> this series, I'm tempted to make vcc-supply mandatory and drop
>> >>>>>>>>>>>> the three other power supplies for now, as I believe there's
>> >>>>>>>>>>>> very little chance they will be connected to separately
>> >>>>>>>>>>>> controllable regulators (all supplies use the same voltage). In
>> >>>>>>>>>>>> the very unlikely event that this occurs in design we need to
>> >>>>>>>>>>>> support in the future, the cvcc, lvcc and pvcc supplies can be
>> >>>>>>>>>>>> added later as optional without breaking backward
>> >>>>>>>>>>>> compatibility.
>> >>>>>>>>>>>
>> >>>>>>>>>>> I'm okay with that.
>> >>>>>>>>>>>
>> >>>>>>>>>>>> Apart from that,
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> Reviewed-by: Laurent Pinchart
>> >>>>>>>>>>>> <laurent.pinchart@ideasonboard.com>
>> >>>>>>>>>>>>
>> >>>>>>>>>>>>> +- pdwn-gpios: Power down GPIO signal. Active low
>> >>>>>>>>>>>
>> >>>>>>>>>>> powerdown-gpios is the semi-standard name.
>> >>>>>>>>>>
>> >>>>>>>>>> right, I've also noticed it. If possible please avoid
>> >>>>>>>>>> shortenings in property names.
>> >>>>>>>>>
>> >>>>>>>>> It is not shortening, it just follow pin name from decoder's
>> >>>>>>>>> datasheet.
>> >>>>>>>>>
>> >>>>>>>>>>>>> +- oe-gpios: Output enable GPIO signal. Active high
>> >>>>>>>>>>>>> +
>> >>>>>>>>>>
>> >>>>>>>>>> And this one is also a not ever met property name, please
>> >>>>>>>>>> consider to rename it to 'enable-gpios', for instance display
>> >>>>>>>>>> panels define it.
>> >>>>>>>>>
>> >>>>>>>>> Again, it follows datasheet naming scheme. Has something changed
>> >>>>>>>>> in DT conventions?
>> >>>>>>>>
>> >>>>>>>> Seconded. My understanding is that the property name should
>> >>>>>>>> reflect what reported in the the chip manual. For THC63LVD1024 the
>> >>>>>>>> enable and power down pins are named 'OE' and 'PDWN' respectively.
>> >>>>>>>
>> >>>>>>> But don't we need the vendor prefix in the prop names then, like
>> >>>>>>> "renesas,oe-gpios" then?
>> >>>>>>
>> >>>>>> Seconded, with a correction to "thine,oe-gpios".
>> >>>>>
>> >>>>> mmm, okay then...
>> >>>>>
>> >>>>> A grep for that semi-standard properties names in Documentation/
>> >>>>> returns only usage examples and no actual definitions, so I assume
>> >>>>> this is why they are semi-standard.
>> >>>>
>> >>>> Here we have to be specific about a particular property, let it be
>> >>>> 'oe-gpios' vs. 'enable-gpios' and let's collect some statistics:
>> >>>>
>> >>>> % grep -Hr oe-gpios Documentation/devicetree/bindings/* | wc -l
>> >>>> 0
>> >>>>
>> >>>> $ grep -Hr enable-gpios Documentation/devicetree/bindings/* | wc -l
>> >>>> 86
>> >>>>
>> >>>> While 'thine,oe-gpios' would be correct, I see no reason to introduce
>> >>>> a vendor specific property to define a pin with a common and well
>> >>>> understood purpose.
>> >>>>
>> >>>> If you go forward with the vendor specific prefix, apparently you can
>> >>>> set the name to 'thine,oe-gpio' (single) or even to 'thine,oe', or does
>> >>>> the datasheet names the pin as "OE GPIO" or "OE connected to a GPIO"? I
>> >>>> guess no.
>> >>>
>> >>> Let me clarify I don't want to push for a vendor specific name or
>> >>> similar, I'm fine with using 'semi-standard' names, I'm just confused
>> >>> by the 'semi-standard' definition. I guess from your examples, the
>> >>> usage count makes a difference here.
>> >>
>> >> yes, in gneneral you can read "semi-standard" as "widely used", thus
>> >> collecting statistics is a good enough method to make a reasoning.
>> >>
>> >> Hopefully the next evolutionary step of "widely used" is "described in
>> >> standard".
>> >>
>> >>>> Standards do not define '-gpios' suffix, but partially the description
>> >>>> is found in Documentation/bindings/gpio/gpio.txt, still it is not a
>> >>>> section in any standard as far as I know.
>> >>>>
>> >>>>> Seems like there is some tribal knowledge involved in defining what
>> >>>>> is semi-standard and what's not, or are those properties documented
>> >>>>> somewhere?
>> >>>>
>> >>>> The point is that there is no formal standard which describes every
>> >>>> IP, every IC and every single their property, some device node names
>> >>>> and property names are recommended in ePAPR and Devicetree
>> >>>> Specification though.
>> >>>>
>> >>>> Think of a confusion if 'rst-gpios' (have you seen any ICs with an RST
>> >>>> pin?) and 'reset-gpios' are different. Same applies to 'pdwn-gpios'
>> >>>> vs. 'powerdown-gpios'.
>> >>>
>> >>> I see all your points and I agree with most of them. Anyway, if the
>> >>> chip manual describes a pin as 'RST' I would not find it confusing to
>> >>> have a 'rst-gpio' defined in bindings :)
>> >>>
>> >>> Let me be a bit pesky here: what if a chip defines a reset GPIO, which
>> >>> is definitely a reset, but names it, say "XYZ" ? Would you prefer to
>> >>> see it defined as "reset-gpios" for consistency with other bindings,
>> >>> or "xyz-gpios" for consistency with documentation?
>> >>
>> >> If a pin is definitely an IC reset as you said, then my preference is to
>> >> see it described under 'reset-gpios' property name, plus a comment in
>> >> the IC device tree documentation document about it. I can provide two
>> >> reasons to advocate my position:
>> >>
>> >> 1) developers spend significantly more time reading and editing the
>> >> actual
>> >>
>> >>    DTSI/DTS board files rather than reading and editing documentation,
>> >>    it makes sense to use common property names to save time and reduce
>> >>    amount of "what does 'oe' stand for?" type of questions; I suppose
>> >>    that the recommendation to avoid not "widely used" abbreviations in
>> >>    device node and property names arises from the same reasoning,
>> >>
>> >> 2) "widely used" and "standard" properties are excellent candidates for
>> >>
>> >>    developing (or re-using) generalization wrappers, it happened so many
>> >>    times in the past, and this process shall be supported in my opinion;
>> >>    due to compatibility restrictions it might be problematic to change
>> >>    property names, and every new exception to "widely used" properties
>> >>    makes problematic to develop and maintain these kinds of wrappers, and
>> >>    of course it postpones a desired "described in standard" recognition.
>> >>
>> >> If my point of view is accepted, I do admit that a developer who
>> >> translates a board schematics to board DTS file may experience a minor
>> >> discomfort, which is mitigated if relevant pin names are found in device
>> >> tree binding documentation in comments to properties, still the overall
>> >> gain is noticeably higher in my personal opinion.
>> >
>> > I have to disagree with this. When using a property name that doesn't
>> > correspond to the hardware documentation, developers will need to refer to
>> > the DT bindings documentation to confirm the property name. "Widely used"
>> > property names will not save time, they will use more time. This is of
>> > course marginal and I don't think it would have any noticeable impact,
>> > but I don't think your argument holds.
>>
>> We can have it both ways. The name should follow the documented
>> name/function. For example, we have enable-gpios which is simply the
>> invert of powerdown-gpios (for software's purposes). Pick the one
>> closest to the documentation. We're not trying to make bindings use
>> "enable" if a signal is called "powerdown".
>>
>> What we don't want is gratuitous variation in the names based on the
>> whims of hw designers:
>>
>> resetb-gpios
>> resetn-gpios
>> rst-gpios
>> rstn-gpios
>> nRESET-gpios
>>
>> ...you get the idea (and I left out vendor prefixes).
>
> Do we have a list of standardized names that should be used preferentially ?

No. I think the list is pretty much in this thread. I didn't find any
others grepping the tree.

There was an effort with USB devices to do "generic" power/reset
control, but I think that never landed. It was using standard property
names like reset-gpios within the device nodes rather than the
approach used by mmc pwrseq binding (which I'm not a fan of).

> If not, should we create one ?

Sure. You can put it in the root. Then maybe people will find it.

>> > I'm all for standardizing properties across DT bindings for multiple
>> > components, but doing so in a semi-random fashion will in my opinion not
>> > result in any gain. We can decide that power-down or output-enable GPIOS
>> > should have common property names (and I'm not even sure that would be
>> > useful, but we can certainly discuss it), but in that case someone should
>> > make a proposal and get the names standardized. Unless we do so, no
>> > matter what property name gets picked for a particular binding, it won't
>> > become universally used by magic.
>>
>> For "output enable", I suspect that is a common signal/function and
>> should have a standardized name. Generally, the way this works is we
>> get several variations and then we try to standardize things. I think
>> we can all agree standardizing first is better. If you want to put it
>> in a common place, please do. Maybe people will read that. Regardless,
>> the only way to enforce following standard names is with review.
>>
>> Debating "oe" vs. "output-enable" is bikeshedding IMO. Anyone familiar
>> with h/w design should recognize OE.
>>
>> The reason to try and standardize names is so we can have common
>> drivers or library functions. In particular, for things like GPIOs
>> that need to be configured first for devices on otherwise discoverable
>> buses, this is very useful.
>
> I'm not sure we will ever implement that for the OE or power-down GPIOs, but
> I'm also not sure we will never do it, so I suppose it makes sense, just in
> case.

It's no different than "power-supply" in the simple panel binding
which we support in the common driver.

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

Patch

diff --git a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
new file mode 100644
index 0000000..8225c6a
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.txt
@@ -0,0 +1,66 @@ 
+Thine Electronics THC63LVD1024 LVDS decoder
+-------------------------------------------
+
+The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS streams
+to parallel data outputs. The chip supports single/dual input/output modes,
+handling up to two two input LVDS stream and up to two digital CMOS/TTL outputs.
+
+Single or dual operation modes, output data mapping and DDR output modes are
+configured through input signals and the chip does not expose any control bus.
+
+Required properties:
+- compatible: Shall be "thine,thc63lvd1024"
+
+Optional properties:
+- vcc-supply: Power supply for TTL output and digital circuitry
+- cvcc-supply: Power supply for TTL CLOCKOUT signal
+- lvcc-supply: Power supply for LVDS inputs
+- pvcc-supply: Power supply for PLL circuitry
+- pdwn-gpios: Power down GPIO signal. Active low
+- oe-gpios: Output enable GPIO signal. Active high
+
+The THC63LVD1024 video port connections are modeled according
+to OF graph bindings specified by Documentation/devicetree/bindings/graph.txt
+
+Required video port nodes:
+- Port@0: First LVDS input port
+- Port@2: First digital CMOS/TTL parallel output
+
+Optional video port nodes:
+- Port@1: Second LVDS input port
+- Port@3: Second digital CMOS/TTL parallel output
+
+Example:
+--------
+
+	thc63lvd1024: lvds-decoder {
+		compatible = "thine,thc63lvd1024";
+
+		vcc-supply = <&reg_lvds_vcc>;
+		lvcc-supply = <&reg_lvds_lvcc>;
+
+		pdwn-gpio = <&gpio4 15 GPIO_ACTIVE_LOW>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				lvds_dec_in_0: endpoint {
+					remote-endpoint = <&lvds_out>;
+				};
+			};
+
+			port@2{
+				reg = <2>;
+
+				lvds_dec_out_2: endpoint {
+					remote-endpoint = <&adv7511_in>;
+				};
+
+			};
+
+		};
+	};