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