xref: /freebsd/sys/contrib/device-tree/Bindings/display/bridge/cdns,dsi.yaml (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*cb7aa33aSEmmanuel Vadot%YAML 1.2
3*cb7aa33aSEmmanuel Vadot---
4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/display/bridge/cdns,dsi.yaml#
5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*cb7aa33aSEmmanuel Vadot
7*cb7aa33aSEmmanuel Vadottitle: Cadence DSI bridge
8*cb7aa33aSEmmanuel Vadot
9*cb7aa33aSEmmanuel Vadotmaintainers:
10*cb7aa33aSEmmanuel Vadot  - Boris Brezillon <boris.brezillon@bootlin.com>
11*cb7aa33aSEmmanuel Vadot
12*cb7aa33aSEmmanuel Vadotdescription: |
13*cb7aa33aSEmmanuel Vadot   CDNS DSI is a bridge device which converts DPI to DSI
14*cb7aa33aSEmmanuel Vadot
15*cb7aa33aSEmmanuel Vadotproperties:
16*cb7aa33aSEmmanuel Vadot  compatible:
17*cb7aa33aSEmmanuel Vadot    enum:
18*cb7aa33aSEmmanuel Vadot      - cdns,dsi
19*cb7aa33aSEmmanuel Vadot      - ti,j721e-dsi
20*cb7aa33aSEmmanuel Vadot
21*cb7aa33aSEmmanuel Vadot  reg:
22*cb7aa33aSEmmanuel Vadot    minItems: 1
23*cb7aa33aSEmmanuel Vadot    items:
24*cb7aa33aSEmmanuel Vadot      - description:
25*cb7aa33aSEmmanuel Vadot          Register block for controller's registers.
26*cb7aa33aSEmmanuel Vadot      - description:
27*cb7aa33aSEmmanuel Vadot          Register block for wrapper settings registers in case of TI J7 SoCs.
28*cb7aa33aSEmmanuel Vadot
29*cb7aa33aSEmmanuel Vadot  clocks:
30*cb7aa33aSEmmanuel Vadot    items:
31*cb7aa33aSEmmanuel Vadot      - description: PSM clock, used by the IP
32*cb7aa33aSEmmanuel Vadot      - description: sys clock, used by the IP
33*cb7aa33aSEmmanuel Vadot
34*cb7aa33aSEmmanuel Vadot  clock-names:
35*cb7aa33aSEmmanuel Vadot    items:
36*cb7aa33aSEmmanuel Vadot      - const: dsi_p_clk
37*cb7aa33aSEmmanuel Vadot      - const: dsi_sys_clk
38*cb7aa33aSEmmanuel Vadot
39*cb7aa33aSEmmanuel Vadot  phys:
40*cb7aa33aSEmmanuel Vadot    maxItems: 1
41*cb7aa33aSEmmanuel Vadot
42*cb7aa33aSEmmanuel Vadot  phy-names:
43*cb7aa33aSEmmanuel Vadot    const: dphy
44*cb7aa33aSEmmanuel Vadot
45*cb7aa33aSEmmanuel Vadot  interrupts:
46*cb7aa33aSEmmanuel Vadot    maxItems: 1
47*cb7aa33aSEmmanuel Vadot
48*cb7aa33aSEmmanuel Vadot  resets:
49*cb7aa33aSEmmanuel Vadot    maxItems: 1
50*cb7aa33aSEmmanuel Vadot
51*cb7aa33aSEmmanuel Vadot  reset-names:
52*cb7aa33aSEmmanuel Vadot    const: dsi_p_rst
53*cb7aa33aSEmmanuel Vadot
54*cb7aa33aSEmmanuel Vadot  ports:
55*cb7aa33aSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
56*cb7aa33aSEmmanuel Vadot
57*cb7aa33aSEmmanuel Vadot    properties:
58*cb7aa33aSEmmanuel Vadot      port@0:
59*cb7aa33aSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
60*cb7aa33aSEmmanuel Vadot        description:
61*cb7aa33aSEmmanuel Vadot          Output port representing the DSI output. It can have
62*cb7aa33aSEmmanuel Vadot          at most 4 endpoints. The endpoint number is directly encoding
63*cb7aa33aSEmmanuel Vadot          the DSI virtual channel used by this device.
64*cb7aa33aSEmmanuel Vadot
65*cb7aa33aSEmmanuel Vadot      port@1:
66*cb7aa33aSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
67*cb7aa33aSEmmanuel Vadot        description:
68*cb7aa33aSEmmanuel Vadot          Input port representing the DPI input.
69*cb7aa33aSEmmanuel Vadot
70*cb7aa33aSEmmanuel Vadot    required:
71*cb7aa33aSEmmanuel Vadot      - port@1
72*cb7aa33aSEmmanuel Vadot
73*cb7aa33aSEmmanuel VadotallOf:
74*cb7aa33aSEmmanuel Vadot  - $ref: ../dsi-controller.yaml#
75*cb7aa33aSEmmanuel Vadot
76*cb7aa33aSEmmanuel Vadot  - if:
77*cb7aa33aSEmmanuel Vadot      properties:
78*cb7aa33aSEmmanuel Vadot        compatible:
79*cb7aa33aSEmmanuel Vadot          contains:
80*cb7aa33aSEmmanuel Vadot            const: ti,j721e-dsi
81*cb7aa33aSEmmanuel Vadot    then:
82*cb7aa33aSEmmanuel Vadot      properties:
83*cb7aa33aSEmmanuel Vadot        reg:
84*cb7aa33aSEmmanuel Vadot          minItems: 2
85*cb7aa33aSEmmanuel Vadot          maxItems: 2
86*cb7aa33aSEmmanuel Vadot        power-domains:
87*cb7aa33aSEmmanuel Vadot          maxItems: 1
88*cb7aa33aSEmmanuel Vadot    else:
89*cb7aa33aSEmmanuel Vadot      properties:
90*cb7aa33aSEmmanuel Vadot        reg:
91*cb7aa33aSEmmanuel Vadot          maxItems: 1
92*cb7aa33aSEmmanuel Vadot
93*cb7aa33aSEmmanuel Vadotrequired:
94*cb7aa33aSEmmanuel Vadot  - compatible
95*cb7aa33aSEmmanuel Vadot  - reg
96*cb7aa33aSEmmanuel Vadot  - interrupts
97*cb7aa33aSEmmanuel Vadot  - clocks
98*cb7aa33aSEmmanuel Vadot  - clock-names
99*cb7aa33aSEmmanuel Vadot  - phys
100*cb7aa33aSEmmanuel Vadot  - phy-names
101*cb7aa33aSEmmanuel Vadot  - ports
102*cb7aa33aSEmmanuel Vadot
103*cb7aa33aSEmmanuel VadotunevaluatedProperties: false
104*cb7aa33aSEmmanuel Vadot
105*cb7aa33aSEmmanuel Vadotexamples:
106*cb7aa33aSEmmanuel Vadot  - |
107*cb7aa33aSEmmanuel Vadot    bus {
108*cb7aa33aSEmmanuel Vadot        #address-cells = <2>;
109*cb7aa33aSEmmanuel Vadot        #size-cells = <2>;
110*cb7aa33aSEmmanuel Vadot
111*cb7aa33aSEmmanuel Vadot        dsi@fd0c0000 {
112*cb7aa33aSEmmanuel Vadot            compatible = "cdns,dsi";
113*cb7aa33aSEmmanuel Vadot            reg = <0x0 0xfd0c0000 0x0 0x1000>;
114*cb7aa33aSEmmanuel Vadot            clocks = <&pclk>, <&sysclk>;
115*cb7aa33aSEmmanuel Vadot            clock-names = "dsi_p_clk", "dsi_sys_clk";
116*cb7aa33aSEmmanuel Vadot            interrupts = <1>;
117*cb7aa33aSEmmanuel Vadot            phys = <&dphy0>;
118*cb7aa33aSEmmanuel Vadot            phy-names = "dphy";
119*cb7aa33aSEmmanuel Vadot
120*cb7aa33aSEmmanuel Vadot            #address-cells = <1>;
121*cb7aa33aSEmmanuel Vadot            #size-cells = <0>;
122*cb7aa33aSEmmanuel Vadot
123*cb7aa33aSEmmanuel Vadot            ports {
124*cb7aa33aSEmmanuel Vadot                #address-cells = <1>;
125*cb7aa33aSEmmanuel Vadot                #size-cells = <0>;
126*cb7aa33aSEmmanuel Vadot
127*cb7aa33aSEmmanuel Vadot                port@1 {
128*cb7aa33aSEmmanuel Vadot                    reg = <1>;
129*cb7aa33aSEmmanuel Vadot                    endpoint {
130*cb7aa33aSEmmanuel Vadot                        remote-endpoint = <&xxx_dpi_output>;
131*cb7aa33aSEmmanuel Vadot                    };
132*cb7aa33aSEmmanuel Vadot                };
133*cb7aa33aSEmmanuel Vadot            };
134*cb7aa33aSEmmanuel Vadot
135*cb7aa33aSEmmanuel Vadot            panel@0 {
136*cb7aa33aSEmmanuel Vadot                compatible = "panasonic,vvx10f034n00";
137*cb7aa33aSEmmanuel Vadot                reg = <0>;
138*cb7aa33aSEmmanuel Vadot                power-supply = <&vcc_lcd_reg>;
139*cb7aa33aSEmmanuel Vadot            };
140*cb7aa33aSEmmanuel Vadot        };
141*cb7aa33aSEmmanuel Vadot    };
142*cb7aa33aSEmmanuel Vadot
143*cb7aa33aSEmmanuel Vadot  - |
144*cb7aa33aSEmmanuel Vadot    bus {
145*cb7aa33aSEmmanuel Vadot        #address-cells = <2>;
146*cb7aa33aSEmmanuel Vadot        #size-cells = <2>;
147*cb7aa33aSEmmanuel Vadot
148*cb7aa33aSEmmanuel Vadot        dsi@fd0c0000 {
149*cb7aa33aSEmmanuel Vadot            compatible = "cdns,dsi";
150*cb7aa33aSEmmanuel Vadot            reg = <0x0 0xfd0c0000 0x0 0x1000>;
151*cb7aa33aSEmmanuel Vadot            clocks = <&pclk>, <&sysclk>;
152*cb7aa33aSEmmanuel Vadot            clock-names = "dsi_p_clk", "dsi_sys_clk";
153*cb7aa33aSEmmanuel Vadot            interrupts = <1>;
154*cb7aa33aSEmmanuel Vadot            phys = <&dphy1>;
155*cb7aa33aSEmmanuel Vadot            phy-names = "dphy";
156*cb7aa33aSEmmanuel Vadot
157*cb7aa33aSEmmanuel Vadot            ports {
158*cb7aa33aSEmmanuel Vadot                #address-cells = <1>;
159*cb7aa33aSEmmanuel Vadot                #size-cells = <0>;
160*cb7aa33aSEmmanuel Vadot
161*cb7aa33aSEmmanuel Vadot                port@0 {
162*cb7aa33aSEmmanuel Vadot                    reg = <0>;
163*cb7aa33aSEmmanuel Vadot                    #address-cells = <1>;
164*cb7aa33aSEmmanuel Vadot                    #size-cells = <0>;
165*cb7aa33aSEmmanuel Vadot
166*cb7aa33aSEmmanuel Vadot                    endpoint@0 {
167*cb7aa33aSEmmanuel Vadot                        reg = <0>;
168*cb7aa33aSEmmanuel Vadot                        remote-endpoint = <&dsi_panel_input>;
169*cb7aa33aSEmmanuel Vadot                    };
170*cb7aa33aSEmmanuel Vadot                };
171*cb7aa33aSEmmanuel Vadot
172*cb7aa33aSEmmanuel Vadot                port@1 {
173*cb7aa33aSEmmanuel Vadot                    reg = <1>;
174*cb7aa33aSEmmanuel Vadot                    endpoint {
175*cb7aa33aSEmmanuel Vadot                        remote-endpoint = <&xxx_dpi_output>;
176*cb7aa33aSEmmanuel Vadot                    };
177*cb7aa33aSEmmanuel Vadot                };
178*cb7aa33aSEmmanuel Vadot            };
179*cb7aa33aSEmmanuel Vadot        };
180*cb7aa33aSEmmanuel Vadot    };
181