xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*4882a593Smuzhiyun# Copyright 2019 Texas Instruments Incorporated
3*4882a593Smuzhiyun%YAML 1.2
4*4882a593Smuzhiyun---
5*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/display/ti/ti,j721e-dss.yaml#"
6*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7*4882a593Smuzhiyun
8*4882a593Smuzhiyuntitle: Texas Instruments J721E Display Subsystem
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunmaintainers:
11*4882a593Smuzhiyun  - Jyri Sarha <jsarha@ti.com>
12*4882a593Smuzhiyun  - Tomi Valkeinen <tomi.valkeinen@ti.com>
13*4882a593Smuzhiyun
14*4882a593Smuzhiyundescription: |
15*4882a593Smuzhiyun  The J721E TI Keystone Display SubSystem with four output ports and
16*4882a593Smuzhiyun  four video planes. There is two full video planes and two "lite
17*4882a593Smuzhiyun  planes" without scaling support. The video ports can be connected to
18*4882a593Smuzhiyun  the SoC's DPI pins or to integrated display bridges on the SoC.
19*4882a593Smuzhiyun
20*4882a593Smuzhiyunproperties:
21*4882a593Smuzhiyun  compatible:
22*4882a593Smuzhiyun    const: ti,j721e-dss
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun  reg:
25*4882a593Smuzhiyun    items:
26*4882a593Smuzhiyun      - description: common_m DSS Master common
27*4882a593Smuzhiyun      - description: common_s0 DSS Shared common 0
28*4882a593Smuzhiyun      - description: common_s1 DSS Shared common 1
29*4882a593Smuzhiyun      - description: common_s2 DSS Shared common 2
30*4882a593Smuzhiyun      - description: VIDL1 light video plane 1
31*4882a593Smuzhiyun      - description: VIDL2 light video plane 2
32*4882a593Smuzhiyun      - description: VID1 video plane 1
33*4882a593Smuzhiyun      - description: VID1 video plane 2
34*4882a593Smuzhiyun      - description: OVR1 overlay manager for vp1
35*4882a593Smuzhiyun      - description: OVR2 overlay manager for vp2
36*4882a593Smuzhiyun      - description: OVR3 overlay manager for vp3
37*4882a593Smuzhiyun      - description: OVR4 overlay manager for vp4
38*4882a593Smuzhiyun      - description: VP1 video port 1
39*4882a593Smuzhiyun      - description: VP2 video port 2
40*4882a593Smuzhiyun      - description: VP3 video port 3
41*4882a593Smuzhiyun      - description: VP4 video port 4
42*4882a593Smuzhiyun      - description: WB Write Back
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun  reg-names:
45*4882a593Smuzhiyun    items:
46*4882a593Smuzhiyun      - const: common_m
47*4882a593Smuzhiyun      - const: common_s0
48*4882a593Smuzhiyun      - const: common_s1
49*4882a593Smuzhiyun      - const: common_s2
50*4882a593Smuzhiyun      - const: vidl1
51*4882a593Smuzhiyun      - const: vidl2
52*4882a593Smuzhiyun      - const: vid1
53*4882a593Smuzhiyun      - const: vid2
54*4882a593Smuzhiyun      - const: ovr1
55*4882a593Smuzhiyun      - const: ovr2
56*4882a593Smuzhiyun      - const: ovr3
57*4882a593Smuzhiyun      - const: ovr4
58*4882a593Smuzhiyun      - const: vp1
59*4882a593Smuzhiyun      - const: vp2
60*4882a593Smuzhiyun      - const: vp3
61*4882a593Smuzhiyun      - const: vp4
62*4882a593Smuzhiyun      - const: wb
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun  clocks:
65*4882a593Smuzhiyun    items:
66*4882a593Smuzhiyun      - description: fck DSS functional clock
67*4882a593Smuzhiyun      - description: vp1 Video Port 1 pixel clock
68*4882a593Smuzhiyun      - description: vp2 Video Port 2 pixel clock
69*4882a593Smuzhiyun      - description: vp3 Video Port 3 pixel clock
70*4882a593Smuzhiyun      - description: vp4 Video Port 4 pixel clock
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun  clock-names:
73*4882a593Smuzhiyun    items:
74*4882a593Smuzhiyun      - const: fck
75*4882a593Smuzhiyun      - const: vp1
76*4882a593Smuzhiyun      - const: vp2
77*4882a593Smuzhiyun      - const: vp3
78*4882a593Smuzhiyun      - const: vp4
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun  interrupts:
81*4882a593Smuzhiyun    items:
82*4882a593Smuzhiyun      - description: common_m DSS Master common
83*4882a593Smuzhiyun      - description: common_s0 DSS Shared common 0
84*4882a593Smuzhiyun      - description: common_s1 DSS Shared common 1
85*4882a593Smuzhiyun      - description: common_s2 DSS Shared common 2
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun  interrupt-names:
88*4882a593Smuzhiyun    items:
89*4882a593Smuzhiyun      - const: common_m
90*4882a593Smuzhiyun      - const: common_s0
91*4882a593Smuzhiyun      - const: common_s1
92*4882a593Smuzhiyun      - const: common_s2
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun  power-domains:
95*4882a593Smuzhiyun    maxItems: 1
96*4882a593Smuzhiyun    description: phandle to the associated power domain
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun  ports:
99*4882a593Smuzhiyun    type: object
100*4882a593Smuzhiyun    description:
101*4882a593Smuzhiyun      Ports as described in Documentation/devicetree/bindings/graph.txt
102*4882a593Smuzhiyun    properties:
103*4882a593Smuzhiyun      "#address-cells":
104*4882a593Smuzhiyun        const: 1
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun      "#size-cells":
107*4882a593Smuzhiyun        const: 0
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun      port@0:
110*4882a593Smuzhiyun        type: object
111*4882a593Smuzhiyun        description:
112*4882a593Smuzhiyun          The output port node form video port 1
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun      port@1:
115*4882a593Smuzhiyun        type: object
116*4882a593Smuzhiyun        description:
117*4882a593Smuzhiyun          The output port node from video port 2
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun      port@2:
120*4882a593Smuzhiyun        type: object
121*4882a593Smuzhiyun        description:
122*4882a593Smuzhiyun          The output port node from video port 3
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun      port@3:
125*4882a593Smuzhiyun        type: object
126*4882a593Smuzhiyun        description:
127*4882a593Smuzhiyun          The output port node from video port 4
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun    required:
130*4882a593Smuzhiyun      - "#address-cells"
131*4882a593Smuzhiyun      - "#size-cells"
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun  max-memory-bandwidth:
134*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/uint32
135*4882a593Smuzhiyun    description:
136*4882a593Smuzhiyun      Input memory (from main memory to dispc) bandwidth limit in
137*4882a593Smuzhiyun      bytes per second
138*4882a593Smuzhiyun
139*4882a593Smuzhiyunrequired:
140*4882a593Smuzhiyun  - compatible
141*4882a593Smuzhiyun  - reg
142*4882a593Smuzhiyun  - reg-names
143*4882a593Smuzhiyun  - clocks
144*4882a593Smuzhiyun  - clock-names
145*4882a593Smuzhiyun  - interrupts
146*4882a593Smuzhiyun  - interrupt-names
147*4882a593Smuzhiyun  - ports
148*4882a593Smuzhiyun
149*4882a593SmuzhiyunadditionalProperties: false
150*4882a593Smuzhiyun
151*4882a593Smuzhiyunexamples:
152*4882a593Smuzhiyun  - |
153*4882a593Smuzhiyun    #include <dt-bindings/interrupt-controller/arm-gic.h>
154*4882a593Smuzhiyun    #include <dt-bindings/interrupt-controller/irq.h>
155*4882a593Smuzhiyun    #include <dt-bindings/soc/ti,sci_pm_domain.h>
156*4882a593Smuzhiyun
157*4882a593Smuzhiyun    dss: dss@4a00000 {
158*4882a593Smuzhiyun            compatible = "ti,j721e-dss";
159*4882a593Smuzhiyun            reg =   <0x04a00000 0x10000>, /* common_m */
160*4882a593Smuzhiyun                    <0x04a10000 0x10000>, /* common_s0*/
161*4882a593Smuzhiyun                    <0x04b00000 0x10000>, /* common_s1*/
162*4882a593Smuzhiyun                    <0x04b10000 0x10000>, /* common_s2*/
163*4882a593Smuzhiyun                    <0x04a20000 0x10000>, /* vidl1 */
164*4882a593Smuzhiyun                    <0x04a30000 0x10000>, /* vidl2 */
165*4882a593Smuzhiyun                    <0x04a50000 0x10000>, /* vid1 */
166*4882a593Smuzhiyun                    <0x04a60000 0x10000>, /* vid2 */
167*4882a593Smuzhiyun                    <0x04a70000 0x10000>, /* ovr1 */
168*4882a593Smuzhiyun                    <0x04a90000 0x10000>, /* ovr2 */
169*4882a593Smuzhiyun                    <0x04ab0000 0x10000>, /* ovr3 */
170*4882a593Smuzhiyun                    <0x04ad0000 0x10000>, /* ovr4 */
171*4882a593Smuzhiyun                    <0x04a80000 0x10000>, /* vp1 */
172*4882a593Smuzhiyun                    <0x04aa0000 0x10000>, /* vp2 */
173*4882a593Smuzhiyun                    <0x04ac0000 0x10000>, /* vp3 */
174*4882a593Smuzhiyun                    <0x04ae0000 0x10000>, /* vp4 */
175*4882a593Smuzhiyun                    <0x04af0000 0x10000>; /* wb */
176*4882a593Smuzhiyun            reg-names = "common_m", "common_s0",
177*4882a593Smuzhiyun                    "common_s1", "common_s2",
178*4882a593Smuzhiyun                    "vidl1", "vidl2","vid1","vid2",
179*4882a593Smuzhiyun                    "ovr1", "ovr2", "ovr3", "ovr4",
180*4882a593Smuzhiyun                    "vp1", "vp2", "vp3", "vp4",
181*4882a593Smuzhiyun                    "wb";
182*4882a593Smuzhiyun            clocks =        <&k3_clks 152 0>,
183*4882a593Smuzhiyun                            <&k3_clks 152 1>,
184*4882a593Smuzhiyun                            <&k3_clks 152 4>,
185*4882a593Smuzhiyun                            <&k3_clks 152 9>,
186*4882a593Smuzhiyun                            <&k3_clks 152 13>;
187*4882a593Smuzhiyun            clock-names = "fck", "vp1", "vp2", "vp3", "vp4";
188*4882a593Smuzhiyun            power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
189*4882a593Smuzhiyun            interrupts =    <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
190*4882a593Smuzhiyun                            <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>,
191*4882a593Smuzhiyun                            <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
192*4882a593Smuzhiyun                            <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
193*4882a593Smuzhiyun            interrupt-names =       "common_m",
194*4882a593Smuzhiyun                                    "common_s0",
195*4882a593Smuzhiyun                                    "common_s1",
196*4882a593Smuzhiyun                                    "common_s2";
197*4882a593Smuzhiyun            ports {
198*4882a593Smuzhiyun                    #address-cells = <1>;
199*4882a593Smuzhiyun                    #size-cells = <0>;
200*4882a593Smuzhiyun                    port@0 {
201*4882a593Smuzhiyun                            reg = <0>;
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun                            dpi_out_0: endpoint {
204*4882a593Smuzhiyun                                    remote-endpoint = <&dp_bridge_input>;
205*4882a593Smuzhiyun                            };
206*4882a593Smuzhiyun                    };
207*4882a593Smuzhiyun            };
208*4882a593Smuzhiyun    };
209