xref: /linux/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1038010bbSJohn Crispin# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2038010bbSJohn Crispin%YAML 1.2
3038010bbSJohn Crispin---
4038010bbSJohn Crispin$id: http://devicetree.org/schemas/clock/airoha,en7523-scu.yaml#
5038010bbSJohn Crispin$schema: http://devicetree.org/meta-schemas/core.yaml#
6038010bbSJohn Crispin
7dd3cb467SAndrew Lunntitle: EN7523 Clock
8038010bbSJohn Crispin
9038010bbSJohn Crispinmaintainers:
10038010bbSJohn Crispin  - Felix Fietkau <nbd@nbd.name>
11038010bbSJohn Crispin  - John Crispin <nbd@nbd.name>
12038010bbSJohn Crispin
13038010bbSJohn Crispindescription: |
14038010bbSJohn Crispin  This node defines the System Control Unit of the EN7523 SoC,
15038010bbSJohn Crispin  a collection of registers configuring many different aspects of the SoC.
16038010bbSJohn Crispin
17038010bbSJohn Crispin  The clock driver uses it to read and configure settings of the
18038010bbSJohn Crispin  PLL controller, which provides clocks for the CPU, the bus and
19038010bbSJohn Crispin  other SoC internal peripherals.
20038010bbSJohn Crispin
21038010bbSJohn Crispin  Each clock is assigned an identifier and client nodes use this identifier
22038010bbSJohn Crispin  to specify which clock they consume.
23038010bbSJohn Crispin
24038010bbSJohn Crispin  All these identifiers can be found in:
25038010bbSJohn Crispin  [1]: <include/dt-bindings/clock/en7523-clk.h>.
26038010bbSJohn Crispin
27038010bbSJohn Crispin  The clocks are provided inside a system controller node.
28038010bbSJohn Crispin
29038010bbSJohn Crispinproperties:
30038010bbSJohn Crispin  compatible:
31038010bbSJohn Crispin    items:
320a382be0SLorenzo Bianconi      - enum:
330a382be0SLorenzo Bianconi          - airoha,en7523-scu
340a382be0SLorenzo Bianconi          - airoha,en7581-scu
35038010bbSJohn Crispin
36038010bbSJohn Crispin  reg:
370a382be0SLorenzo Bianconi    minItems: 2
38*7aa29196SLorenzo Bianconi    maxItems: 4
39038010bbSJohn Crispin
40038010bbSJohn Crispin  "#clock-cells":
41038010bbSJohn Crispin    description:
42038010bbSJohn Crispin      The first cell indicates the clock number, see [1] for available
43038010bbSJohn Crispin      clocks.
44038010bbSJohn Crispin    const: 1
45038010bbSJohn Crispin
46*7aa29196SLorenzo Bianconi  '#reset-cells':
47*7aa29196SLorenzo Bianconi    description: ID of the controller reset line
48*7aa29196SLorenzo Bianconi    const: 1
49*7aa29196SLorenzo Bianconi
50038010bbSJohn Crispinrequired:
51038010bbSJohn Crispin  - compatible
52038010bbSJohn Crispin  - reg
53038010bbSJohn Crispin  - '#clock-cells'
54038010bbSJohn Crispin
550a382be0SLorenzo BianconiallOf:
560a382be0SLorenzo Bianconi  - if:
570a382be0SLorenzo Bianconi      properties:
580a382be0SLorenzo Bianconi        compatible:
590a382be0SLorenzo Bianconi          const: airoha,en7523-scu
600a382be0SLorenzo Bianconi    then:
610a382be0SLorenzo Bianconi      properties:
620a382be0SLorenzo Bianconi        reg:
630a382be0SLorenzo Bianconi          items:
640a382be0SLorenzo Bianconi            - description: scu base address
650a382be0SLorenzo Bianconi            - description: misc scu base address
660a382be0SLorenzo Bianconi
67*7aa29196SLorenzo Bianconi        '#reset-cells': false
68*7aa29196SLorenzo Bianconi
690a382be0SLorenzo Bianconi  - if:
700a382be0SLorenzo Bianconi      properties:
710a382be0SLorenzo Bianconi        compatible:
720a382be0SLorenzo Bianconi          const: airoha,en7581-scu
730a382be0SLorenzo Bianconi    then:
740a382be0SLorenzo Bianconi      properties:
750a382be0SLorenzo Bianconi        reg:
760a382be0SLorenzo Bianconi          items:
770a382be0SLorenzo Bianconi            - description: scu base address
780a382be0SLorenzo Bianconi            - description: misc scu base address
79*7aa29196SLorenzo Bianconi            - description: reset base address
800a382be0SLorenzo Bianconi            - description: pb scu base address
810a382be0SLorenzo Bianconi
82038010bbSJohn CrispinadditionalProperties: false
83038010bbSJohn Crispin
84038010bbSJohn Crispinexamples:
85038010bbSJohn Crispin  - |
86038010bbSJohn Crispin    #include <dt-bindings/clock/en7523-clk.h>
87038010bbSJohn Crispin    scu: system-controller@1fa20000 {
88038010bbSJohn Crispin      compatible = "airoha,en7523-scu";
89038010bbSJohn Crispin      reg = <0x1fa20000 0x400>,
90038010bbSJohn Crispin            <0x1fb00000 0x1000>;
91038010bbSJohn Crispin      #clock-cells = <1>;
92038010bbSJohn Crispin    };
93*7aa29196SLorenzo Bianconi
94*7aa29196SLorenzo Bianconi  - |
95*7aa29196SLorenzo Bianconi    soc {
96*7aa29196SLorenzo Bianconi      #address-cells = <2>;
97*7aa29196SLorenzo Bianconi      #size-cells = <2>;
98*7aa29196SLorenzo Bianconi
99*7aa29196SLorenzo Bianconi      scuclk: clock-controller@1fa20000 {
100*7aa29196SLorenzo Bianconi        compatible = "airoha,en7581-scu";
101*7aa29196SLorenzo Bianconi        reg = <0x0 0x1fa20000 0x0 0x400>,
102*7aa29196SLorenzo Bianconi              <0x0 0x1fb00000 0x0 0x90>,
103*7aa29196SLorenzo Bianconi              <0x0 0x1fb00830 0x0 0x8>,
104*7aa29196SLorenzo Bianconi              <0x0 0x1fbe3400 0x0 0xfc>;
105*7aa29196SLorenzo Bianconi              #clock-cells = <1>;
106*7aa29196SLorenzo Bianconi              #reset-cells = <1>;
107*7aa29196SLorenzo Bianconi      };
108*7aa29196SLorenzo Bianconi    };
109