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