xref: /freebsd/sys/contrib/device-tree/Bindings/display/ti/ti,am65x-dss.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot# Copyright 2019 Texas Instruments Incorporated
3c66ec88fSEmmanuel Vadot%YAML 1.2
4c66ec88fSEmmanuel Vadot---
5fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/display/ti/ti,am65x-dss.yaml#
6fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadottitle: Texas Instruments AM65x Display Subsystem
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel Vadotmaintainers:
11c66ec88fSEmmanuel Vadot  - Jyri Sarha <jsarha@ti.com>
12c66ec88fSEmmanuel Vadot  - Tomi Valkeinen <tomi.valkeinen@ti.com>
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadotdescription: |
15aa1a8ff2SEmmanuel Vadot  The AM625 and AM65x TI Keystone Display SubSystem with two output
16aa1a8ff2SEmmanuel Vadot  ports and two video planes. In AM65x DSS, the first video port
17aa1a8ff2SEmmanuel Vadot  supports 1 OLDI TX and in AM625 DSS, the first video port output is
18aa1a8ff2SEmmanuel Vadot  internally routed to 2 OLDI TXes. The second video port supports DPI
19aa1a8ff2SEmmanuel Vadot  format. The first plane is full video plane with all features and the
20aa1a8ff2SEmmanuel Vadot  second is a "lite plane" without scaling support.
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadotproperties:
23c66ec88fSEmmanuel Vadot  compatible:
24aa1a8ff2SEmmanuel Vadot    enum:
25aa1a8ff2SEmmanuel Vadot      - ti,am625-dss
268d13bc63SEmmanuel Vadot      - ti,am62a7,dss
27aa1a8ff2SEmmanuel Vadot      - ti,am65x-dss
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot  reg:
30c66ec88fSEmmanuel Vadot    description:
31c66ec88fSEmmanuel Vadot      Addresses to each DSS memory region described in the SoC's TRM.
32c66ec88fSEmmanuel Vadot    items:
33c66ec88fSEmmanuel Vadot      - description: common DSS register area
34c66ec88fSEmmanuel Vadot      - description: VIDL1 light video plane
35c66ec88fSEmmanuel Vadot      - description: VID video plane
36c66ec88fSEmmanuel Vadot      - description: OVR1 overlay manager for vp1
37c66ec88fSEmmanuel Vadot      - description: OVR2 overlay manager for vp2
38c66ec88fSEmmanuel Vadot      - description: VP1 video port 1
39c66ec88fSEmmanuel Vadot      - description: VP2 video port 2
40*01950c46SEmmanuel Vadot      - description: common1 DSS register area
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  reg-names:
43c66ec88fSEmmanuel Vadot    items:
44c66ec88fSEmmanuel Vadot      - const: common
45c66ec88fSEmmanuel Vadot      - const: vidl1
46c66ec88fSEmmanuel Vadot      - const: vid
47c66ec88fSEmmanuel Vadot      - const: ovr1
48c66ec88fSEmmanuel Vadot      - const: ovr2
49c66ec88fSEmmanuel Vadot      - const: vp1
50c66ec88fSEmmanuel Vadot      - const: vp2
51*01950c46SEmmanuel Vadot      - const: common1
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot  clocks:
54c66ec88fSEmmanuel Vadot    items:
55c66ec88fSEmmanuel Vadot      - description: fck DSS functional clock
56c66ec88fSEmmanuel Vadot      - description: vp1 Video Port 1 pixel clock
57c66ec88fSEmmanuel Vadot      - description: vp2 Video Port 2 pixel clock
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot  clock-names:
60c66ec88fSEmmanuel Vadot    items:
61c66ec88fSEmmanuel Vadot      - const: fck
62c66ec88fSEmmanuel Vadot      - const: vp1
63c66ec88fSEmmanuel Vadot      - const: vp2
64c66ec88fSEmmanuel Vadot
655def4c47SEmmanuel Vadot  assigned-clocks:
665def4c47SEmmanuel Vadot    minItems: 1
675def4c47SEmmanuel Vadot    maxItems: 3
685def4c47SEmmanuel Vadot
695def4c47SEmmanuel Vadot  assigned-clock-parents:
705def4c47SEmmanuel Vadot    minItems: 1
715def4c47SEmmanuel Vadot    maxItems: 3
725def4c47SEmmanuel Vadot
73c66ec88fSEmmanuel Vadot  interrupts:
74c66ec88fSEmmanuel Vadot    maxItems: 1
75c66ec88fSEmmanuel Vadot
76c66ec88fSEmmanuel Vadot  power-domains:
77c66ec88fSEmmanuel Vadot    maxItems: 1
78c66ec88fSEmmanuel Vadot    description: phandle to the associated power domain
79c66ec88fSEmmanuel Vadot
805def4c47SEmmanuel Vadot  dma-coherent:
815def4c47SEmmanuel Vadot    type: boolean
825def4c47SEmmanuel Vadot
83c66ec88fSEmmanuel Vadot  ports:
845def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
855def4c47SEmmanuel Vadot
86c66ec88fSEmmanuel Vadot    properties:
87c66ec88fSEmmanuel Vadot      port@0:
885def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
89c66ec88fSEmmanuel Vadot        description:
90aa1a8ff2SEmmanuel Vadot          For AM65x DSS, the OLDI output port node from video port 1.
91aa1a8ff2SEmmanuel Vadot          For AM625 DSS, the internal DPI output port node from video
92aa1a8ff2SEmmanuel Vadot          port 1.
938d13bc63SEmmanuel Vadot          For AM62A7 DSS, the port is tied off inside the SoC.
94c66ec88fSEmmanuel Vadot
95c66ec88fSEmmanuel Vadot      port@1:
965def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
97c66ec88fSEmmanuel Vadot        description:
98c66ec88fSEmmanuel Vadot          The DSS DPI output port node from video port 2
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot  ti,am65x-oldi-io-ctrl:
101fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
102c66ec88fSEmmanuel Vadot    description:
103c66ec88fSEmmanuel Vadot      phandle to syscon device node mapping OLDI IO_CTRL registers.
104c66ec88fSEmmanuel Vadot      The mapped range should point to OLDI_DAT0_IO_CTRL, map it and
105c66ec88fSEmmanuel Vadot      following OLDI_DAT1_IO_CTRL, OLDI_DAT2_IO_CTRL, OLDI_DAT3_IO_CTRL,
106c66ec88fSEmmanuel Vadot      and OLDI_CLK_IO_CTRL registers. This property is needed for OLDI
107c66ec88fSEmmanuel Vadot      interface to work.
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadot  max-memory-bandwidth:
110c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
111c66ec88fSEmmanuel Vadot    description:
112c66ec88fSEmmanuel Vadot      Input memory (from main memory to dispc) bandwidth limit in
113c66ec88fSEmmanuel Vadot      bytes per second
114c66ec88fSEmmanuel Vadot
1158d13bc63SEmmanuel VadotallOf:
1168d13bc63SEmmanuel Vadot  - if:
1178d13bc63SEmmanuel Vadot      properties:
1188d13bc63SEmmanuel Vadot        compatible:
1198d13bc63SEmmanuel Vadot          contains:
1208d13bc63SEmmanuel Vadot            const: ti,am62a7-dss
1218d13bc63SEmmanuel Vadot    then:
1228d13bc63SEmmanuel Vadot      properties:
1238d13bc63SEmmanuel Vadot        ports:
1248d13bc63SEmmanuel Vadot          properties:
1258d13bc63SEmmanuel Vadot            port@0: false
1268d13bc63SEmmanuel Vadot
127c66ec88fSEmmanuel Vadotrequired:
128c66ec88fSEmmanuel Vadot  - compatible
129c66ec88fSEmmanuel Vadot  - reg
130c66ec88fSEmmanuel Vadot  - reg-names
131c66ec88fSEmmanuel Vadot  - clocks
132c66ec88fSEmmanuel Vadot  - clock-names
133c66ec88fSEmmanuel Vadot  - interrupts
134c66ec88fSEmmanuel Vadot  - ports
135c66ec88fSEmmanuel Vadot
136c66ec88fSEmmanuel VadotadditionalProperties: false
137c66ec88fSEmmanuel Vadot
138c66ec88fSEmmanuel Vadotexamples:
139c66ec88fSEmmanuel Vadot  - |
140c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
141c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
142c66ec88fSEmmanuel Vadot    #include <dt-bindings/soc/ti,sci_pm_domain.h>
143c66ec88fSEmmanuel Vadot
144c66ec88fSEmmanuel Vadot    dss: dss@4a00000 {
145c66ec88fSEmmanuel Vadot            compatible = "ti,am65x-dss";
146c66ec88fSEmmanuel Vadot            reg =   <0x04a00000 0x1000>, /* common */
147c66ec88fSEmmanuel Vadot                    <0x04a02000 0x1000>, /* vidl1 */
148c66ec88fSEmmanuel Vadot                    <0x04a06000 0x1000>, /* vid */
149c66ec88fSEmmanuel Vadot                    <0x04a07000 0x1000>, /* ovr1 */
150c66ec88fSEmmanuel Vadot                    <0x04a08000 0x1000>, /* ovr2 */
151c66ec88fSEmmanuel Vadot                    <0x04a0a000 0x1000>, /* vp1 */
152*01950c46SEmmanuel Vadot                    <0x04a0b000 0x1000>, /* vp2 */
153*01950c46SEmmanuel Vadot                    <0x04a01000 0x1000>; /* common1 */
154c66ec88fSEmmanuel Vadot            reg-names = "common", "vidl1", "vid",
155*01950c46SEmmanuel Vadot                    "ovr1", "ovr2", "vp1", "vp2", "common1";
156c66ec88fSEmmanuel Vadot            ti,am65x-oldi-io-ctrl = <&dss_oldi_io_ctrl>;
157c66ec88fSEmmanuel Vadot            power-domains = <&k3_pds 67 TI_SCI_PD_EXCLUSIVE>;
158c66ec88fSEmmanuel Vadot            clocks =        <&k3_clks 67 1>,
159c66ec88fSEmmanuel Vadot                            <&k3_clks 216 1>,
160c66ec88fSEmmanuel Vadot                            <&k3_clks 67 2>;
161c66ec88fSEmmanuel Vadot            clock-names = "fck", "vp1", "vp2";
162c66ec88fSEmmanuel Vadot            interrupts = <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>;
163c66ec88fSEmmanuel Vadot            ports {
164c66ec88fSEmmanuel Vadot                    #address-cells = <1>;
165c66ec88fSEmmanuel Vadot                    #size-cells = <0>;
166c66ec88fSEmmanuel Vadot                    port@0 {
167c66ec88fSEmmanuel Vadot                            reg = <0>;
168c66ec88fSEmmanuel Vadot                            oldi_out0: endpoint {
169c66ec88fSEmmanuel Vadot                                    remote-endpoint = <&lcd_in0>;
170c66ec88fSEmmanuel Vadot                            };
171c66ec88fSEmmanuel Vadot                    };
172c66ec88fSEmmanuel Vadot            };
173c66ec88fSEmmanuel Vadot    };
174