Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / clock / atmel,at91rm9200-pmc.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/clock/atmel,at91rm9200-pmc.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Atmel Power Management Controller (PMC)
8
9 maintainers:
10   - Claudiu Beznea <claudiu.beznea@microchip.com>
11
12 description:
13   The power management controller optimizes power consumption by controlling all
14   system and user peripheral clocks. The PMC enables/disables the clock inputs
15   to many of the peripherals and to the processor.
16
17 properties:
18   compatible:
19     oneOf:
20       - items:
21           - const: atmel,at91sam9g20-pmc
22           - const: atmel,at91sam9260-pmc
23           - const: syscon
24       - items:
25           - enum:
26               - atmel,at91sam9g15-pmc
27               - atmel,at91sam9g25-pmc
28               - atmel,at91sam9g35-pmc
29               - atmel,at91sam9x25-pmc
30               - atmel,at91sam9x35-pmc
31           - const: atmel,at91sam9x5-pmc
32           - const: syscon
33       - items:
34           - enum:
35               - atmel,at91rm9200-pmc
36               - atmel,at91sam9260-pmc
37               - atmel,at91sam9g45-pmc
38               - atmel,at91sam9n12-pmc
39               - atmel,at91sam9rl-pmc
40               - atmel,at91sam9x5-pmc
41               - atmel,sama5d2-pmc
42               - atmel,sama5d3-pmc
43               - atmel,sama5d4-pmc
44               - microchip,sam9x60-pmc
45               - microchip,sama7g5-pmc
46           - const: syscon
47
48   reg:
49     maxItems: 1
50
51   interrupts:
52     maxItems: 1
53
54   "#clock-cells":
55     description: |
56       - 1st cell is the clock type, one of PMC_TYPE_CORE, PMC_TYPE_SYSTEM,
57         PMC_TYPE_PERIPHERAL, PMC_TYPE_GCK, PMC_TYPE_PROGRAMMABLE (as defined
58         in <dt-bindings/clock/at91.h>)
59       - 2nd cell is the clock identifier as defined in <dt-bindings/clock/at91.h
60         (for core clocks) or as defined in datasheet (for system, peripheral,
61         gck and programmable clocks).
62     const: 2
63
64   clocks:
65     minItems: 2
66     maxItems: 3
67
68   clock-names:
69     minItems: 2
70     maxItems: 3
71
72   atmel,osc-bypass:
73     description: set when a clock signal is directly provided on XIN
74     type: boolean
75
76 required:
77   - compatible
78   - reg
79   - interrupts
80   - "#clock-cells"
81   - clocks
82   - clock-names
83
84 allOf:
85   - if:
86       properties:
87         compatible:
88           contains:
89             enum:
90               - microchip,sam9x60-pmc
91               - microchip,sama7g5-pmc
92     then:
93       properties:
94         clocks:
95           minItems: 3
96           maxItems: 3
97         clock-names:
98           items:
99             - const: td_slck
100             - const: md_slck
101             - const: main_xtal
102
103   - if:
104       properties:
105         compatible:
106           contains:
107             enum:
108               - atmel,at91rm9200-pmc
109               - atmel,at91sam9260-pmc
110               - atmel,at91sam9g20-pmc
111     then:
112       properties:
113         clocks:
114           minItems: 2
115           maxItems: 2
116         clock-names:
117           items:
118             - const: slow_xtal
119             - const: main_xtal
120
121   - if:
122       properties:
123         compatible:
124           contains:
125             enum:
126               - atmel,sama5d2-pmc
127               - atmel,sama5d3-pmc
128               - atmel,sama5d4-pmc
129     then:
130       properties:
131         clocks:
132           minItems: 2
133           maxItems: 2
134         clock-names:
135           items:
136             - const: slow_clk
137             - const: main_xtal
138
139 additionalProperties: false
140
141 examples:
142   - |
143     #include <dt-bindings/interrupt-controller/irq.h>
144
145     pmc: clock-controller@f0018000 {
146         compatible = "atmel,sama5d4-pmc", "syscon";
147         reg = <0xf0018000 0x120>;
148         interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
149         #clock-cells = <2>;
150         clocks = <&clk32k>, <&main_xtal>;
151         clock-names = "slow_clk", "main_xtal";
152     };
153
154 ...