1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/allwinner,sun6i-a31-mipi-dsi.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Allwinner A31 MIPI-DSI Controller 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,sun6i-a31-mipi-dsi
17      - allwinner,sun50i-a64-mipi-dsi
18
19  reg:
20    maxItems: 1
21
22  interrupts:
23    maxItems: 1
24
25  clocks:
26    minItems: 1
27    maxItems: 2
28    items:
29      - description: Bus Clock
30      - description: Module Clock
31
32  clock-names:
33    items:
34      - const: bus
35      - const: mod
36
37  resets:
38    maxItems: 1
39
40  vcc-dsi-supply:
41    description: VCC-DSI power supply of the DSI encoder
42
43  phys:
44    maxItems: 1
45
46  phy-names:
47    const: dphy
48
49  port:
50    type: object
51    description:
52      A port node with endpoint definitions as defined in
53      Documentation/devicetree/bindings/media/video-interfaces.txt. That
54      port should be the input endpoint, usually coming from the
55      associated TCON.
56
57required:
58  - compatible
59  - reg
60  - interrupts
61  - clocks
62  - phys
63  - phy-names
64  - resets
65  - vcc-dsi-supply
66  - port
67
68allOf:
69  - $ref: dsi-controller.yaml#
70  - if:
71      properties:
72        compatible:
73          contains:
74            const: allwinner,sun6i-a31-mipi-dsi
75
76    then:
77      properties:
78        clocks:
79          minItems: 2
80
81      required:
82        - clock-names
83
84  - if:
85      properties:
86        compatible:
87          contains:
88            const: allwinner,sun50i-a64-mipi-dsi
89
90    then:
91      properties:
92        clocks:
93          minItems: 1
94
95unevaluatedProperties: false
96
97examples:
98  - |
99    dsi0: dsi@1ca0000 {
100        compatible = "allwinner,sun6i-a31-mipi-dsi";
101        reg = <0x01ca0000 0x1000>;
102        interrupts = <0 89 4>;
103        clocks = <&ccu 23>, <&ccu 96>;
104        clock-names = "bus", "mod";
105        resets = <&ccu 4>;
106        phys = <&dphy0>;
107        phy-names = "dphy";
108        vcc-dsi-supply = <&reg_dcdc1>;
109        #address-cells = <1>;
110        #size-cells = <0>;
111
112        panel@0 {
113                compatible = "bananapi,lhr050h41", "ilitek,ili9881c";
114                reg = <0>;
115                power-supply = <&reg_display>;
116                reset-gpios = <&r_pio 0 5 1>; /* PL05 */
117                backlight = <&pwm_bl>;
118        };
119
120        port {
121            dsi0_in_tcon0: endpoint {
122                remote-endpoint = <&tcon0_out_dsi0>;
123            };
124        };
125    };
126
127...
128