xref: /freebsd/sys/contrib/device-tree/Bindings/clock/microchip,mpfs-ccc.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1*7ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*7ef62cebSEmmanuel Vadot%YAML 1.2
3*7ef62cebSEmmanuel Vadot---
4*7ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/microchip,mpfs-ccc.yaml#
5*7ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7ef62cebSEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: Microchip PolarFire SoC Fabric Clock Conditioning Circuitry
8*7ef62cebSEmmanuel Vadot
9*7ef62cebSEmmanuel Vadotmaintainers:
10*7ef62cebSEmmanuel Vadot  - Conor Dooley <conor.dooley@microchip.com>
11*7ef62cebSEmmanuel Vadot
12*7ef62cebSEmmanuel Vadotdescription: |
13*7ef62cebSEmmanuel Vadot  Microchip PolarFire SoC has 4 Clock Conditioning Circuitry blocks. Each of
14*7ef62cebSEmmanuel Vadot  these blocks contains two PLLs and 2 DLLs & are located in the four corners of
15*7ef62cebSEmmanuel Vadot  the FPGA. For more information see "PolarFire SoC FPGA Clocking Resources" at:
16*7ef62cebSEmmanuel Vadot  https://onlinedocs.microchip.com/pr/GUID-8F0CC4C0-0317-4262-89CA-CE7773ED1931-en-US-1/index.html
17*7ef62cebSEmmanuel Vadot
18*7ef62cebSEmmanuel Vadotproperties:
19*7ef62cebSEmmanuel Vadot  compatible:
20*7ef62cebSEmmanuel Vadot    const: microchip,mpfs-ccc
21*7ef62cebSEmmanuel Vadot
22*7ef62cebSEmmanuel Vadot  reg:
23*7ef62cebSEmmanuel Vadot    items:
24*7ef62cebSEmmanuel Vadot      - description: PLL0's control registers
25*7ef62cebSEmmanuel Vadot      - description: PLL1's control registers
26*7ef62cebSEmmanuel Vadot      - description: DLL0's control registers
27*7ef62cebSEmmanuel Vadot      - description: DLL1's control registers
28*7ef62cebSEmmanuel Vadot
29*7ef62cebSEmmanuel Vadot  clocks:
30*7ef62cebSEmmanuel Vadot    description:
31*7ef62cebSEmmanuel Vadot      The CCC PLL's have two input clocks. It is required that even if the input
32*7ef62cebSEmmanuel Vadot      clocks are identical that both are provided.
33*7ef62cebSEmmanuel Vadot    minItems: 2
34*7ef62cebSEmmanuel Vadot    items:
35*7ef62cebSEmmanuel Vadot      - description: PLL0's refclk0
36*7ef62cebSEmmanuel Vadot      - description: PLL0's refclk1
37*7ef62cebSEmmanuel Vadot      - description: PLL1's refclk0
38*7ef62cebSEmmanuel Vadot      - description: PLL1's refclk1
39*7ef62cebSEmmanuel Vadot      - description: DLL0's refclk
40*7ef62cebSEmmanuel Vadot      - description: DLL1's refclk
41*7ef62cebSEmmanuel Vadot
42*7ef62cebSEmmanuel Vadot  clock-names:
43*7ef62cebSEmmanuel Vadot    minItems: 2
44*7ef62cebSEmmanuel Vadot    items:
45*7ef62cebSEmmanuel Vadot      - const: pll0_ref0
46*7ef62cebSEmmanuel Vadot      - const: pll0_ref1
47*7ef62cebSEmmanuel Vadot      - const: pll1_ref0
48*7ef62cebSEmmanuel Vadot      - const: pll1_ref1
49*7ef62cebSEmmanuel Vadot      - const: dll0_ref
50*7ef62cebSEmmanuel Vadot      - const: dll1_ref
51*7ef62cebSEmmanuel Vadot
52*7ef62cebSEmmanuel Vadot  '#clock-cells':
53*7ef62cebSEmmanuel Vadot    const: 1
54*7ef62cebSEmmanuel Vadot    description: |
55*7ef62cebSEmmanuel Vadot      The clock consumer should specify the desired clock by having the clock
56*7ef62cebSEmmanuel Vadot      ID in its "clocks" phandle cell.
57*7ef62cebSEmmanuel Vadot      See include/dt-bindings/clock/microchip,mpfs-clock.h for the full list of
58*7ef62cebSEmmanuel Vadot      PolarFire clock IDs.
59*7ef62cebSEmmanuel Vadot
60*7ef62cebSEmmanuel Vadotrequired:
61*7ef62cebSEmmanuel Vadot  - compatible
62*7ef62cebSEmmanuel Vadot  - reg
63*7ef62cebSEmmanuel Vadot  - clocks
64*7ef62cebSEmmanuel Vadot  - clock-names
65*7ef62cebSEmmanuel Vadot  - '#clock-cells'
66*7ef62cebSEmmanuel Vadot
67*7ef62cebSEmmanuel VadotadditionalProperties: false
68*7ef62cebSEmmanuel Vadot
69*7ef62cebSEmmanuel Vadotexamples:
70*7ef62cebSEmmanuel Vadot  - |
71*7ef62cebSEmmanuel Vadot    clock-controller@38100000 {
72*7ef62cebSEmmanuel Vadot        compatible = "microchip,mpfs-ccc";
73*7ef62cebSEmmanuel Vadot        reg = <0x38010000 0x1000>, <0x38020000 0x1000>,
74*7ef62cebSEmmanuel Vadot              <0x39010000 0x1000>, <0x39020000 0x1000>;
75*7ef62cebSEmmanuel Vadot        #clock-cells = <1>;
76*7ef62cebSEmmanuel Vadot        clocks = <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>,
77*7ef62cebSEmmanuel Vadot                  <&refclk_ccc>, <&refclk_ccc>;
78*7ef62cebSEmmanuel Vadot        clock-names = "pll0_ref0", "pll0_ref1", "pll1_ref0", "pll1_ref1",
79*7ef62cebSEmmanuel Vadot                      "dll0_ref", "dll1_ref";
80*7ef62cebSEmmanuel Vadot    };
81