xref: /openbmc/linux/Documentation/devicetree/bindings/clock/microchip,mpfs-clkcfg.yaml (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1803307a4SConor Dooley# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2803307a4SConor Dooley%YAML 1.2
3803307a4SConor Dooley---
4803307a4SConor Dooley$id: http://devicetree.org/schemas/clock/microchip,mpfs-clkcfg.yaml#
5803307a4SConor Dooley$schema: http://devicetree.org/meta-schemas/core.yaml#
6803307a4SConor Dooley
7*84e85359SKrzysztof Kozlowskititle: Microchip PolarFire Clock Control Module
8803307a4SConor Dooley
9803307a4SConor Dooleymaintainers:
10803307a4SConor Dooley  - Daire McNamara <daire.mcnamara@microchip.com>
11803307a4SConor Dooley
12803307a4SConor Dooleydescription: |
13803307a4SConor Dooley  Microchip PolarFire clock control (CLKCFG) is an integrated clock controller,
14803307a4SConor Dooley  which gates and enables all peripheral clocks.
15803307a4SConor Dooley
16803307a4SConor Dooley  This device tree binding describes 33 gate clocks.  Clocks are referenced by
17803307a4SConor Dooley  user nodes by the CLKCFG node phandle and the clock index in the group, from
18803307a4SConor Dooley  0 to 32.
19803307a4SConor Dooley
20803307a4SConor Dooleyproperties:
21803307a4SConor Dooley  compatible:
22803307a4SConor Dooley    const: microchip,mpfs-clkcfg
23803307a4SConor Dooley
24803307a4SConor Dooley  reg:
25803307a4SConor Dooley    items:
26803307a4SConor Dooley      - description: |
27803307a4SConor Dooley          clock config registers:
28803307a4SConor Dooley          These registers contain enable, reset & divider tables for the, cpu,
29803307a4SConor Dooley          axi, ahb and rtc/mtimer reference clocks as well as enable and reset
30803307a4SConor Dooley          for the peripheral clocks.
31803307a4SConor Dooley      - description: |
32803307a4SConor Dooley          mss pll dri registers:
33803307a4SConor Dooley          Block of registers responsible for dynamic reconfiguration of the mss
34803307a4SConor Dooley          pll
35803307a4SConor Dooley
36803307a4SConor Dooley  clocks:
37803307a4SConor Dooley    maxItems: 1
38803307a4SConor Dooley
39803307a4SConor Dooley  '#clock-cells':
40803307a4SConor Dooley    const: 1
41803307a4SConor Dooley    description: |
42803307a4SConor Dooley      The clock consumer should specify the desired clock by having the clock
43803307a4SConor Dooley      ID in its "clocks" phandle cell.
44803307a4SConor Dooley      See include/dt-bindings/clock/microchip,mpfs-clock.h for the full list of
45803307a4SConor Dooley      PolarFire clock IDs.
46803307a4SConor Dooley
47803307a4SConor Dooley  resets:
48803307a4SConor Dooley    maxItems: 1
49803307a4SConor Dooley
50803307a4SConor Dooley  '#reset-cells':
51803307a4SConor Dooley    description:
52803307a4SConor Dooley      The AHB/AXI peripherals on the PolarFire SoC have reset support, so from
53803307a4SConor Dooley      CLK_ENVM to CLK_CFM. The reset consumer should specify the desired
54803307a4SConor Dooley      peripheral via the clock ID in its "resets" phandle cell.
55803307a4SConor Dooley      See include/dt-bindings/clock/microchip,mpfs-clock.h for the full list of
56803307a4SConor Dooley      PolarFire clock IDs.
57803307a4SConor Dooley    const: 1
58803307a4SConor Dooley
59803307a4SConor Dooleyrequired:
60803307a4SConor Dooley  - compatible
61803307a4SConor Dooley  - reg
62803307a4SConor Dooley  - clocks
63803307a4SConor Dooley  - '#clock-cells'
64803307a4SConor Dooley
65803307a4SConor DooleyadditionalProperties: false
66803307a4SConor Dooley
67803307a4SConor Dooleyexamples:
68803307a4SConor Dooley  # Clock Config node:
69803307a4SConor Dooley  - |
70803307a4SConor Dooley    #include <dt-bindings/clock/microchip,mpfs-clock.h>
71803307a4SConor Dooley    soc {
72803307a4SConor Dooley            #address-cells = <2>;
73803307a4SConor Dooley            #size-cells = <2>;
74803307a4SConor Dooley            clkcfg: clock-controller@20002000 {
75803307a4SConor Dooley                compatible = "microchip,mpfs-clkcfg";
76803307a4SConor Dooley                reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>;
77803307a4SConor Dooley                clocks = <&ref>;
78803307a4SConor Dooley                #clock-cells = <1>;
79803307a4SConor Dooley        };
80803307a4SConor Dooley    };
81