xref: /freebsd/sys/contrib/device-tree/Bindings/display/ti/ti,am65x-dss.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
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
26*8d13bc63SEmmanuel 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
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot  reg-names:
42c66ec88fSEmmanuel Vadot    items:
43c66ec88fSEmmanuel Vadot      - const: common
44c66ec88fSEmmanuel Vadot      - const: vidl1
45c66ec88fSEmmanuel Vadot      - const: vid
46c66ec88fSEmmanuel Vadot      - const: ovr1
47c66ec88fSEmmanuel Vadot      - const: ovr2
48c66ec88fSEmmanuel Vadot      - const: vp1
49c66ec88fSEmmanuel Vadot      - const: vp2
50c66ec88fSEmmanuel Vadot
51c66ec88fSEmmanuel Vadot  clocks:
52c66ec88fSEmmanuel Vadot    items:
53c66ec88fSEmmanuel Vadot      - description: fck DSS functional clock
54c66ec88fSEmmanuel Vadot      - description: vp1 Video Port 1 pixel clock
55c66ec88fSEmmanuel Vadot      - description: vp2 Video Port 2 pixel clock
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot  clock-names:
58c66ec88fSEmmanuel Vadot    items:
59c66ec88fSEmmanuel Vadot      - const: fck
60c66ec88fSEmmanuel Vadot      - const: vp1
61c66ec88fSEmmanuel Vadot      - const: vp2
62c66ec88fSEmmanuel Vadot
635def4c47SEmmanuel Vadot  assigned-clocks:
645def4c47SEmmanuel Vadot    minItems: 1
655def4c47SEmmanuel Vadot    maxItems: 3
665def4c47SEmmanuel Vadot
675def4c47SEmmanuel Vadot  assigned-clock-parents:
685def4c47SEmmanuel Vadot    minItems: 1
695def4c47SEmmanuel Vadot    maxItems: 3
705def4c47SEmmanuel Vadot
71c66ec88fSEmmanuel Vadot  interrupts:
72c66ec88fSEmmanuel Vadot    maxItems: 1
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot  power-domains:
75c66ec88fSEmmanuel Vadot    maxItems: 1
76c66ec88fSEmmanuel Vadot    description: phandle to the associated power domain
77c66ec88fSEmmanuel Vadot
785def4c47SEmmanuel Vadot  dma-coherent:
795def4c47SEmmanuel Vadot    type: boolean
805def4c47SEmmanuel Vadot
81c66ec88fSEmmanuel Vadot  ports:
825def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
835def4c47SEmmanuel Vadot
84c66ec88fSEmmanuel Vadot    properties:
85c66ec88fSEmmanuel Vadot      port@0:
865def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
87c66ec88fSEmmanuel Vadot        description:
88aa1a8ff2SEmmanuel Vadot          For AM65x DSS, the OLDI output port node from video port 1.
89aa1a8ff2SEmmanuel Vadot          For AM625 DSS, the internal DPI output port node from video
90aa1a8ff2SEmmanuel Vadot          port 1.
91*8d13bc63SEmmanuel Vadot          For AM62A7 DSS, the port is tied off inside the SoC.
92c66ec88fSEmmanuel Vadot
93c66ec88fSEmmanuel Vadot      port@1:
945def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
95c66ec88fSEmmanuel Vadot        description:
96c66ec88fSEmmanuel Vadot          The DSS DPI output port node from video port 2
97c66ec88fSEmmanuel Vadot
98c66ec88fSEmmanuel Vadot  ti,am65x-oldi-io-ctrl:
99fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
100c66ec88fSEmmanuel Vadot    description:
101c66ec88fSEmmanuel Vadot      phandle to syscon device node mapping OLDI IO_CTRL registers.
102c66ec88fSEmmanuel Vadot      The mapped range should point to OLDI_DAT0_IO_CTRL, map it and
103c66ec88fSEmmanuel Vadot      following OLDI_DAT1_IO_CTRL, OLDI_DAT2_IO_CTRL, OLDI_DAT3_IO_CTRL,
104c66ec88fSEmmanuel Vadot      and OLDI_CLK_IO_CTRL registers. This property is needed for OLDI
105c66ec88fSEmmanuel Vadot      interface to work.
106c66ec88fSEmmanuel Vadot
107c66ec88fSEmmanuel Vadot  max-memory-bandwidth:
108c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
109c66ec88fSEmmanuel Vadot    description:
110c66ec88fSEmmanuel Vadot      Input memory (from main memory to dispc) bandwidth limit in
111c66ec88fSEmmanuel Vadot      bytes per second
112c66ec88fSEmmanuel Vadot
113*8d13bc63SEmmanuel VadotallOf:
114*8d13bc63SEmmanuel Vadot  - if:
115*8d13bc63SEmmanuel Vadot      properties:
116*8d13bc63SEmmanuel Vadot        compatible:
117*8d13bc63SEmmanuel Vadot          contains:
118*8d13bc63SEmmanuel Vadot            const: ti,am62a7-dss
119*8d13bc63SEmmanuel Vadot    then:
120*8d13bc63SEmmanuel Vadot      properties:
121*8d13bc63SEmmanuel Vadot        ports:
122*8d13bc63SEmmanuel Vadot          properties:
123*8d13bc63SEmmanuel Vadot            port@0: false
124*8d13bc63SEmmanuel Vadot
125c66ec88fSEmmanuel Vadotrequired:
126c66ec88fSEmmanuel Vadot  - compatible
127c66ec88fSEmmanuel Vadot  - reg
128c66ec88fSEmmanuel Vadot  - reg-names
129c66ec88fSEmmanuel Vadot  - clocks
130c66ec88fSEmmanuel Vadot  - clock-names
131c66ec88fSEmmanuel Vadot  - interrupts
132c66ec88fSEmmanuel Vadot  - ports
133c66ec88fSEmmanuel Vadot
134c66ec88fSEmmanuel VadotadditionalProperties: false
135c66ec88fSEmmanuel Vadot
136c66ec88fSEmmanuel Vadotexamples:
137c66ec88fSEmmanuel Vadot  - |
138c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
139c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
140c66ec88fSEmmanuel Vadot    #include <dt-bindings/soc/ti,sci_pm_domain.h>
141c66ec88fSEmmanuel Vadot
142c66ec88fSEmmanuel Vadot    dss: dss@4a00000 {
143c66ec88fSEmmanuel Vadot            compatible = "ti,am65x-dss";
144c66ec88fSEmmanuel Vadot            reg =   <0x04a00000 0x1000>, /* common */
145c66ec88fSEmmanuel Vadot                    <0x04a02000 0x1000>, /* vidl1 */
146c66ec88fSEmmanuel Vadot                    <0x04a06000 0x1000>, /* vid */
147c66ec88fSEmmanuel Vadot                    <0x04a07000 0x1000>, /* ovr1 */
148c66ec88fSEmmanuel Vadot                    <0x04a08000 0x1000>, /* ovr2 */
149c66ec88fSEmmanuel Vadot                    <0x04a0a000 0x1000>, /* vp1 */
150c66ec88fSEmmanuel Vadot                    <0x04a0b000 0x1000>; /* vp2 */
151c66ec88fSEmmanuel Vadot            reg-names = "common", "vidl1", "vid",
152c66ec88fSEmmanuel Vadot                    "ovr1", "ovr2", "vp1", "vp2";
153c66ec88fSEmmanuel Vadot            ti,am65x-oldi-io-ctrl = <&dss_oldi_io_ctrl>;
154c66ec88fSEmmanuel Vadot            power-domains = <&k3_pds 67 TI_SCI_PD_EXCLUSIVE>;
155c66ec88fSEmmanuel Vadot            clocks =        <&k3_clks 67 1>,
156c66ec88fSEmmanuel Vadot                            <&k3_clks 216 1>,
157c66ec88fSEmmanuel Vadot                            <&k3_clks 67 2>;
158c66ec88fSEmmanuel Vadot            clock-names = "fck", "vp1", "vp2";
159c66ec88fSEmmanuel Vadot            interrupts = <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>;
160c66ec88fSEmmanuel Vadot            ports {
161c66ec88fSEmmanuel Vadot                    #address-cells = <1>;
162c66ec88fSEmmanuel Vadot                    #size-cells = <0>;
163c66ec88fSEmmanuel Vadot                    port@0 {
164c66ec88fSEmmanuel Vadot                            reg = <0>;
165c66ec88fSEmmanuel Vadot                            oldi_out0: endpoint {
166c66ec88fSEmmanuel Vadot                                    remote-endpoint = <&lcd_in0>;
167c66ec88fSEmmanuel Vadot                            };
168c66ec88fSEmmanuel Vadot                    };
169c66ec88fSEmmanuel Vadot            };
170c66ec88fSEmmanuel Vadot    };
171