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