Re: [PATCH 1/8] dt-bindings: display: ti,am65x-dss: Add port properties for DSS

From: Tomi Valkeinen
Date: Thu Jul 28 2022 - 07:17:04 EST




On 19/07/2022 11:08, 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.

Signed-off-by: Aradhya Bhatia <a-bhatia1@xxxxxx>
---
.../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]
+
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

So you have a board with 16 DSS pins connected, going to a bridge/panel that only supports 24 bit input. I don't think there's anything TI specific here, sounds like a common situation.

"rgb565-to-888" sounds like there's some kind of conversion happening, but all this does is set the videoport width to 16 bits.

I'm not sure if there's a better solution but in the OMAP DSS we have "data-lines" property for an endpoint, which tells the driver the width of the bus.

Tomi