Linux Audio

Check our new training course

Real-Time Linux with PREEMPT_RT training

Feb 18-20, 2025
Register
Loading...
  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
  7title: Atmel Power Management Controller (PMC)
  8
  9maintainers:
 10  - Claudiu Beznea <claudiu.beznea@microchip.com>
 11
 12description:
 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
 17properties:
 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
 76required:
 77  - compatible
 78  - reg
 79  - interrupts
 80  - "#clock-cells"
 81  - clocks
 82  - clock-names
 83
 84allOf:
 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
139additionalProperties: false
140
141examples:
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...