dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Aradhya Bhatia <a-bhatia1@ti.com>
Cc: Nishanth Menon <nm@ti.com>,
	Devicetree List <devicetree@vger.kernel.org>,
	Tomi Valkeinen <tomba@kernel.org>,
	David Airlie <airlied@linux.ie>,
	Linux Kernel List <linux-kernel@vger.kernel.org>,
	DRI Development List <dri-devel@lists.freedesktop.org>,
	Krunal Bhargav <k-bhargav@ti.com>,
	Darren Etheridge <detheridge@ti.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Devarsh Thakkar <devarsht@ti.com>, Jyri Sarha <jyri.sarha@iki.fi>,
	Rahul T R <r-ravikumar@ti.com>,
	Vignesh Raghavendra <vigneshr@ti.com>
Subject: Re: [PATCH 1/8] dt-bindings: display: ti,am65x-dss: Add port properties for DSS
Date: Wed, 10 Aug 2022 11:48:10 -0600	[thread overview]
Message-ID: <20220810174810.GA200295-robh@kernel.org> (raw)
In-Reply-To: <a2e5037c-22c0-8424-4031-0bf587120990@ti.com>

On Mon, Jul 25, 2022 at 04:56:15PM +0530, Aradhya Bhatia wrote:
> 
> 
> On 21-Jul-22 04:58, Rob Herring wrote:
> > On Tue, Jul 19, 2022 at 01:38:38PM +0530, Aradhya Bhatia wrote:
> > > Add "ti,oldi-mode" property to indicate the tidss driver the OLDI output
> > > mode. The 2 OLDI TXes on am625-dss allow a 3 different types of panel
> > > connections with the board.
> > > 
> > > 1. Single Link / Single Mode on OLDI TX 0 OR 1.
> > > 2. Single Link / Duplicate Mode on OLDI TX 0 and 1.
> > > 3. Dual Link / Single Mode on OLDI TX 0 and 1.
> > > 
> > > Add "ti,rgb565-to-888" property to override 16bit output from a videoport
> > > for a bridge that only accepts 24bit RGB888 DPI input.
> > > 
> > > On some boards the HDMI bridge takes a 24bit DPI input, but only 16 data
> > > pins are actually enabled from the SoC.  This new property forces the
> > > output to be RGB565 on a specific video port if the bridge requests a
> > > 24bit RGB color space.
> > > 
> > > This assumes that the video port is connected like so:
> > > 
> > > SoC : Bridge
> > > R0 ->   R3
> > > R1 ->   R4
> > > R2 ->   R5
> > > R3 ->   R6
> > > R4 ->   R7
> > > G0 ->   G2
> > > G1 ->   G3
> > > G2 ->   G4
> > > G3 ->   G5
> > > G4 ->   G6
> > > G5 ->   G7
> > > B0 ->   B3
> > > B1 ->   B4
> > > B2 ->   B5
> > > B3 ->   B6
> > > B4 ->   B7
> > > 
> > > On the bridge side R0->R2, G0->G1, B0->B2 would be tied to ground.
> > > The bridge sees 24bits of data,  but the lsb's are always zero.
> > 
> > Unless the bridge ignores the LSBs, that's not the right way to do 16 to
> > 24 bit. The LSBs should be connected to the MSB of the color component
> > to get full color range.
> > 
> > > 
> > > Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
> > > ---
> > >   .../bindings/display/ti/ti,am65x-dss.yaml     | 25 +++++++++++++++++--
> > >   1 file changed, 23 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
> > > index 6bbce921479d..11d9b3821409 100644
> > > --- a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
> > > +++ b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
> > > @@ -80,15 +80,35 @@ properties:
> > >       properties:
> > >         port@0:
> > > -        $ref: /schemas/graph.yaml#/properties/port
> > > +        $ref: /schemas/graph.yaml#/$defs/port-base
> > > +        unevaluatedProperties: false
> > >           description:
> > >             The DSS OLDI output port node form video port 1
> > > +        properties:
> > > +          ti,oldi-mode:
> > > +            description: TI specific property to indicate the mode the OLDI TXes
> > > +              and the display panel are connected in.
> > > +              0 -> OLDI TXes OFF (driver default for am625-dss)
> > > +              1 -> Single link, Single Mode (OLDI0) (driver default for am65x-dss)
> > > +              2 -> Single link, Single Mode (OLDI1)
> > > +              3 -> Single link, Duplicate Mode
> > > +              4 -> Dual link (Only Single Mode)
> > > +            $ref: /schemas/types.yaml#/definitions/uint32
> > > +            enum: [0, 1, 2, 3, 4]
> > 
> > Wouldn't 'data-lanes' property work for this purpose.
> > 
> > Generally, we don't put properties in port nodes.
> > 
> Thank you for the suggestions Rob!
> 
> I looked into the "data-lanes" property and it seems that the property
> alone would not be able to help distinguish between the "Single link,
> Duplicate mode" (Mode 3) and "Dual link, Single mode" (Mode 4). For both
> the cases, the property will look like "data-lanes = <0 1>;" in the DT
> node.
> 
> I have an idea on what the driver could use along with the data-lanes
> property to ascertain the OLDI mode.
> 
> By means of number of remote-endpoints in DTS.
> The OLDI output port of DSS can be made to have 2 remote endpoints when
> 2 panels are connected as "Single link, Duplicate Mode" vs only 1 remote
> endpoint for "Dual Link, Single Mode". Based on the count, the driver
> can distinguish between the two when both the data-lanes are activated
> in DT node.

You can only have 1 'remote-endpoint'. However, you can have multiple 
endpoint nodes which is generally used for fanout (output) or muxed 
(input) cases. Your case is fanout as it is the same data sent to 
multiple connections.

data-lanes would be kind of redundant in that case since it would be 1 
lane per endpoint.

> 
> Let me know if you think this method would be appropriate.
> > > +
> > >         port@1:
> > > -        $ref: /schemas/graph.yaml#/properties/port
> > > +        $ref: /schemas/graph.yaml#/$defs/port-base
> > > +        unevaluatedProperties: false
> > >           description:
> > >             The DSS DPI output port node from video port 2
> > > +        properties:
> > > +          ti,rgb565-to-888:
> > > +            description:
> > > +              property to override DPI output to 16bit for 24bit bridge
> > > +            type: boolean
> > 
> > There's work underway for standard way to handle interface formats[1].
> > Please help/comment on that to make sure it works for you.
> > 
> > Rob
> > 
> > [1] https://lore.kernel.org/all/20220628181838.2031-3-max.oss.09@gmail.com/
> 
> I also followed what this patch series is implementing. This seems to be
> applicable for cases where the DPI pins are drawn and forwarded towards
> a simple panel capable of accepting the raw parallel data.
> 
> It does not cover for the bridges with lesser number of formats to
> support.

Not sure what you mean here, but raise it on that thread.

Rob

  parent reply	other threads:[~2022-08-10 17:49 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-19  8:08 sFrom b69208b75f7ae8e223c81783afb04fecd2f5faf8 Mon Sep 17 00:00:00 2001 Aradhya Bhatia
2022-07-19  8:08 ` [PATCH 1/8] dt-bindings: display: ti, am65x-dss: Add port properties for DSS Aradhya Bhatia
2022-07-20 23:28   ` [PATCH 1/8] dt-bindings: display: ti,am65x-dss: " Rob Herring
2022-07-22 16:16     ` Nishanth Menon
2022-07-28  6:28       ` Tomi Valkeinen
2022-07-25 11:26     ` Aradhya Bhatia
2022-07-25 22:14       ` Francesco Dolcini
2022-08-10 17:48       ` Rob Herring [this message]
2022-07-28 11:16   ` Tomi Valkeinen
2022-07-19  8:08 ` [PATCH 2/8] dt-bindings: display: ti, am65x-dss: Add IO CTRL property for AM625 OLDI Aradhya Bhatia
2022-07-20 23:32   ` [PATCH 2/8] dt-bindings: display: ti,am65x-dss: " Rob Herring
2022-07-25 11:34     ` Aradhya Bhatia
2022-07-19  8:08 ` [PATCH 3/8] drm/tidss: Add support for DSS port properties Aradhya Bhatia
2022-07-28 12:07   ` Tomi Valkeinen
2022-07-19  8:08 ` [PATCH 4/8] drm/tidss: Add support for Dual Link LVDS Bus Format Aradhya Bhatia
2022-07-28 11:03   ` Tomi Valkeinen
2022-07-28 11:45     ` Tomi Valkeinen
2022-08-09  5:58       ` Aradhya Bhatia
2022-08-09  6:28         ` Tomi Valkeinen
2022-08-09  9:06           ` Aradhya Bhatia
2022-08-09  9:51             ` Tomi Valkeinen
2022-08-09 13:34               ` Aradhya Bhatia
2022-07-19  8:08 ` [PATCH 5/8] drm/tidss: dt property to force 16bit VP output to a 24bit bridge Aradhya Bhatia
2022-07-19  8:08 ` [PATCH 6/8] drm/tidss: Add IO CTRL and Power support for OLDI TX in AM625 Aradhya Bhatia
2022-07-19  8:08 ` [PATCH 7/8] drm/tidss: Fix clock request value for OLDI videoports Aradhya Bhatia
2022-07-28 10:05   ` Tomi Valkeinen
2022-07-29  3:56     ` Aradhya Bhatia
2022-07-29  8:13       ` Tomi Valkeinen
2022-07-19  8:08 ` [PATCH 8/8] drm/tidss: Enable Dual and Duplicate Modes for OLDI Aradhya Bhatia
2022-07-27 13:22   ` Tomi Valkeinen
2022-07-28  6:46     ` Tomi Valkeinen
2022-07-28  8:49       ` Aradhya Bhatia
2022-07-28 11:29         ` Tomi Valkeinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220810174810.GA200295-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=a-bhatia1@ti.com \
    --cc=airlied@linux.ie \
    --cc=detheridge@ti.com \
    --cc=devarsht@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jyri.sarha@iki.fi \
    --cc=k-bhargav@ti.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=r-ravikumar@ti.com \
    --cc=tomba@kernel.org \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).