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