1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/allwinner,sun4i-a10-display-engine.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Allwinner A10 Display Engine Pipeline
8
9maintainers:
10  - Chen-Yu Tsai <wens@csie.org>
11  - Maxime Ripard <mripard@kernel.org>
12
13description: |
14  The display engine pipeline (and its entry point, since it can be
15  either directly the backend or the frontend) is represented as an
16  extra node.
17
18  The Allwinner A10 Display pipeline is composed of several components
19  that are going to be documented below:
20
21  For all connections between components up to the TCONs in the
22  display pipeline, when there are multiple components of the same
23  type at the same depth, the local endpoint ID must be the same as
24  the remote component's index. For example, if the remote endpoint is
25  Frontend 1, then the local endpoint ID must be 1.
26
27  Frontend 0  [0] ------- [0]  Backend 0  [0] ------- [0]  TCON 0
28              [1] --   -- [1]             [1] --   -- [1]
29                    \ /                         \ /
30                     X                           X
31                    / \                         / \
32              [0] --   -- [0]             [0] --   -- [0]
33  Frontend 1  [1] ------- [1]  Backend 1  [1] ------- [1]  TCON 1
34
35  For a two pipeline system such as the one depicted above, the lines
36  represent the connections between the components, while the numbers
37  within the square brackets corresponds to the ID of the local endpoint.
38
39  The same rule also applies to DE 2.0 mixer-TCON connections:
40
41  Mixer 0  [0] ----------- [0]  TCON 0
42           [1] ----   ---- [1]
43                   \ /
44                    X
45                   / \
46           [0] ----   ---- [0]
47  Mixer 1  [1] ----------- [1]  TCON 1
48
49properties:
50  compatible:
51    enum:
52      - allwinner,sun4i-a10-display-engine
53      - allwinner,sun5i-a10s-display-engine
54      - allwinner,sun5i-a13-display-engine
55      - allwinner,sun6i-a31-display-engine
56      - allwinner,sun6i-a31s-display-engine
57      - allwinner,sun7i-a20-display-engine
58      - allwinner,sun8i-a23-display-engine
59      - allwinner,sun8i-a33-display-engine
60      - allwinner,sun8i-a83t-display-engine
61      - allwinner,sun8i-h3-display-engine
62      - allwinner,sun8i-r40-display-engine
63      - allwinner,sun8i-v3s-display-engine
64      - allwinner,sun9i-a80-display-engine
65      - allwinner,sun20i-d1-display-engine
66      - allwinner,sun50i-a64-display-engine
67      - allwinner,sun50i-h6-display-engine
68
69  allwinner,pipelines:
70    $ref: /schemas/types.yaml#/definitions/phandle-array
71    minItems: 1
72    maxItems: 2
73    items:
74      maxItems: 1
75    description: |
76      Available display engine frontends (DE 1.0) or mixers (DE
77      2.0/3.0) available.
78
79required:
80  - compatible
81  - allwinner,pipelines
82
83additionalProperties: false
84
85if:
86  properties:
87    compatible:
88      contains:
89        enum:
90          - allwinner,sun4i-a10-display-engine
91          - allwinner,sun6i-a31-display-engine
92          - allwinner,sun6i-a31s-display-engine
93          - allwinner,sun7i-a20-display-engine
94          - allwinner,sun8i-a83t-display-engine
95          - allwinner,sun8i-r40-display-engine
96          - allwinner,sun9i-a80-display-engine
97          - allwinner,sun20i-d1-display-engine
98          - allwinner,sun50i-a64-display-engine
99
100then:
101  properties:
102    allwinner,pipelines:
103      minItems: 2
104
105else:
106  properties:
107    allwinner,pipelines:
108      maxItems: 1
109
110examples:
111  - |
112      de: display-engine {
113          compatible = "allwinner,sun4i-a10-display-engine";
114          allwinner,pipelines = <&fe0>, <&fe1>;
115      };
116
117...
118