xref: /freebsd/sys/contrib/device-tree/Bindings/display/ti/ti,j721e-dss.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
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---
5*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/display/ti/ti,j721e-dss.yaml#
6*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadottitle: Texas Instruments J721E 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: |
15c66ec88fSEmmanuel Vadot  The J721E TI Keystone Display SubSystem with four output ports and
16c66ec88fSEmmanuel Vadot  four video planes. There is two full video planes and two "lite
17c66ec88fSEmmanuel Vadot  planes" without scaling support. The video ports can be connected to
18c66ec88fSEmmanuel Vadot  the SoC's DPI pins or to integrated display bridges on the SoC.
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadotproperties:
21c66ec88fSEmmanuel Vadot  compatible:
22c66ec88fSEmmanuel Vadot    const: ti,j721e-dss
23c66ec88fSEmmanuel Vadot
24c66ec88fSEmmanuel Vadot  reg:
25c66ec88fSEmmanuel Vadot    items:
26c66ec88fSEmmanuel Vadot      - description: common_m DSS Master common
27c66ec88fSEmmanuel Vadot      - description: common_s0 DSS Shared common 0
28c66ec88fSEmmanuel Vadot      - description: common_s1 DSS Shared common 1
29c66ec88fSEmmanuel Vadot      - description: common_s2 DSS Shared common 2
30c66ec88fSEmmanuel Vadot      - description: VIDL1 light video plane 1
31c66ec88fSEmmanuel Vadot      - description: VIDL2 light video plane 2
32c66ec88fSEmmanuel Vadot      - description: VID1 video plane 1
33c66ec88fSEmmanuel Vadot      - description: VID1 video plane 2
34c66ec88fSEmmanuel Vadot      - description: OVR1 overlay manager for vp1
35c66ec88fSEmmanuel Vadot      - description: OVR2 overlay manager for vp2
36c66ec88fSEmmanuel Vadot      - description: OVR3 overlay manager for vp3
37c66ec88fSEmmanuel Vadot      - description: OVR4 overlay manager for vp4
38c66ec88fSEmmanuel Vadot      - description: VP1 video port 1
39c66ec88fSEmmanuel Vadot      - description: VP2 video port 2
40c66ec88fSEmmanuel Vadot      - description: VP3 video port 3
41c66ec88fSEmmanuel Vadot      - description: VP4 video port 4
42c66ec88fSEmmanuel Vadot      - description: WB Write Back
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  reg-names:
45c66ec88fSEmmanuel Vadot    items:
46c66ec88fSEmmanuel Vadot      - const: common_m
47c66ec88fSEmmanuel Vadot      - const: common_s0
48c66ec88fSEmmanuel Vadot      - const: common_s1
49c66ec88fSEmmanuel Vadot      - const: common_s2
50c66ec88fSEmmanuel Vadot      - const: vidl1
51c66ec88fSEmmanuel Vadot      - const: vidl2
52c66ec88fSEmmanuel Vadot      - const: vid1
53c66ec88fSEmmanuel Vadot      - const: vid2
54c66ec88fSEmmanuel Vadot      - const: ovr1
55c66ec88fSEmmanuel Vadot      - const: ovr2
56c66ec88fSEmmanuel Vadot      - const: ovr3
57c66ec88fSEmmanuel Vadot      - const: ovr4
58c66ec88fSEmmanuel Vadot      - const: vp1
59c66ec88fSEmmanuel Vadot      - const: vp2
60c66ec88fSEmmanuel Vadot      - const: vp3
61c66ec88fSEmmanuel Vadot      - const: vp4
62c66ec88fSEmmanuel Vadot      - const: wb
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot  clocks:
65c66ec88fSEmmanuel Vadot    items:
66c66ec88fSEmmanuel Vadot      - description: fck DSS functional clock
67c66ec88fSEmmanuel Vadot      - description: vp1 Video Port 1 pixel clock
68c66ec88fSEmmanuel Vadot      - description: vp2 Video Port 2 pixel clock
69c66ec88fSEmmanuel Vadot      - description: vp3 Video Port 3 pixel clock
70c66ec88fSEmmanuel Vadot      - description: vp4 Video Port 4 pixel clock
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadot  clock-names:
73c66ec88fSEmmanuel Vadot    items:
74c66ec88fSEmmanuel Vadot      - const: fck
75c66ec88fSEmmanuel Vadot      - const: vp1
76c66ec88fSEmmanuel Vadot      - const: vp2
77c66ec88fSEmmanuel Vadot      - const: vp3
78c66ec88fSEmmanuel Vadot      - const: vp4
79c66ec88fSEmmanuel Vadot
805def4c47SEmmanuel Vadot  assigned-clocks:
815def4c47SEmmanuel Vadot    minItems: 1
825def4c47SEmmanuel Vadot    maxItems: 5
835def4c47SEmmanuel Vadot
845def4c47SEmmanuel Vadot  assigned-clock-parents:
855def4c47SEmmanuel Vadot    minItems: 1
865def4c47SEmmanuel Vadot    maxItems: 5
875def4c47SEmmanuel Vadot
88c66ec88fSEmmanuel Vadot  interrupts:
89c66ec88fSEmmanuel Vadot    items:
90c66ec88fSEmmanuel Vadot      - description: common_m DSS Master common
91c66ec88fSEmmanuel Vadot      - description: common_s0 DSS Shared common 0
92c66ec88fSEmmanuel Vadot      - description: common_s1 DSS Shared common 1
93c66ec88fSEmmanuel Vadot      - description: common_s2 DSS Shared common 2
94c66ec88fSEmmanuel Vadot
95c66ec88fSEmmanuel Vadot  interrupt-names:
96c66ec88fSEmmanuel Vadot    items:
97c66ec88fSEmmanuel Vadot      - const: common_m
98c66ec88fSEmmanuel Vadot      - const: common_s0
99c66ec88fSEmmanuel Vadot      - const: common_s1
100c66ec88fSEmmanuel Vadot      - const: common_s2
101c66ec88fSEmmanuel Vadot
102c66ec88fSEmmanuel Vadot  power-domains:
103c66ec88fSEmmanuel Vadot    maxItems: 1
104c66ec88fSEmmanuel Vadot    description: phandle to the associated power domain
105c66ec88fSEmmanuel Vadot
1065def4c47SEmmanuel Vadot  dma-coherent:
1075def4c47SEmmanuel Vadot    type: boolean
1085def4c47SEmmanuel Vadot
109c66ec88fSEmmanuel Vadot  ports:
1105def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
1115def4c47SEmmanuel Vadot
112c66ec88fSEmmanuel Vadot    properties:
113c66ec88fSEmmanuel Vadot      port@0:
1145def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
115c66ec88fSEmmanuel Vadot        description:
116c66ec88fSEmmanuel Vadot          The output port node form video port 1
117c66ec88fSEmmanuel Vadot
118c66ec88fSEmmanuel Vadot      port@1:
1195def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
120c66ec88fSEmmanuel Vadot        description:
121c66ec88fSEmmanuel Vadot          The output port node from video port 2
122c66ec88fSEmmanuel Vadot
123c66ec88fSEmmanuel Vadot      port@2:
1245def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
125c66ec88fSEmmanuel Vadot        description:
126c66ec88fSEmmanuel Vadot          The output port node from video port 3
127c66ec88fSEmmanuel Vadot
128c66ec88fSEmmanuel Vadot      port@3:
1295def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
130c66ec88fSEmmanuel Vadot        description:
131c66ec88fSEmmanuel Vadot          The output port node from video port 4
132c66ec88fSEmmanuel Vadot
133c66ec88fSEmmanuel Vadot  max-memory-bandwidth:
134c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
135c66ec88fSEmmanuel Vadot    description:
136c66ec88fSEmmanuel Vadot      Input memory (from main memory to dispc) bandwidth limit in
137c66ec88fSEmmanuel Vadot      bytes per second
138c66ec88fSEmmanuel Vadot
139c66ec88fSEmmanuel Vadotrequired:
140c66ec88fSEmmanuel Vadot  - compatible
141c66ec88fSEmmanuel Vadot  - reg
142c66ec88fSEmmanuel Vadot  - reg-names
143c66ec88fSEmmanuel Vadot  - clocks
144c66ec88fSEmmanuel Vadot  - clock-names
145c66ec88fSEmmanuel Vadot  - interrupts
146c66ec88fSEmmanuel Vadot  - interrupt-names
147c66ec88fSEmmanuel Vadot  - ports
148c66ec88fSEmmanuel Vadot
149c66ec88fSEmmanuel VadotadditionalProperties: false
150c66ec88fSEmmanuel Vadot
151c66ec88fSEmmanuel Vadotexamples:
152c66ec88fSEmmanuel Vadot  - |
153c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
154c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
155c66ec88fSEmmanuel Vadot    #include <dt-bindings/soc/ti,sci_pm_domain.h>
156c66ec88fSEmmanuel Vadot
157c66ec88fSEmmanuel Vadot    dss: dss@4a00000 {
158c66ec88fSEmmanuel Vadot            compatible = "ti,j721e-dss";
159c66ec88fSEmmanuel Vadot            reg =   <0x04a00000 0x10000>, /* common_m */
160c66ec88fSEmmanuel Vadot                    <0x04a10000 0x10000>, /* common_s0*/
161c66ec88fSEmmanuel Vadot                    <0x04b00000 0x10000>, /* common_s1*/
162c66ec88fSEmmanuel Vadot                    <0x04b10000 0x10000>, /* common_s2*/
163c66ec88fSEmmanuel Vadot                    <0x04a20000 0x10000>, /* vidl1 */
164c66ec88fSEmmanuel Vadot                    <0x04a30000 0x10000>, /* vidl2 */
165c66ec88fSEmmanuel Vadot                    <0x04a50000 0x10000>, /* vid1 */
166c66ec88fSEmmanuel Vadot                    <0x04a60000 0x10000>, /* vid2 */
167c66ec88fSEmmanuel Vadot                    <0x04a70000 0x10000>, /* ovr1 */
168c66ec88fSEmmanuel Vadot                    <0x04a90000 0x10000>, /* ovr2 */
169c66ec88fSEmmanuel Vadot                    <0x04ab0000 0x10000>, /* ovr3 */
170c66ec88fSEmmanuel Vadot                    <0x04ad0000 0x10000>, /* ovr4 */
171c66ec88fSEmmanuel Vadot                    <0x04a80000 0x10000>, /* vp1 */
172c66ec88fSEmmanuel Vadot                    <0x04aa0000 0x10000>, /* vp2 */
173c66ec88fSEmmanuel Vadot                    <0x04ac0000 0x10000>, /* vp3 */
174c66ec88fSEmmanuel Vadot                    <0x04ae0000 0x10000>, /* vp4 */
175c66ec88fSEmmanuel Vadot                    <0x04af0000 0x10000>; /* wb */
176c66ec88fSEmmanuel Vadot            reg-names = "common_m", "common_s0",
177c66ec88fSEmmanuel Vadot                    "common_s1", "common_s2",
178c66ec88fSEmmanuel Vadot                    "vidl1", "vidl2","vid1","vid2",
179c66ec88fSEmmanuel Vadot                    "ovr1", "ovr2", "ovr3", "ovr4",
180c66ec88fSEmmanuel Vadot                    "vp1", "vp2", "vp3", "vp4",
181c66ec88fSEmmanuel Vadot                    "wb";
182c66ec88fSEmmanuel Vadot            clocks =        <&k3_clks 152 0>,
183c66ec88fSEmmanuel Vadot                            <&k3_clks 152 1>,
184c66ec88fSEmmanuel Vadot                            <&k3_clks 152 4>,
185c66ec88fSEmmanuel Vadot                            <&k3_clks 152 9>,
186c66ec88fSEmmanuel Vadot                            <&k3_clks 152 13>;
187c66ec88fSEmmanuel Vadot            clock-names = "fck", "vp1", "vp2", "vp3", "vp4";
188c66ec88fSEmmanuel Vadot            power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
189c66ec88fSEmmanuel Vadot            interrupts =    <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
190c66ec88fSEmmanuel Vadot                            <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>,
191c66ec88fSEmmanuel Vadot                            <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
192c66ec88fSEmmanuel Vadot                            <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
193c66ec88fSEmmanuel Vadot            interrupt-names =       "common_m",
194c66ec88fSEmmanuel Vadot                                    "common_s0",
195c66ec88fSEmmanuel Vadot                                    "common_s1",
196c66ec88fSEmmanuel Vadot                                    "common_s2";
197c66ec88fSEmmanuel Vadot            ports {
198c66ec88fSEmmanuel Vadot                    #address-cells = <1>;
199c66ec88fSEmmanuel Vadot                    #size-cells = <0>;
200c66ec88fSEmmanuel Vadot                    port@0 {
201c66ec88fSEmmanuel Vadot                            reg = <0>;
202c66ec88fSEmmanuel Vadot
203c66ec88fSEmmanuel Vadot                            dpi_out_0: endpoint {
204c66ec88fSEmmanuel Vadot                                    remote-endpoint = <&dp_bridge_input>;
205c66ec88fSEmmanuel Vadot                            };
206c66ec88fSEmmanuel Vadot                    };
207c66ec88fSEmmanuel Vadot            };
208c66ec88fSEmmanuel Vadot    };
209