1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/allwinner,sun8i-a83t-de2-mixer.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Allwinner Display Engine 2.0 Mixer Device Tree Bindings
8
9maintainers:
10  - Chen-Yu Tsai <wens@csie.org>
11  - Maxime Ripard <mripard@kernel.org>
12
13properties:
14  compatible:
15    enum:
16      - allwinner,sun8i-a83t-de2-mixer-0
17      - allwinner,sun8i-a83t-de2-mixer-1
18      - allwinner,sun8i-h3-de2-mixer-0
19      - allwinner,sun8i-r40-de2-mixer-0
20      - allwinner,sun8i-r40-de2-mixer-1
21      - allwinner,sun8i-v3s-de2-mixer
22      - allwinner,sun50i-a64-de2-mixer-0
23      - allwinner,sun50i-a64-de2-mixer-1
24      - allwinner,sun50i-h6-de3-mixer-0
25
26  reg:
27    maxItems: 1
28
29  clocks:
30    items:
31      - description: The mixer interface clock
32      - description: The mixer module clock
33
34  clock-names:
35    items:
36      - const: bus
37      - const: mod
38
39  resets:
40    maxItems: 1
41
42  ports:
43    type: object
44    description: |
45      A ports node with endpoint definitions as defined in
46      Documentation/devicetree/bindings/media/video-interfaces.txt.
47
48    properties:
49      "#address-cells":
50        const: 1
51
52      "#size-cells":
53        const: 0
54
55      port@0:
56        type: object
57        description: |
58          Input endpoints of the controller.
59
60      port@1:
61        type: object
62        description: |
63          Output endpoints of the controller.
64
65    required:
66      - "#address-cells"
67      - "#size-cells"
68      - port@1
69
70    additionalProperties: false
71
72required:
73  - compatible
74  - reg
75  - clocks
76  - clock-names
77  - resets
78  - ports
79
80additionalProperties: false
81
82examples:
83  - |
84    #include <dt-bindings/clock/sun8i-de2.h>
85    #include <dt-bindings/reset/sun8i-de2.h>
86
87    mixer0: mixer@1100000 {
88        compatible = "allwinner,sun8i-a83t-de2-mixer-0";
89        reg = <0x01100000 0x100000>;
90        clocks = <&display_clocks CLK_BUS_MIXER0>,
91                 <&display_clocks CLK_MIXER0>;
92        clock-names = "bus",
93                      "mod";
94        resets = <&display_clocks RST_MIXER0>;
95
96        ports {
97            #address-cells = <1>;
98            #size-cells = <0>;
99
100            mixer0_out: port@1 {
101                #address-cells = <1>;
102                #size-cells = <0>;
103                reg = <1>;
104
105                mixer0_out_tcon0: endpoint@0 {
106                    reg = <0>;
107                    remote-endpoint = <&tcon0_in_mixer0>;
108                };
109
110                mixer0_out_tcon1: endpoint@1 {
111                    reg = <1>;
112                    remote-endpoint = <&tcon1_in_mixer0>;
113                };
114            };
115        };
116    };
117
118...
119