Commit e88bb45c authored by Kory Maincent (TI.com)'s avatar Kory Maincent (TI.com) Committed by Luca Ceresoli
Browse files

dt-bindings: display: tilcdc: Convert to DT schema



Convert the device tree binding documentation for tilcdc
from plain text to DT binding schema.

Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: default avatarKory Maincent (TI.com) <kory.maincent@bootlin.com>
Link: https://patch.msgid.link/20260123-feature_tilcdc-v5-1-5a44d2aa3f6f@bootlin.com


Signed-off-by: default avatarLuca Ceresoli <luca.ceresoli@bootlin.com>
parent 857e2d88
Loading
Loading
Loading
Loading
+100 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright 2025 Bootlin
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/tilcdc/ti,am33xx-tilcdc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI LCD Controller, found on AM335x, DA850, AM18x and OMAP-L138

maintainers:
  - Kory Maincent <kory.maincent@bootlin.com>

properties:
  compatible:
    enum:
      - ti,am33xx-tilcdc
      - ti,da850-tilcdc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  port:
    $ref: /schemas/graph.yaml#/properties/port

  ti,hwmods:
    $ref: /schemas/types.yaml#/definitions/string
    description:
      Name of the hwmod associated to the LCDC

  max-bandwidth:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      The maximum pixels per second that the memory interface / lcd
      controller combination can sustain
    # maximum: 2048*2048*60
    maximum: 251658240

  max-width:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      The maximum horizontal pixel width supported by the lcd controller.
    maximum: 2048

  max-pixelclock:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      The maximum pixel clock that can be supported by the lcd controller
      in KHz.

  blue-and-red-wiring:
    enum: [straight, crossed]
    description:
      This property deals with the LCDC revision 2 (found on AM335x)
      color errata [1].
       - "straight" indicates normal wiring that supports RGB565,
         BGR888, and XBGR8888 color formats.
       - "crossed" indicates wiring that has blue and red wires
         crossed. This setup supports BGR565, RGB888 and XRGB8888
         formats.
       - If the property is not present or its value is not recognized
         the legacy mode is assumed. This configuration supports RGB565,
         RGB888 and XRGB8888 formats. However, depending on wiring, the red
         and blue colors are swapped in either 16 or 24-bit color modes.

       [1] There is an errata about AM335x color wiring. For 16-bit color
       mode the wires work as they should (LCD_DATA[0:4] is for Blue[3:7]),
       but for 24 bit color modes the wiring of blue and red components is
       crossed and LCD_DATA[0:4] is for Red[3:7] and LCD_DATA[11:15] is
       for Blue[3-7]. For more details see section 3.1.1 in AM335x
       Silicon Errata
       https://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=sprz360

required:
  - compatible
  - interrupts
  - reg
  - port

additionalProperties: false

examples:
  - |
    display-controller@4830e000 {
        compatible = "ti,am33xx-tilcdc";
        reg = <0x4830e000 0x1000>;
        interrupt-parent = <&intc>;
        interrupts = <36>;
        ti,hwmods = "lcdc";

        blue-and-red-wiring = "crossed";

        port {
            endpoint {
                remote-endpoint = <&hdmi_0>;
            };
        };
    };
+0 −82
Original line number Diff line number Diff line
Device-Tree bindings for tilcdc DRM driver

Required properties:
 - compatible: value should be one of the following:
    - "ti,am33xx-tilcdc" for AM335x based boards
    - "ti,da850-tilcdc" for DA850/AM18x/OMAP-L138 based boards
 - interrupts: the interrupt number
 - reg: base address and size of the LCDC device

Recommended properties:
 - ti,hwmods: Name of the hwmod associated to the LCDC

Optional properties:
 - max-bandwidth: The maximum pixels per second that the memory
   interface / lcd controller combination can sustain
 - max-width: The maximum horizontal pixel width supported by
   the lcd controller.
 - max-pixelclock: The maximum pixel clock that can be supported
   by the lcd controller in KHz.
 - blue-and-red-wiring: Recognized values "straight" or "crossed".
   This property deals with the LCDC revision 2 (found on AM335x)
   color errata [1].
    - "straight" indicates normal wiring that supports RGB565,
      BGR888, and XBGR8888 color formats.
    - "crossed" indicates wiring that has blue and red wires
      crossed. This setup supports BGR565, RGB888 and XRGB8888
      formats.
    - If the property is not present or its value is not recognized
      the legacy mode is assumed. This configuration supports RGB565,
      RGB888 and XRGB8888 formats. However, depending on wiring, the red
      and blue colors are swapped in either 16 or 24-bit color modes.

Optional nodes:

 - port/ports: to describe a connection to an external encoder. The
   binding follows Documentation/devicetree/bindings/graph.txt and
   supports a single port with a single endpoint.

 - See also Documentation/devicetree/bindings/display/tilcdc/panel.txt and
   Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml for connecting
   tfp410 DVI encoder or lcd panel to lcdc

[1] There is an errata about AM335x color wiring. For 16-bit color mode
    the wires work as they should (LCD_DATA[0:4] is for Blue[3:7]),
    but for 24 bit color modes the wiring of blue and red components is
    crossed and LCD_DATA[0:4] is for Red[3:7] and LCD_DATA[11:15] is
    for Blue[3-7]. For more details see section 3.1.1 in AM335x
    Silicon Errata:
    https://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=sprz360

Example:

	fb: fb@4830e000 {
		compatible = "ti,am33xx-tilcdc", "ti,da850-tilcdc";
		reg = <0x4830e000 0x1000>;
		interrupt-parent = <&intc>;
		interrupts = <36>;
		ti,hwmods = "lcdc";

		blue-and-red-wiring = "crossed";

		port {
			lcdc_0: endpoint {
				remote-endpoint = <&hdmi_0>;
			};
		};
	};

	tda19988: tda19988 {
		compatible = "nxp,tda998x";
		reg = <0x70>;

		pinctrl-names = "default", "off";
		pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
		pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;

		port {
			hdmi_0: endpoint {
				remote-endpoint = <&lcdc_0>;
			};
		};
	};