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

Laurent Pinchart
2017-08-04T19:39:26Z

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>;
> >> + };

--
Regards,

Laurent Pinchart