File Index
Files and directories
Sign in
FILE

allwinner,sun4i-a10-display-backend.yaml

File preview with syntax highlighting.

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