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