1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/rtc/allwinner,sun6i-a31-rtc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Allwinner A31 RTC Device Tree Bindings
8
9maintainers:
10  - Chen-Yu Tsai <wens@csie.org>
11  - Maxime Ripard <mripard@kernel.org>
12
13properties:
14  "#clock-cells":
15    const: 1
16
17  compatible:
18    oneOf:
19      - enum:
20          - allwinner,sun6i-a31-rtc
21          - allwinner,sun8i-a23-rtc
22          - allwinner,sun8i-h3-rtc
23          - allwinner,sun8i-r40-rtc
24          - allwinner,sun8i-v3-rtc
25          - allwinner,sun50i-h5-rtc
26          - allwinner,sun50i-h6-rtc
27      - items:
28          - const: allwinner,sun50i-a64-rtc
29          - const: allwinner,sun8i-h3-rtc
30
31  reg:
32    maxItems: 1
33
34  interrupts:
35    minItems: 1
36    items:
37      - description: RTC Alarm 0
38      - description: RTC Alarm 1
39
40  clocks:
41    maxItems: 1
42
43  clock-output-names:
44    minItems: 1
45    maxItems: 3
46    description:
47      The RTC provides up to three clocks
48        - the Low Frequency Oscillator or LOSC, at index 0,
49        - the Low Frequency Oscillator External output (X32KFOUT in
50          the datasheet), at index 1,
51        - the Internal Oscillator, at index 2.
52
53allOf:
54  - $ref: "rtc.yaml#"
55  - if:
56      properties:
57        compatible:
58          contains:
59            const: allwinner,sun6i-a31-rtc
60
61    then:
62      properties:
63        clock-output-names:
64          minItems: 1
65          maxItems: 1
66
67  - if:
68      properties:
69        compatible:
70          contains:
71            enum:
72              - allwinner,sun8i-a23-rtc
73              - allwinner,sun8i-r40-rtc
74              - allwinner,sun8i-v3-rtc
75
76    then:
77      properties:
78        clock-output-names:
79          minItems: 2
80          maxItems: 2
81
82  - if:
83      properties:
84        compatible:
85          contains:
86            enum:
87              - allwinner,sun8i-h3-rtc
88              - allwinner,sun50i-h5-rtc
89              - allwinner,sun50i-h6-rtc
90
91    then:
92      properties:
93        clock-output-names:
94          minItems: 3
95          maxItems: 3
96
97  - if:
98      properties:
99        compatible:
100          contains:
101            const: allwinner,sun8i-r40-rtc
102
103    then:
104      properties:
105        interrupts:
106          minItems: 1
107          maxItems: 1
108
109    else:
110      properties:
111        interrupts:
112          minItems: 2
113          maxItems: 2
114
115required:
116  - "#clock-cells"
117  - compatible
118  - reg
119  - interrupts
120  - clock-output-names
121
122additionalProperties: false
123
124examples:
125  - |
126    rtc: rtc@1f00000 {
127        compatible = "allwinner,sun6i-a31-rtc";
128        reg = <0x01f00000 0x400>;
129        interrupts = <0 40 4>, <0 41 4>;
130        clock-output-names = "osc32k";
131        clocks = <&ext_osc32k>;
132        #clock-cells = <1>;
133    };
134
135...
136