diff mbox

[v3,3/6] dt-bindings: add binding for Sitronix ST7586 display panels

Message ID 1501799630-1650-4-git-send-email-david@lechnology.com (mailing list archive)
State New, archived
Headers show

Commit Message

David Lechner Aug. 3, 2017, 10:33 p.m. UTC
This adds a new binding for Sitronix ST7586 display panels.

Using lego as the vendor prefix in the compatible string because the display
panel I am working with is an integral part of the LEGO MINDSTORMS EV3.

Signed-off-by: David Lechner <david@lechnology.com>
---
 .../bindings/display/sitronix,st7586.txt           | 26 ++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/sitronix,st7586.txt

Comments

Noralf Trønnes Aug. 4, 2017, 9:48 a.m. UTC | #1
Den 04.08.2017 00.33, skrev David Lechner:
> This adds a new binding for Sitronix ST7586 display panels.
>
> Using lego as the vendor prefix in the compatible string because the display
> panel I am working with is an integral part of the LEGO MINDSTORMS EV3.

Is this display available outside of this Lego part?
If not you can remove the properties you don't need for this particular
display setup. Another st7586 display with a different panel would need
a different initialization sequence and compatible string, so we can
add properties when/if that happens.

Noralf.

> Signed-off-by: David Lechner <david@lechnology.com>
> ---
>   .../bindings/display/sitronix,st7586.txt           | 26 ++++++++++++++++++++++
>   1 file changed, 26 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/display/sitronix,st7586.txt
>
> diff --git a/Documentation/devicetree/bindings/display/sitronix,st7586.txt b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
> new file mode 100644
> index 0000000..dfb0b7b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
> @@ -0,0 +1,26 @@
> +Sitronix ST7586 display panel
> +
> +Required properties:
> +- compatible:	"lego,ev3-lcd".
> +
> +The node for this driver must be a child node of a SPI controller, hence
> +all mandatory properties described in ../spi/spi-bus.txt must be specified.
> +
> +Optional properties:
> +- dc-gpios:	D/C pin. The presence/absence of this GPIO determines
> +		the panel interface operation mode (IF[3:1] pins):
> +		- present: IF=011 4-wire 8-bit data serial interface
> +		- absent:  IF=010 3-wire 9-bit data serial interface
> +- reset-gpios:	Reset pin
> +- power-supply:	A regulator node for the supply voltage.
> +- backlight:	phandle of the backlight device attached to the panel
> +- rotation:	panel rotation in degrees counter clockwise (0,90,180,270)
> +
> +Example:
> +	display@0{
> +		compatible = "lego,ev3-lcd";
> +		reg = <0>;
> +		spi-max-frequency = <10000000>;
> +		dc-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
> +	};
Laurent Pinchart Aug. 4, 2017, 2:54 p.m. UTC | #2
Hi David,

Thank you for the patch.

On Thursday 03 Aug 2017 17:33:47 David Lechner wrote:
> This adds a new binding for Sitronix ST7586 display panels.
> 
> Using lego as the vendor prefix in the compatible string because the display
> panel I am working with is an integral part of the LEGO MINDSTORMS EV3.
> 
> Signed-off-by: David Lechner <david@lechnology.com>
> ---
>  .../bindings/display/sitronix,st7586.txt           | 26 +++++++++++++++++++
>  1 file changed, 26 insertions(+)
>  create mode 100644
> Documentation/devicetree/bindings/display/sitronix,st7586.txt
> 
> diff --git a/Documentation/devicetree/bindings/display/sitronix,st7586.txt
> b/Documentation/devicetree/bindings/display/sitronix,st7586.txt new file
> mode 100644
> index 0000000..dfb0b7b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
> @@ -0,0 +1,26 @@
> +Sitronix ST7586 display panel
> +
> +Required properties:
> +- compatible:	"lego,ev3-lcd".
> +
> +The node for this driver must be a child node of a SPI controller, hence
> +all mandatory properties described in ../spi/spi-bus.txt must be specified.
> +
> +Optional properties:
> +- dc-gpios:	D/C pin. The presence/absence of this GPIO determines
> +		the panel interface operation mode (IF[3:1] pins):
> +		- present: IF=011 4-wire 8-bit data serial interface
> +		- absent:  IF=010 3-wire 9-bit data serial interface

How does this work ? Do you have a single GPIO on your system connected to 
IF[1], with IF[3:2] hardwired to 01 ?

> +- reset-gpios:	Reset pin
> +- power-supply:	A regulator node for the supply voltage.
> +- backlight:	phandle of the backlight device attached to the panel
> +- rotation:	panel rotation in degrees counter clockwise (0,90,180,270)

Please use the OF graph DT bindings (a.k.a. ports) to describe the connection 
between the panel and its source.

> +Example:
> +	display@0{
> +		compatible = "lego,ev3-lcd";
> +		reg = <0>;
> +		spi-max-frequency = <10000000>;
> +		dc-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
> +	};
David Lechner Aug. 4, 2017, 3:51 p.m. UTC | #3
On 08/04/2017 09:54 AM, Laurent Pinchart wrote:
> Hi David,
> 
> Thank you for the patch.
> 
> On Thursday 03 Aug 2017 17:33:47 David Lechner wrote:
>> This adds a new binding for Sitronix ST7586 display panels.
>>
>> Using lego as the vendor prefix in the compatible string because the display
>> panel I am working with is an integral part of the LEGO MINDSTORMS EV3.
>>
>> Signed-off-by: David Lechner <david@lechnology.com>
>> ---
>>   .../bindings/display/sitronix,st7586.txt           | 26 +++++++++++++++++++
>>   1 file changed, 26 insertions(+)
>>   create mode 100644
>> Documentation/devicetree/bindings/display/sitronix,st7586.txt
>>
>> diff --git a/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>> b/Documentation/devicetree/bindings/display/sitronix,st7586.txt new file
>> mode 100644
>> index 0000000..dfb0b7b
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>> @@ -0,0 +1,26 @@
>> +Sitronix ST7586 display panel
>> +
>> +Required properties:
>> +- compatible:	"lego,ev3-lcd".
>> +
>> +The node for this driver must be a child node of a SPI controller, hence
>> +all mandatory properties described in ../spi/spi-bus.txt must be specified.
>> +
>> +Optional properties:
>> +- dc-gpios:	D/C pin. The presence/absence of this GPIO determines
>> +		the panel interface operation mode (IF[3:1] pins):
>> +		- present: IF=011 4-wire 8-bit data serial interface
>> +		- absent:  IF=010 3-wire 9-bit data serial interface
> 
> How does this work ? Do you have a single GPIO on your system connected to
> IF[1], with IF[3:2] hardwired to 01 ?

LEGO has not made the internals of the display publicly available, so I 
cannot say for sure. But I assume that IF[3:1] is hardwired to 011. This 
causes pin D1 to assigned to the signal A0, which is what we are calling 
the dc gpio here.

If IF[3:1] were hardwired to 010, then pin D1 would be not not used and 
there would be no A0 signal.

So, basically, we can infer the state of IF[3:1] by the fact that we 
have a dc pin or not.

> 
>> +- reset-gpios:	Reset pin
>> +- power-supply:	A regulator node for the supply voltage.
>> +- backlight:	phandle of the backlight device attached to the panel
>> +- rotation:	panel rotation in degrees counter clockwise (0,90,180,270)
> 
> Please use the OF graph DT bindings (a.k.a. ports) to describe the connection
> between the panel and its source.

I am afraid that I do not understand this request. What would the source 
of the panel be? There is nothing like a SoC LCD controller that is 
driving this panel.

> 
>> +Example:
>> +	display@0{
>> +		compatible = "lego,ev3-lcd";
>> +		reg = <0>;
>> +		spi-max-frequency = <10000000>;
>> +		dc-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
>> +		reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
>> +	};
>
David Lechner Aug. 4, 2017, 4:51 p.m. UTC | #4
On 08/04/2017 04:48 AM, Noralf Trønnes wrote:
> 
> Den 04.08.2017 00.33, skrev David Lechner:
>> This adds a new binding for Sitronix ST7586 display panels.
>>
>> Using lego as the vendor prefix in the compatible string because the 
>> display
>> panel I am working with is an integral part of the LEGO MINDSTORMS EV3.
> 
> Is this display available outside of this Lego part?
No, it is not.

> If not you can remove the properties you don't need for this particular
> display setup. Another st7586 display with a different panel would need
> a different initialization sequence and compatible string, so we can
> add properties when/if that happens.

OK. so I will drop power-supply and backlight.

Should I remove these from the driver as well? There are some panels out 
there that could use them.[1]

[1]: 
http://www.buydisplay.com/download/manual/ERC240160-1_Series_Datasheet.pdf

> 
> Noralf.
> 
>> Signed-off-by: David Lechner <david@lechnology.com>
>> ---
>>   .../bindings/display/sitronix,st7586.txt           | 26 
>> ++++++++++++++++++++++
>>   1 file changed, 26 insertions(+)
>>   create mode 100644 
>> Documentation/devicetree/bindings/display/sitronix,st7586.txt
>>
>> diff --git 
>> a/Documentation/devicetree/bindings/display/sitronix,st7586.txt 
>> b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>> new file mode 100644
>> index 0000000..dfb0b7b
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>> @@ -0,0 +1,26 @@
>> +Sitronix ST7586 display panel
>> +
>> +Required properties:
>> +- compatible:    "lego,ev3-lcd".
>> +
>> +The node for this driver must be a child node of a SPI controller, hence
>> +all mandatory properties described in ../spi/spi-bus.txt must be 
>> specified.
>> +
>> +Optional properties:
>> +- dc-gpios:    D/C pin. The presence/absence of this GPIO determines
>> +        the panel interface operation mode (IF[3:1] pins):
>> +        - present: IF=011 4-wire 8-bit data serial interface
>> +        - absent:  IF=010 3-wire 9-bit data serial interface
>> +- reset-gpios:    Reset pin
>> +- power-supply:    A regulator node for the supply voltage.
>> +- backlight:    phandle of the backlight device attached to the panel
>> +- rotation:    panel rotation in degrees counter clockwise 
>> (0,90,180,270)
>> +
>> +Example:
>> +    display@0{
>> +        compatible = "lego,ev3-lcd";
>> +        reg = <0>;
>> +        spi-max-frequency = <10000000>;
>> +        dc-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
>> +        reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
>> +    };
>
Noralf Trønnes Aug. 4, 2017, 5:36 p.m. UTC | #5
Hi Laurent,


Den 04.08.2017 16.54, skrev Laurent Pinchart:
> Hi David,
>
> Thank you for the patch.
>
> On Thursday 03 Aug 2017 17:33:47 David Lechner wrote:
>> This adds a new binding for Sitronix ST7586 display panels.
>>
>> Using lego as the vendor prefix in the compatible string because the display
>> panel I am working with is an integral part of the LEGO MINDSTORMS EV3.
>>
>> Signed-off-by: David Lechner <david@lechnology.com>
>> ---
>>   .../bindings/display/sitronix,st7586.txt           | 26 +++++++++++++++++++
>>   1 file changed, 26 insertions(+)
>>   create mode 100644
>> Documentation/devicetree/bindings/display/sitronix,st7586.txt
>>
>> diff --git a/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>> b/Documentation/devicetree/bindings/display/sitronix,st7586.txt new file
>> mode 100644
>> index 0000000..dfb0b7b
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>> @@ -0,0 +1,26 @@
>> +Sitronix ST7586 display panel
>> +
>> +Required properties:
>> +- compatible:	"lego,ev3-lcd".
>> +
>> +The node for this driver must be a child node of a SPI controller, hence
>> +all mandatory properties described in ../spi/spi-bus.txt must be specified.
>> +
>> +Optional properties:
>> +- dc-gpios:	D/C pin. The presence/absence of this GPIO determines
>> +		the panel interface operation mode (IF[3:1] pins):
>> +		- present: IF=011 4-wire 8-bit data serial interface
>> +		- absent:  IF=010 3-wire 9-bit data serial interface
> How does this work ? Do you have a single GPIO on your system connected to
> IF[1], with IF[3:2] hardwired to 01 ?
>
>> +- reset-gpios:	Reset pin
>> +- power-supply:	A regulator node for the supply voltage.
>> +- backlight:	phandle of the backlight device attached to the panel
>> +- rotation:	panel rotation in degrees counter clockwise (0,90,180,270)
> Please use the OF graph DT bindings (a.k.a. ports) to describe the connection
> between the panel and its source.

This display has a controller with onboard memory that is scanned out
to the panel. The controller is connected, in this instance, through SPI.
Both initialization and pixel data is transferred over SPI. It resembles
the MIPI DCS/DBI standard except that it misses some of the commands and
has non standard formats: 2-bit greyscale and monochrome. MIPI DBI only
supports rgb formats (3, 8, 12, 16 and 18-bits). So it isn't a drm panel
in the sense as one connected through MIPI DSI or MIPI DPI.

MIPI DBI has 3 interface types:
- 8/9/16/18 bit parallel bus + Data/Command signal (8080 or motorola bus)
- 8/16 bit SPI + D/C signal
- 9 bit SPI (D/C as first bit)

Noralf.

>> +Example:
>> +	display@0{
>> +		compatible = "lego,ev3-lcd";
>> +		reg = <0>;
>> +		spi-max-frequency = <10000000>;
>> +		dc-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
>> +		reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
>> +	};
Noralf Trønnes Aug. 4, 2017, 6:04 p.m. UTC | #6
Den 04.08.2017 18.51, skrev David Lechner:
> On 08/04/2017 04:48 AM, Noralf Trønnes wrote:
>>
>> Den 04.08.2017 00.33, skrev David Lechner:
>>> This adds a new binding for Sitronix ST7586 display panels.
>>>
>>> Using lego as the vendor prefix in the compatible string because the 
>>> display
>>> panel I am working with is an integral part of the LEGO MINDSTORMS EV3.
>>
>> Is this display available outside of this Lego part?
> No, it is not.
>
>> If not you can remove the properties you don't need for this particular
>> display setup. Another st7586 display with a different panel would need
>> a different initialization sequence and compatible string, so we can
>> add properties when/if that happens.
>
> OK. so I will drop power-supply and backlight.
>

And the dc/reset gpios should be required properties since your display
won't work without them (or rather they're hardwired that way).

> Should I remove these from the driver as well? There are some panels 
> out there that could use them.[1]
>
> [1]: 
> http://www.buydisplay.com/download/manual/ERC240160-1_Series_Datasheet.pdf
>

Yes, because that display won't work with the driver as-is, so it's
really dead code. If someone wants to add support for that display,
they'll add the necessary code. When maintaining code for 10-20 years,
it's important to not add code that 'might' be used in the future.
Let the future take care of itself and keep the codebase slim :-)

Noralf.

>>
>> Noralf.
>>
>>> Signed-off-by: David Lechner <david@lechnology.com>
>>> ---
>>>   .../bindings/display/sitronix,st7586.txt           | 26 
>>> ++++++++++++++++++++++
>>>   1 file changed, 26 insertions(+)
>>>   create mode 100644 
>>> Documentation/devicetree/bindings/display/sitronix,st7586.txt
>>>
>>> diff --git 
>>> a/Documentation/devicetree/bindings/display/sitronix,st7586.txt 
>>> b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>>> new file mode 100644
>>> index 0000000..dfb0b7b
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>>> @@ -0,0 +1,26 @@
>>> +Sitronix ST7586 display panel
>>> +
>>> +Required properties:
>>> +- compatible:    "lego,ev3-lcd".
>>> +
>>> +The node for this driver must be a child node of a SPI controller, 
>>> hence
>>> +all mandatory properties described in ../spi/spi-bus.txt must be 
>>> specified.
>>> +
>>> +Optional properties:
>>> +- dc-gpios:    D/C pin. The presence/absence of this GPIO determines
>>> +        the panel interface operation mode (IF[3:1] pins):
>>> +        - present: IF=011 4-wire 8-bit data serial interface
>>> +        - absent:  IF=010 3-wire 9-bit data serial interface
>>> +- reset-gpios:    Reset pin
>>> +- power-supply:    A regulator node for the supply voltage.
>>> +- backlight:    phandle of the backlight device attached to the panel
>>> +- rotation:    panel rotation in degrees counter clockwise 
>>> (0,90,180,270)
>>> +
>>> +Example:
>>> +    display@0{
>>> +        compatible = "lego,ev3-lcd";
>>> +        reg = <0>;
>>> +        spi-max-frequency = <10000000>;
>>> +        dc-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
>>> +        reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
>>> +    };
>>
>
Laurent Pinchart Aug. 4, 2017, 7:39 p.m. UTC | #7
Hi David,

On Friday 04 Aug 2017 10:51:37 David Lechner wrote:
> On 08/04/2017 09:54 AM, Laurent Pinchart wrote:
> > On Thursday 03 Aug 2017 17:33:47 David Lechner wrote:
> >> This adds a new binding for Sitronix ST7586 display panels.
> >> 
> >> Using lego as the vendor prefix in the compatible string because the
> >> display panel I am working with is an integral part of the LEGO
> >> MINDSTORMS EV3.
> >> 
> >> Signed-off-by: David Lechner <david@lechnology.com>
> >> ---
> >> 
> >>   .../bindings/display/sitronix,st7586.txt           | 26
> >>   +++++++++++++++++++
> >>   1 file changed, 26 insertions(+)
> >>   create mode 100644
> >> 
> >> Documentation/devicetree/bindings/display/sitronix,st7586.txt
> >> 
> >> diff --git
> >> a/Documentation/devicetree/bindings/display/sitronix,st7586.txt
> >> b/Documentation/devicetree/bindings/display/sitronix,st7586.txt new file
> >> mode 100644
> >> index 0000000..dfb0b7b
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
> >> @@ -0,0 +1,26 @@
> >> +Sitronix ST7586 display panel
> >> +
> >> +Required properties:
> >> +- compatible:	"lego,ev3-lcd".
> >> +
> >> +The node for this driver must be a child node of a SPI controller, hence
> >> +all mandatory properties described in ../spi/spi-bus.txt must be
> >> specified. +
> >> +Optional properties:
> >> +- dc-gpios:	D/C pin. The presence/absence of this GPIO determines
> >> +		the panel interface operation mode (IF[3:1] pins):
> >> +		- present: IF=011 4-wire 8-bit data serial interface
> >> +		- absent:  IF=010 3-wire 9-bit data serial interface
> > 
> > How does this work ? Do you have a single GPIO on your system connected to
> > IF[1], with IF[3:2] hardwired to 01 ?
> 
> LEGO has not made the internals of the display publicly available, so I
> cannot say for sure. But I assume that IF[3:1] is hardwired to 011. This
> causes pin D1 to assigned to the signal A0, which is what we are calling
> the dc gpio here.
> 
> If IF[3:1] were hardwired to 010, then pin D1 would be not not used and
> there would be no A0 signal.
> 
> So, basically, we can infer the state of IF[3:1] by the fact that we
> have a dc pin or not.

OK, now I understand what you mean. Maybe you should phrase it a bit 
differently to make it clearer ? How about

dc-gpios: Specified or the GPIO connected to the panel's D/C pin (also called 
A0). The property is required when the panel operates in 4-wire mode (IF[3:1] 
= 011) and prohibited when the panel operates in 3-wire mode (IF[3:1] = 010).

By the way, if the signal is named A0, why don't you call the property a0-
gpios ?

> >> +- reset-gpios:	Reset pin
> >> +- power-supply:	A regulator node for the supply voltage.
> >> +- backlight:	phandle of the backlight device attached to the panel
> >> +- rotation:	panel rotation in degrees counter clockwise 
(0,90,180,270)
> > 
> > Please use the OF graph DT bindings (a.k.a. ports) to describe the
> > connection between the panel and its source.
> 
> I am afraid that I do not understand this request. What would the source
> of the panel be? There is nothing like a SoC LCD controller that is
> driving this panel.

My bad, I should have read the panel datasheet before replying :-S Please 
ignore this comment.

> >> +Example:
> >> +	display@0{
> >> +		compatible = "lego,ev3-lcd";
> >> +		reg = <0>;
> >> +		spi-max-frequency = <10000000>;
> >> +		dc-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
> >> +		reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
> >> +	};
David Lechner Aug. 5, 2017, 4:13 p.m. UTC | #8
On 08/04/2017 02:39 PM, Laurent Pinchart wrote:
> Hi David,
> 
> On Friday 04 Aug 2017 10:51:37 David Lechner wrote:
>> On 08/04/2017 09:54 AM, Laurent Pinchart wrote:
>>> On Thursday 03 Aug 2017 17:33:47 David Lechner wrote:
>>>> This adds a new binding for Sitronix ST7586 display panels.
>>>>
>>>> Using lego as the vendor prefix in the compatible string because the
>>>> display panel I am working with is an integral part of the LEGO
>>>> MINDSTORMS EV3.
>>>>
>>>> Signed-off-by: David Lechner <david@lechnology.com>
>>>> ---
>>>>
>>>>    .../bindings/display/sitronix,st7586.txt           | 26
>>>>    +++++++++++++++++++
>>>>    1 file changed, 26 insertions(+)
>>>>    create mode 100644
>>>>
>>>> Documentation/devicetree/bindings/display/sitronix,st7586.txt
>>>>
>>>> diff --git
>>>> a/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>>>> b/Documentation/devicetree/bindings/display/sitronix,st7586.txt new file
>>>> mode 100644
>>>> index 0000000..dfb0b7b
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
>>>> @@ -0,0 +1,26 @@
>>>> +Sitronix ST7586 display panel
>>>> +
>>>> +Required properties:
>>>> +- compatible:	"lego,ev3-lcd".
>>>> +
>>>> +The node for this driver must be a child node of a SPI controller, hence
>>>> +all mandatory properties described in ../spi/spi-bus.txt must be
>>>> specified. +
>>>> +Optional properties:
>>>> +- dc-gpios:	D/C pin. The presence/absence of this GPIO determines
>>>> +		the panel interface operation mode (IF[3:1] pins):
>>>> +		- present: IF=011 4-wire 8-bit data serial interface
>>>> +		- absent:  IF=010 3-wire 9-bit data serial interface
>>>
>>> How does this work ? Do you have a single GPIO on your system connected to
>>> IF[1], with IF[3:2] hardwired to 01 ?
>>
>> LEGO has not made the internals of the display publicly available, so I
>> cannot say for sure. But I assume that IF[3:1] is hardwired to 011. This
>> causes pin D1 to assigned to the signal A0, which is what we are calling
>> the dc gpio here.
>>
>> If IF[3:1] were hardwired to 010, then pin D1 would be not not used and
>> there would be no A0 signal.
>>
>> So, basically, we can infer the state of IF[3:1] by the fact that we
>> have a dc pin or not.
> 
> OK, now I understand what you mean. Maybe you should phrase it a bit
> differently to make it clearer ? How about
> 
> dc-gpios: Specified or the GPIO connected to the panel's D/C pin (also called
> A0). The property is required when the panel operates in 4-wire mode (IF[3:1]
> = 011) and prohibited when the panel operates in 3-wire mode (IF[3:1] = 010).

Yes, this is more clear. Thank you for the suggestion.

> 
> By the way, if the signal is named A0, why don't you call the property a0-
> gpios ?

I consider "dc-gpios" to be a generic name since it is used by many 
different panels. But I would be OK with calling it "a0-gpios" as well. 
It will just require more explanation that this is the A0 *signal* and 
not the A0 *pin*. The actual pin used is labeled *D1* on the controller.

On the other hand, it is labeled as A0 on LEGO's schematic, so perhaps 
a0 is better.

> 
>>>> +- reset-gpios:	Reset pin
>>>> +- power-supply:	A regulator node for the supply voltage.
>>>> +- backlight:	phandle of the backlight device attached to the panel
>>>> +- rotation:	panel rotation in degrees counter clockwise
> (0,90,180,270)
>>>
>>> Please use the OF graph DT bindings (a.k.a. ports) to describe the
>>> connection between the panel and its source.
>>
>> I am afraid that I do not understand this request. What would the source
>> of the panel be? There is nothing like a SoC LCD controller that is
>> driving this panel.
> 
> My bad, I should have read the panel datasheet before replying :-S Please
> ignore this comment.
> 
>>>> +Example:
>>>> +	display@0{
>>>> +		compatible = "lego,ev3-lcd";
>>>> +		reg = <0>;
>>>> +		spi-max-frequency = <10000000>;
>>>> +		dc-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
>>>> +		reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
>>>> +	};
>
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/display/sitronix,st7586.txt b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
new file mode 100644
index 0000000..dfb0b7b
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/sitronix,st7586.txt
@@ -0,0 +1,26 @@ 
+Sitronix ST7586 display panel
+
+Required properties:
+- compatible:	"lego,ev3-lcd".
+
+The node for this driver must be a child node of a SPI controller, hence
+all mandatory properties described in ../spi/spi-bus.txt must be specified.
+
+Optional properties:
+- dc-gpios:	D/C pin. The presence/absence of this GPIO determines
+		the panel interface operation mode (IF[3:1] pins):
+		- present: IF=011 4-wire 8-bit data serial interface
+		- absent:  IF=010 3-wire 9-bit data serial interface
+- reset-gpios:	Reset pin
+- power-supply:	A regulator node for the supply voltage.
+- backlight:	phandle of the backlight device attached to the panel
+- rotation:	panel rotation in degrees counter clockwise (0,90,180,270)
+
+Example:
+	display@0{
+		compatible = "lego,ev3-lcd";
+		reg = <0>;
+		spi-max-frequency = <10000000>;
+		dc-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
+	};