xref: /freebsd/sys/contrib/device-tree/Bindings/display/allwinner,sun4i-a10-display-backend.yaml (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/display/allwinner,sun4i-a10-display-backend.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Allwinner A10 Display Engine Backend Device Tree Bindings
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Chen-Yu Tsai <wens@csie.org>
11c66ec88fSEmmanuel Vadot  - Maxime Ripard <mripard@kernel.org>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotdescription: |
14c66ec88fSEmmanuel Vadot  The display engine backend exposes layers and sprites to the system.
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadotproperties:
17c66ec88fSEmmanuel Vadot  compatible:
18c66ec88fSEmmanuel Vadot    enum:
19c66ec88fSEmmanuel Vadot      - allwinner,sun4i-a10-display-backend
20c66ec88fSEmmanuel Vadot      - allwinner,sun5i-a13-display-backend
21c66ec88fSEmmanuel Vadot      - allwinner,sun6i-a31-display-backend
22c66ec88fSEmmanuel Vadot      - allwinner,sun7i-a20-display-backend
23c66ec88fSEmmanuel Vadot      - allwinner,sun8i-a23-display-backend
24c66ec88fSEmmanuel Vadot      - allwinner,sun8i-a33-display-backend
25c66ec88fSEmmanuel Vadot      - allwinner,sun9i-a80-display-backend
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot  reg:
28c66ec88fSEmmanuel Vadot    minItems: 1
29c66ec88fSEmmanuel Vadot    maxItems: 2
30c66ec88fSEmmanuel Vadot    items:
31c66ec88fSEmmanuel Vadot      - description: Display Backend registers
32c66ec88fSEmmanuel Vadot      - description: SAT registers
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot  reg-names:
35c66ec88fSEmmanuel Vadot    minItems: 1
36c66ec88fSEmmanuel Vadot    maxItems: 2
37c66ec88fSEmmanuel Vadot    items:
38c66ec88fSEmmanuel Vadot      - const: be
39c66ec88fSEmmanuel Vadot      - const: sat
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot  interrupts:
42c66ec88fSEmmanuel Vadot    maxItems: 1
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  clocks:
45c66ec88fSEmmanuel Vadot    minItems: 3
46c66ec88fSEmmanuel Vadot    maxItems: 4
47c66ec88fSEmmanuel Vadot    items:
48c66ec88fSEmmanuel Vadot      - description: The backend interface clock
49c66ec88fSEmmanuel Vadot      - description: The backend module clock
50c66ec88fSEmmanuel Vadot      - description: The backend DRAM clock
51c66ec88fSEmmanuel Vadot      - description: The SAT clock
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot  clock-names:
54c66ec88fSEmmanuel Vadot    minItems: 3
55c66ec88fSEmmanuel Vadot    maxItems: 4
56c66ec88fSEmmanuel Vadot    items:
57c66ec88fSEmmanuel Vadot      - const: ahb
58c66ec88fSEmmanuel Vadot      - const: mod
59c66ec88fSEmmanuel Vadot      - const: ram
60c66ec88fSEmmanuel Vadot      - const: sat
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot  resets:
63c66ec88fSEmmanuel Vadot    minItems: 1
64c66ec88fSEmmanuel Vadot    maxItems: 2
65c66ec88fSEmmanuel Vadot    items:
66c66ec88fSEmmanuel Vadot      - description: The Backend reset line
67c66ec88fSEmmanuel Vadot      - description: The SAT reset line
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel Vadot  reset-names:
70c66ec88fSEmmanuel Vadot    minItems: 1
71c66ec88fSEmmanuel Vadot    maxItems: 2
72c66ec88fSEmmanuel Vadot    items:
73c66ec88fSEmmanuel Vadot      - const: be
74c66ec88fSEmmanuel Vadot      - const: sat
75c66ec88fSEmmanuel Vadot
76c66ec88fSEmmanuel Vadot  # FIXME: This should be made required eventually once every SoC will
77c66ec88fSEmmanuel Vadot  # have the MBUS declared.
78c66ec88fSEmmanuel Vadot  interconnects:
79c66ec88fSEmmanuel Vadot    maxItems: 1
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot  # FIXME: This should be made required eventually once every SoC will
82c66ec88fSEmmanuel Vadot  # have the MBUS declared.
83c66ec88fSEmmanuel Vadot  interconnect-names:
84c66ec88fSEmmanuel Vadot    const: dma-mem
85c66ec88fSEmmanuel Vadot
86c66ec88fSEmmanuel Vadot  ports:
87*5def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
88c66ec88fSEmmanuel Vadot
89c66ec88fSEmmanuel Vadot    properties:
90c66ec88fSEmmanuel Vadot      port@0:
91*5def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
92*5def4c47SEmmanuel Vadot        description:
93c66ec88fSEmmanuel Vadot          Input endpoints of the controller.
94c66ec88fSEmmanuel Vadot
95c66ec88fSEmmanuel Vadot      port@1:
96*5def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
97*5def4c47SEmmanuel Vadot        description:
98c66ec88fSEmmanuel Vadot          Output endpoints of the controller.
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot    required:
101c66ec88fSEmmanuel Vadot      - port@0
102c66ec88fSEmmanuel Vadot      - port@1
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel Vadotrequired:
105c66ec88fSEmmanuel Vadot  - compatible
106c66ec88fSEmmanuel Vadot  - reg
107c66ec88fSEmmanuel Vadot  - interrupts
108c66ec88fSEmmanuel Vadot  - clocks
109c66ec88fSEmmanuel Vadot  - clock-names
110c66ec88fSEmmanuel Vadot  - resets
111c66ec88fSEmmanuel Vadot  - ports
112c66ec88fSEmmanuel Vadot
113c66ec88fSEmmanuel VadotadditionalProperties: false
114c66ec88fSEmmanuel Vadot
115c66ec88fSEmmanuel Vadotif:
116c66ec88fSEmmanuel Vadot  properties:
117c66ec88fSEmmanuel Vadot    compatible:
118c66ec88fSEmmanuel Vadot      contains:
119c66ec88fSEmmanuel Vadot        const: allwinner,sun8i-a33-display-backend
120c66ec88fSEmmanuel Vadot
121c66ec88fSEmmanuel Vadotthen:
122c66ec88fSEmmanuel Vadot  properties:
123c66ec88fSEmmanuel Vadot    reg:
124c66ec88fSEmmanuel Vadot      minItems: 2
125c66ec88fSEmmanuel Vadot
126c66ec88fSEmmanuel Vadot    reg-names:
127c66ec88fSEmmanuel Vadot      minItems: 2
128c66ec88fSEmmanuel Vadot
129c66ec88fSEmmanuel Vadot    clocks:
130c66ec88fSEmmanuel Vadot      minItems: 4
131c66ec88fSEmmanuel Vadot
132c66ec88fSEmmanuel Vadot    clock-names:
133c66ec88fSEmmanuel Vadot      minItems: 4
134c66ec88fSEmmanuel Vadot
135c66ec88fSEmmanuel Vadot    resets:
136c66ec88fSEmmanuel Vadot      minItems: 2
137c66ec88fSEmmanuel Vadot
138c66ec88fSEmmanuel Vadot    reset-names:
139c66ec88fSEmmanuel Vadot      minItems: 2
140c66ec88fSEmmanuel Vadot
141c66ec88fSEmmanuel Vadot  required:
142c66ec88fSEmmanuel Vadot    - reg-names
143c66ec88fSEmmanuel Vadot    - reset-names
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadotelse:
146c66ec88fSEmmanuel Vadot  properties:
147c66ec88fSEmmanuel Vadot    reg:
148c66ec88fSEmmanuel Vadot      maxItems: 1
149c66ec88fSEmmanuel Vadot
150c66ec88fSEmmanuel Vadot    reg-names:
151c66ec88fSEmmanuel Vadot      maxItems: 1
152c66ec88fSEmmanuel Vadot
153c66ec88fSEmmanuel Vadot    clocks:
154c66ec88fSEmmanuel Vadot      maxItems: 3
155c66ec88fSEmmanuel Vadot
156c66ec88fSEmmanuel Vadot    clock-names:
157c66ec88fSEmmanuel Vadot      maxItems: 3
158c66ec88fSEmmanuel Vadot
159c66ec88fSEmmanuel Vadot    resets:
160c66ec88fSEmmanuel Vadot      maxItems: 1
161c66ec88fSEmmanuel Vadot
162c66ec88fSEmmanuel Vadot    reset-names:
163c66ec88fSEmmanuel Vadot      maxItems: 1
164c66ec88fSEmmanuel Vadot
165c66ec88fSEmmanuel Vadotexamples:
166c66ec88fSEmmanuel Vadot  - |
167c66ec88fSEmmanuel Vadot    /*
168c66ec88fSEmmanuel Vadot     * This comes from the clock/sun4i-a10-ccu.h and
169c66ec88fSEmmanuel Vadot     * reset/sun4i-a10-ccu.h headers, but we can't include them since
170c66ec88fSEmmanuel Vadot     * it would trigger a bunch of warnings for redefinitions of
171c66ec88fSEmmanuel Vadot     * symbols with the other example.
172c66ec88fSEmmanuel Vadot     */
173c66ec88fSEmmanuel Vadot
174c66ec88fSEmmanuel Vadot    #define CLK_AHB_DE_BE0	42
175c66ec88fSEmmanuel Vadot    #define CLK_DRAM_DE_BE0	140
176c66ec88fSEmmanuel Vadot    #define CLK_DE_BE0		144
177c66ec88fSEmmanuel Vadot    #define RST_DE_BE0		5
178c66ec88fSEmmanuel Vadot
179c66ec88fSEmmanuel Vadot    display-backend@1e60000 {
180c66ec88fSEmmanuel Vadot        compatible = "allwinner,sun4i-a10-display-backend";
181c66ec88fSEmmanuel Vadot        reg = <0x01e60000 0x10000>;
182c66ec88fSEmmanuel Vadot        interrupts = <47>;
183c66ec88fSEmmanuel Vadot        clocks = <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_DE_BE0>,
184c66ec88fSEmmanuel Vadot                 <&ccu CLK_DRAM_DE_BE0>;
185c66ec88fSEmmanuel Vadot        clock-names = "ahb", "mod",
186c66ec88fSEmmanuel Vadot                      "ram";
187c66ec88fSEmmanuel Vadot        resets = <&ccu RST_DE_BE0>;
188c66ec88fSEmmanuel Vadot
189c66ec88fSEmmanuel Vadot        ports {
190c66ec88fSEmmanuel Vadot            #address-cells = <1>;
191c66ec88fSEmmanuel Vadot            #size-cells = <0>;
192c66ec88fSEmmanuel Vadot
193c66ec88fSEmmanuel Vadot            port@0 {
194c66ec88fSEmmanuel Vadot                #address-cells = <1>;
195c66ec88fSEmmanuel Vadot                #size-cells = <0>;
196c66ec88fSEmmanuel Vadot                reg = <0>;
197c66ec88fSEmmanuel Vadot
198c66ec88fSEmmanuel Vadot                endpoint@0 {
199c66ec88fSEmmanuel Vadot                    reg = <0>;
200c66ec88fSEmmanuel Vadot                    remote-endpoint = <&fe0_out_be0>;
201c66ec88fSEmmanuel Vadot                };
202c66ec88fSEmmanuel Vadot
203c66ec88fSEmmanuel Vadot                endpoint@1 {
204c66ec88fSEmmanuel Vadot                    reg = <1>;
205c66ec88fSEmmanuel Vadot                    remote-endpoint = <&fe1_out_be0>;
206c66ec88fSEmmanuel Vadot                };
207c66ec88fSEmmanuel Vadot            };
208c66ec88fSEmmanuel Vadot
209c66ec88fSEmmanuel Vadot            port@1 {
210c66ec88fSEmmanuel Vadot                #address-cells = <1>;
211c66ec88fSEmmanuel Vadot                #size-cells = <0>;
212c66ec88fSEmmanuel Vadot                reg = <1>;
213c66ec88fSEmmanuel Vadot
214c66ec88fSEmmanuel Vadot                endpoint@0 {
215c66ec88fSEmmanuel Vadot                    reg = <0>;
216c66ec88fSEmmanuel Vadot                    remote-endpoint = <&tcon0_in_be0>;
217c66ec88fSEmmanuel Vadot                };
218c66ec88fSEmmanuel Vadot
219c66ec88fSEmmanuel Vadot                endpoint@1 {
220c66ec88fSEmmanuel Vadot                    reg = <1>;
221c66ec88fSEmmanuel Vadot                    remote-endpoint = <&tcon1_in_be0>;
222c66ec88fSEmmanuel Vadot                };
223c66ec88fSEmmanuel Vadot            };
224c66ec88fSEmmanuel Vadot        };
225c66ec88fSEmmanuel Vadot    };
226c66ec88fSEmmanuel Vadot
227c66ec88fSEmmanuel Vadot  - |
228c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
229c66ec88fSEmmanuel Vadot
230c66ec88fSEmmanuel Vadot    /*
231c66ec88fSEmmanuel Vadot     * This comes from the clock/sun8i-a23-a33-ccu.h and
232c66ec88fSEmmanuel Vadot     * reset/sun8i-a23-a33-ccu.h headers, but we can't include them
233c66ec88fSEmmanuel Vadot     * since it would trigger a bunch of warnings for redefinitions of
234c66ec88fSEmmanuel Vadot     * symbols with the other example.
235c66ec88fSEmmanuel Vadot     */
236c66ec88fSEmmanuel Vadot
237c66ec88fSEmmanuel Vadot    #define CLK_BUS_DE_BE	40
238c66ec88fSEmmanuel Vadot    #define CLK_BUS_SAT		46
239c66ec88fSEmmanuel Vadot    #define CLK_DRAM_DE_BE	84
240c66ec88fSEmmanuel Vadot    #define CLK_DE_BE		85
241c66ec88fSEmmanuel Vadot    #define RST_BUS_DE_BE	21
242c66ec88fSEmmanuel Vadot    #define RST_BUS_SAT		27
243c66ec88fSEmmanuel Vadot
244c66ec88fSEmmanuel Vadot    display-backend@1e60000 {
245c66ec88fSEmmanuel Vadot        compatible = "allwinner,sun8i-a33-display-backend";
246c66ec88fSEmmanuel Vadot        reg = <0x01e60000 0x10000>, <0x01e80000 0x1000>;
247c66ec88fSEmmanuel Vadot        reg-names = "be", "sat";
248c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
249c66ec88fSEmmanuel Vadot        clocks = <&ccu CLK_BUS_DE_BE>, <&ccu CLK_DE_BE>,
250c66ec88fSEmmanuel Vadot                 <&ccu CLK_DRAM_DE_BE>, <&ccu CLK_BUS_SAT>;
251c66ec88fSEmmanuel Vadot        clock-names = "ahb", "mod",
252c66ec88fSEmmanuel Vadot                      "ram", "sat";
253c66ec88fSEmmanuel Vadot        resets = <&ccu RST_BUS_DE_BE>, <&ccu RST_BUS_SAT>;
254c66ec88fSEmmanuel Vadot        reset-names = "be", "sat";
255c66ec88fSEmmanuel Vadot
256c66ec88fSEmmanuel Vadot        ports {
257c66ec88fSEmmanuel Vadot            #address-cells = <1>;
258c66ec88fSEmmanuel Vadot            #size-cells = <0>;
259c66ec88fSEmmanuel Vadot
260c66ec88fSEmmanuel Vadot            port@0 {
261c66ec88fSEmmanuel Vadot                reg = <0>;
262c66ec88fSEmmanuel Vadot
263c66ec88fSEmmanuel Vadot                endpoint {
264c66ec88fSEmmanuel Vadot                    remote-endpoint = <&fe0_out_be0>;
265c66ec88fSEmmanuel Vadot                };
266c66ec88fSEmmanuel Vadot            };
267c66ec88fSEmmanuel Vadot
268c66ec88fSEmmanuel Vadot            port@1 {
269c66ec88fSEmmanuel Vadot                reg = <1>;
270c66ec88fSEmmanuel Vadot
271c66ec88fSEmmanuel Vadot                endpoint {
272c66ec88fSEmmanuel Vadot                    remote-endpoint = <&drc0_in_be0>;
273c66ec88fSEmmanuel Vadot                };
274c66ec88fSEmmanuel Vadot            };
275c66ec88fSEmmanuel Vadot        };
276c66ec88fSEmmanuel Vadot    };
277c66ec88fSEmmanuel Vadot
278c66ec88fSEmmanuel Vadot...
279