xref: /linux/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml (revision 7f71507851fc7764b36a3221839607d3a45c2025)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/clock/airoha,en7523-scu.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: EN7523 Clock
8
9maintainers:
10  - Felix Fietkau <nbd@nbd.name>
11  - John Crispin <nbd@nbd.name>
12
13description: |
14  This node defines the System Control Unit of the EN7523 SoC,
15  a collection of registers configuring many different aspects of the SoC.
16
17  The clock driver uses it to read and configure settings of the
18  PLL controller, which provides clocks for the CPU, the bus and
19  other SoC internal peripherals.
20
21  Each clock is assigned an identifier and client nodes use this identifier
22  to specify which clock they consume.
23
24  All these identifiers can be found in:
25  [1]: <include/dt-bindings/clock/en7523-clk.h>.
26
27  The clocks are provided inside a system controller node.
28
29properties:
30  compatible:
31    items:
32      - enum:
33          - airoha,en7523-scu
34          - airoha,en7581-scu
35
36  reg:
37    items:
38      - description: scu base address
39      - description: misc scu base address
40    minItems: 1
41
42  "#clock-cells":
43    description:
44      The first cell indicates the clock number, see [1] for available
45      clocks.
46    const: 1
47
48  '#reset-cells':
49    description: ID of the controller reset line
50    const: 1
51
52required:
53  - compatible
54  - reg
55  - '#clock-cells'
56
57allOf:
58  - if:
59      properties:
60        compatible:
61          const: airoha,en7523-scu
62    then:
63      properties:
64        reg:
65          minItems: 2
66
67        '#reset-cells': false
68
69  - if:
70      properties:
71        compatible:
72          const: airoha,en7581-scu
73    then:
74      properties:
75        reg:
76          maxItems: 1
77
78additionalProperties: false
79
80examples:
81  - |
82    #include <dt-bindings/clock/en7523-clk.h>
83    scu: system-controller@1fa20000 {
84      compatible = "airoha,en7523-scu";
85      reg = <0x1fa20000 0x400>,
86            <0x1fb00000 0x1000>;
87      #clock-cells = <1>;
88    };
89
90  - |
91    soc {
92      #address-cells = <2>;
93      #size-cells = <2>;
94
95      scuclk: clock-controller@1fb00000 {
96        compatible = "airoha,en7581-scu";
97        reg = <0x0 0x1fb00000 0x0 0x970>;
98              #clock-cells = <1>;
99              #reset-cells = <1>;
100      };
101    };
102