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