1*b1a90f51SBiju Das# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*b1a90f51SBiju Das%YAML 1.2
3*b1a90f51SBiju Das---
4*b1a90f51SBiju Das$id: http://devicetree.org/schemas/display/bridge/renesas,dsi.yaml#
5*b1a90f51SBiju Das$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b1a90f51SBiju Das
7*b1a90f51SBiju Dastitle: Renesas RZ/G2L MIPI DSI Encoder
8*b1a90f51SBiju Das
9*b1a90f51SBiju Dasmaintainers:
10*b1a90f51SBiju Das  - Biju Das <biju.das.jz@bp.renesas.com>
11*b1a90f51SBiju Das
12*b1a90f51SBiju Dasdescription: |
13*b1a90f51SBiju Das  This binding describes the MIPI DSI encoder embedded in the Renesas
14*b1a90f51SBiju Das  RZ/G2L alike family of SoC's. The encoder can operate in DSI mode, with
15*b1a90f51SBiju Das  up to four data lanes.
16*b1a90f51SBiju Das
17*b1a90f51SBiju DasallOf:
18*b1a90f51SBiju Das  - $ref: /schemas/display/dsi-controller.yaml#
19*b1a90f51SBiju Das
20*b1a90f51SBiju Dasproperties:
21*b1a90f51SBiju Das  compatible:
22*b1a90f51SBiju Das    items:
23*b1a90f51SBiju Das      - enum:
24*b1a90f51SBiju Das          - renesas,r9a07g044-mipi-dsi # RZ/G2{L,LC}
25*b1a90f51SBiju Das      - const: renesas,rzg2l-mipi-dsi
26*b1a90f51SBiju Das
27*b1a90f51SBiju Das  reg:
28*b1a90f51SBiju Das    maxItems: 1
29*b1a90f51SBiju Das
30*b1a90f51SBiju Das  interrupts:
31*b1a90f51SBiju Das    items:
32*b1a90f51SBiju Das      - description: Sequence operation channel 0 interrupt
33*b1a90f51SBiju Das      - description: Sequence operation channel 1 interrupt
34*b1a90f51SBiju Das      - description: Video-Input operation channel 1 interrupt
35*b1a90f51SBiju Das      - description: DSI Packet Receive interrupt
36*b1a90f51SBiju Das      - description: DSI Fatal Error interrupt
37*b1a90f51SBiju Das      - description: DSI D-PHY PPI interrupt
38*b1a90f51SBiju Das      - description: Debug interrupt
39*b1a90f51SBiju Das
40*b1a90f51SBiju Das  interrupt-names:
41*b1a90f51SBiju Das    items:
42*b1a90f51SBiju Das      - const: seq0
43*b1a90f51SBiju Das      - const: seq1
44*b1a90f51SBiju Das      - const: vin1
45*b1a90f51SBiju Das      - const: rcv
46*b1a90f51SBiju Das      - const: ferr
47*b1a90f51SBiju Das      - const: ppi
48*b1a90f51SBiju Das      - const: debug
49*b1a90f51SBiju Das
50*b1a90f51SBiju Das  clocks:
51*b1a90f51SBiju Das    items:
52*b1a90f51SBiju Das      - description: DSI D-PHY PLL multiplied clock
53*b1a90f51SBiju Das      - description: DSI D-PHY system clock
54*b1a90f51SBiju Das      - description: DSI AXI bus clock
55*b1a90f51SBiju Das      - description: DSI Register access clock
56*b1a90f51SBiju Das      - description: DSI Video clock
57*b1a90f51SBiju Das      - description: DSI D-PHY Escape mode transmit clock
58*b1a90f51SBiju Das
59*b1a90f51SBiju Das  clock-names:
60*b1a90f51SBiju Das    items:
61*b1a90f51SBiju Das      - const: pllclk
62*b1a90f51SBiju Das      - const: sysclk
63*b1a90f51SBiju Das      - const: aclk
64*b1a90f51SBiju Das      - const: pclk
65*b1a90f51SBiju Das      - const: vclk
66*b1a90f51SBiju Das      - const: lpclk
67*b1a90f51SBiju Das
68*b1a90f51SBiju Das  resets:
69*b1a90f51SBiju Das    items:
70*b1a90f51SBiju Das      - description: MIPI_DSI_CMN_RSTB
71*b1a90f51SBiju Das      - description: MIPI_DSI_ARESET_N
72*b1a90f51SBiju Das      - description: MIPI_DSI_PRESET_N
73*b1a90f51SBiju Das
74*b1a90f51SBiju Das  reset-names:
75*b1a90f51SBiju Das    items:
76*b1a90f51SBiju Das      - const: rst
77*b1a90f51SBiju Das      - const: arst
78*b1a90f51SBiju Das      - const: prst
79*b1a90f51SBiju Das
80*b1a90f51SBiju Das  power-domains:
81*b1a90f51SBiju Das    maxItems: 1
82*b1a90f51SBiju Das
83*b1a90f51SBiju Das  ports:
84*b1a90f51SBiju Das    $ref: /schemas/graph.yaml#/properties/ports
85*b1a90f51SBiju Das
86*b1a90f51SBiju Das    properties:
87*b1a90f51SBiju Das      port@0:
88*b1a90f51SBiju Das        $ref: /schemas/graph.yaml#/properties/port
89*b1a90f51SBiju Das        description: Parallel input port
90*b1a90f51SBiju Das
91*b1a90f51SBiju Das      port@1:
92*b1a90f51SBiju Das        $ref: /schemas/graph.yaml#/$defs/port-base
93*b1a90f51SBiju Das        unevaluatedProperties: false
94*b1a90f51SBiju Das        description: DSI output port
95*b1a90f51SBiju Das
96*b1a90f51SBiju Das        properties:
97*b1a90f51SBiju Das          endpoint:
98*b1a90f51SBiju Das            $ref: /schemas/media/video-interfaces.yaml#
99*b1a90f51SBiju Das            unevaluatedProperties: false
100*b1a90f51SBiju Das
101*b1a90f51SBiju Das            properties:
102*b1a90f51SBiju Das              data-lanes:
103*b1a90f51SBiju Das                description: array of physical DSI data lane indexes.
104*b1a90f51SBiju Das                minItems: 1
105*b1a90f51SBiju Das                items:
106*b1a90f51SBiju Das                  - const: 1
107*b1a90f51SBiju Das                  - const: 2
108*b1a90f51SBiju Das                  - const: 3
109*b1a90f51SBiju Das                  - const: 4
110*b1a90f51SBiju Das
111*b1a90f51SBiju Das            required:
112*b1a90f51SBiju Das              - data-lanes
113*b1a90f51SBiju Das
114*b1a90f51SBiju Das    required:
115*b1a90f51SBiju Das      - port@0
116*b1a90f51SBiju Das      - port@1
117*b1a90f51SBiju Das
118*b1a90f51SBiju Dasrequired:
119*b1a90f51SBiju Das  - compatible
120*b1a90f51SBiju Das  - reg
121*b1a90f51SBiju Das  - interrupts
122*b1a90f51SBiju Das  - interrupt-names
123*b1a90f51SBiju Das  - clocks
124*b1a90f51SBiju Das  - clock-names
125*b1a90f51SBiju Das  - resets
126*b1a90f51SBiju Das  - reset-names
127*b1a90f51SBiju Das  - power-domains
128*b1a90f51SBiju Das  - ports
129*b1a90f51SBiju Das
130*b1a90f51SBiju DasadditionalProperties: false
131*b1a90f51SBiju Das
132*b1a90f51SBiju Dasexamples:
133*b1a90f51SBiju Das  - |
134*b1a90f51SBiju Das    #include <dt-bindings/clock/r9a07g044-cpg.h>
135*b1a90f51SBiju Das    #include <dt-bindings/interrupt-controller/arm-gic.h>
136*b1a90f51SBiju Das
137*b1a90f51SBiju Das    dsi0: dsi@10850000 {
138*b1a90f51SBiju Das        compatible = "renesas,r9a07g044-mipi-dsi", "renesas,rzg2l-mipi-dsi";
139*b1a90f51SBiju Das        reg = <0x10850000 0x20000>;
140*b1a90f51SBiju Das        interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
141*b1a90f51SBiju Das                     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
142*b1a90f51SBiju Das                     <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
143*b1a90f51SBiju Das                     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
144*b1a90f51SBiju Das                     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
145*b1a90f51SBiju Das                     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
146*b1a90f51SBiju Das                     <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
147*b1a90f51SBiju Das        interrupt-names = "seq0", "seq1", "vin1", "rcv",
148*b1a90f51SBiju Das                          "ferr", "ppi", "debug";
149*b1a90f51SBiju Das        clocks = <&cpg CPG_MOD R9A07G044_MIPI_DSI_PLLCLK>,
150*b1a90f51SBiju Das                 <&cpg CPG_MOD R9A07G044_MIPI_DSI_SYSCLK>,
151*b1a90f51SBiju Das                 <&cpg CPG_MOD R9A07G044_MIPI_DSI_ACLK>,
152*b1a90f51SBiju Das                 <&cpg CPG_MOD R9A07G044_MIPI_DSI_PCLK>,
153*b1a90f51SBiju Das                 <&cpg CPG_MOD R9A07G044_MIPI_DSI_VCLK>,
154*b1a90f51SBiju Das                 <&cpg CPG_MOD R9A07G044_MIPI_DSI_LPCLK>;
155*b1a90f51SBiju Das        clock-names = "pllclk", "sysclk", "aclk", "pclk", "vclk", "lpclk";
156*b1a90f51SBiju Das        resets = <&cpg R9A07G044_MIPI_DSI_CMN_RSTB>,
157*b1a90f51SBiju Das                 <&cpg R9A07G044_MIPI_DSI_ARESET_N>,
158*b1a90f51SBiju Das                 <&cpg R9A07G044_MIPI_DSI_PRESET_N>;
159*b1a90f51SBiju Das        reset-names = "rst", "arst", "prst";
160*b1a90f51SBiju Das        power-domains = <&cpg>;
161*b1a90f51SBiju Das
162*b1a90f51SBiju Das        ports {
163*b1a90f51SBiju Das            #address-cells = <1>;
164*b1a90f51SBiju Das            #size-cells = <0>;
165*b1a90f51SBiju Das
166*b1a90f51SBiju Das            port@0 {
167*b1a90f51SBiju Das                reg = <0>;
168*b1a90f51SBiju Das                dsi0_in: endpoint {
169*b1a90f51SBiju Das                    remote-endpoint = <&du_out_dsi0>;
170*b1a90f51SBiju Das                };
171*b1a90f51SBiju Das            };
172*b1a90f51SBiju Das
173*b1a90f51SBiju Das            port@1 {
174*b1a90f51SBiju Das                reg = <1>;
175*b1a90f51SBiju Das                dsi0_out: endpoint {
176*b1a90f51SBiju Das                    data-lanes = <1 2 3 4>;
177*b1a90f51SBiju Das                    remote-endpoint = <&adv7535_in>;
178*b1a90f51SBiju Das                };
179*b1a90f51SBiju Das            };
180*b1a90f51SBiju Das        };
181*b1a90f51SBiju Das    };
182*b1a90f51SBiju Das...
183