xref: /freebsd/sys/contrib/device-tree/Bindings/clock/airoha,en7523-scu.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2d5b0e70fSEmmanuel Vadot%YAML 1.2
3d5b0e70fSEmmanuel Vadot---
4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/airoha,en7523-scu.yaml#
5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6d5b0e70fSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: EN7523 Clock
8d5b0e70fSEmmanuel Vadot
9d5b0e70fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Felix Fietkau <nbd@nbd.name>
11d5b0e70fSEmmanuel Vadot  - John Crispin <nbd@nbd.name>
12d5b0e70fSEmmanuel Vadot
13d5b0e70fSEmmanuel Vadotdescription: |
14d5b0e70fSEmmanuel Vadot  This node defines the System Control Unit of the EN7523 SoC,
15d5b0e70fSEmmanuel Vadot  a collection of registers configuring many different aspects of the SoC.
16d5b0e70fSEmmanuel Vadot
17d5b0e70fSEmmanuel Vadot  The clock driver uses it to read and configure settings of the
18d5b0e70fSEmmanuel Vadot  PLL controller, which provides clocks for the CPU, the bus and
19d5b0e70fSEmmanuel Vadot  other SoC internal peripherals.
20d5b0e70fSEmmanuel Vadot
21d5b0e70fSEmmanuel Vadot  Each clock is assigned an identifier and client nodes use this identifier
22d5b0e70fSEmmanuel Vadot  to specify which clock they consume.
23d5b0e70fSEmmanuel Vadot
24d5b0e70fSEmmanuel Vadot  All these identifiers can be found in:
25d5b0e70fSEmmanuel Vadot  [1]: <include/dt-bindings/clock/en7523-clk.h>.
26d5b0e70fSEmmanuel Vadot
27d5b0e70fSEmmanuel Vadot  The clocks are provided inside a system controller node.
28d5b0e70fSEmmanuel Vadot
29d5b0e70fSEmmanuel Vadotproperties:
30d5b0e70fSEmmanuel Vadot  compatible:
31d5b0e70fSEmmanuel Vadot    items:
327d0873ebSEmmanuel Vadot      - enum:
337d0873ebSEmmanuel Vadot          - airoha,en7523-scu
347d0873ebSEmmanuel Vadot          - airoha,en7581-scu
35d5b0e70fSEmmanuel Vadot
36d5b0e70fSEmmanuel Vadot  reg:
377d0873ebSEmmanuel Vadot    minItems: 2
38*0e8011faSEmmanuel Vadot    maxItems: 4
39d5b0e70fSEmmanuel Vadot
40d5b0e70fSEmmanuel Vadot  "#clock-cells":
41d5b0e70fSEmmanuel Vadot    description:
42d5b0e70fSEmmanuel Vadot      The first cell indicates the clock number, see [1] for available
43d5b0e70fSEmmanuel Vadot      clocks.
44d5b0e70fSEmmanuel Vadot    const: 1
45d5b0e70fSEmmanuel Vadot
46*0e8011faSEmmanuel Vadot  '#reset-cells':
47*0e8011faSEmmanuel Vadot    description: ID of the controller reset line
48*0e8011faSEmmanuel Vadot    const: 1
49*0e8011faSEmmanuel Vadot
50d5b0e70fSEmmanuel Vadotrequired:
51d5b0e70fSEmmanuel Vadot  - compatible
52d5b0e70fSEmmanuel Vadot  - reg
53d5b0e70fSEmmanuel Vadot  - '#clock-cells'
54d5b0e70fSEmmanuel Vadot
557d0873ebSEmmanuel VadotallOf:
567d0873ebSEmmanuel Vadot  - if:
577d0873ebSEmmanuel Vadot      properties:
587d0873ebSEmmanuel Vadot        compatible:
597d0873ebSEmmanuel Vadot          const: airoha,en7523-scu
607d0873ebSEmmanuel Vadot    then:
617d0873ebSEmmanuel Vadot      properties:
627d0873ebSEmmanuel Vadot        reg:
637d0873ebSEmmanuel Vadot          items:
647d0873ebSEmmanuel Vadot            - description: scu base address
657d0873ebSEmmanuel Vadot            - description: misc scu base address
667d0873ebSEmmanuel Vadot
67*0e8011faSEmmanuel Vadot        '#reset-cells': false
68*0e8011faSEmmanuel Vadot
697d0873ebSEmmanuel Vadot  - if:
707d0873ebSEmmanuel Vadot      properties:
717d0873ebSEmmanuel Vadot        compatible:
727d0873ebSEmmanuel Vadot          const: airoha,en7581-scu
737d0873ebSEmmanuel Vadot    then:
747d0873ebSEmmanuel Vadot      properties:
757d0873ebSEmmanuel Vadot        reg:
767d0873ebSEmmanuel Vadot          items:
777d0873ebSEmmanuel Vadot            - description: scu base address
787d0873ebSEmmanuel Vadot            - description: misc scu base address
79*0e8011faSEmmanuel Vadot            - description: reset base address
807d0873ebSEmmanuel Vadot            - description: pb scu base address
817d0873ebSEmmanuel Vadot
82d5b0e70fSEmmanuel VadotadditionalProperties: false
83d5b0e70fSEmmanuel Vadot
84d5b0e70fSEmmanuel Vadotexamples:
85d5b0e70fSEmmanuel Vadot  - |
86d5b0e70fSEmmanuel Vadot    #include <dt-bindings/clock/en7523-clk.h>
87d5b0e70fSEmmanuel Vadot    scu: system-controller@1fa20000 {
88d5b0e70fSEmmanuel Vadot      compatible = "airoha,en7523-scu";
89d5b0e70fSEmmanuel Vadot      reg = <0x1fa20000 0x400>,
90d5b0e70fSEmmanuel Vadot            <0x1fb00000 0x1000>;
91d5b0e70fSEmmanuel Vadot      #clock-cells = <1>;
92d5b0e70fSEmmanuel Vadot    };
93*0e8011faSEmmanuel Vadot
94*0e8011faSEmmanuel Vadot  - |
95*0e8011faSEmmanuel Vadot    soc {
96*0e8011faSEmmanuel Vadot      #address-cells = <2>;
97*0e8011faSEmmanuel Vadot      #size-cells = <2>;
98*0e8011faSEmmanuel Vadot
99*0e8011faSEmmanuel Vadot      scuclk: clock-controller@1fa20000 {
100*0e8011faSEmmanuel Vadot        compatible = "airoha,en7581-scu";
101*0e8011faSEmmanuel Vadot        reg = <0x0 0x1fa20000 0x0 0x400>,
102*0e8011faSEmmanuel Vadot              <0x0 0x1fb00000 0x0 0x90>,
103*0e8011faSEmmanuel Vadot              <0x0 0x1fb00830 0x0 0x8>,
104*0e8011faSEmmanuel Vadot              <0x0 0x1fbe3400 0x0 0xfc>;
105*0e8011faSEmmanuel Vadot              #clock-cells = <1>;
106*0e8011faSEmmanuel Vadot              #reset-cells = <1>;
107*0e8011faSEmmanuel Vadot      };
108*0e8011faSEmmanuel Vadot    };
109