162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/clock/microchip,mpfs-ccc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Microchip PolarFire SoC Fabric Clock Conditioning Circuitry
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Conor Dooley <conor.dooley@microchip.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  Microchip PolarFire SoC has 4 Clock Conditioning Circuitry blocks. Each of
1462306a36Sopenharmony_ci  these blocks contains two PLLs and 2 DLLs & are located in the four corners of
1562306a36Sopenharmony_ci  the FPGA. For more information see "PolarFire SoC FPGA Clocking Resources" at:
1662306a36Sopenharmony_ci  https://onlinedocs.microchip.com/pr/GUID-8F0CC4C0-0317-4262-89CA-CE7773ED1931-en-US-1/index.html
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciproperties:
1962306a36Sopenharmony_ci  compatible:
2062306a36Sopenharmony_ci    const: microchip,mpfs-ccc
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  reg:
2362306a36Sopenharmony_ci    items:
2462306a36Sopenharmony_ci      - description: PLL0's control registers
2562306a36Sopenharmony_ci      - description: PLL1's control registers
2662306a36Sopenharmony_ci      - description: DLL0's control registers
2762306a36Sopenharmony_ci      - description: DLL1's control registers
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  clocks:
3062306a36Sopenharmony_ci    description:
3162306a36Sopenharmony_ci      The CCC PLL's have two input clocks. It is required that even if the input
3262306a36Sopenharmony_ci      clocks are identical that both are provided.
3362306a36Sopenharmony_ci    minItems: 2
3462306a36Sopenharmony_ci    items:
3562306a36Sopenharmony_ci      - description: PLL0's refclk0
3662306a36Sopenharmony_ci      - description: PLL0's refclk1
3762306a36Sopenharmony_ci      - description: PLL1's refclk0
3862306a36Sopenharmony_ci      - description: PLL1's refclk1
3962306a36Sopenharmony_ci      - description: DLL0's refclk
4062306a36Sopenharmony_ci      - description: DLL1's refclk
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci  clock-names:
4362306a36Sopenharmony_ci    minItems: 2
4462306a36Sopenharmony_ci    items:
4562306a36Sopenharmony_ci      - const: pll0_ref0
4662306a36Sopenharmony_ci      - const: pll0_ref1
4762306a36Sopenharmony_ci      - const: pll1_ref0
4862306a36Sopenharmony_ci      - const: pll1_ref1
4962306a36Sopenharmony_ci      - const: dll0_ref
5062306a36Sopenharmony_ci      - const: dll1_ref
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  '#clock-cells':
5362306a36Sopenharmony_ci    const: 1
5462306a36Sopenharmony_ci    description: |
5562306a36Sopenharmony_ci      The clock consumer should specify the desired clock by having the clock
5662306a36Sopenharmony_ci      ID in its "clocks" phandle cell.
5762306a36Sopenharmony_ci      See include/dt-bindings/clock/microchip,mpfs-clock.h for the full list of
5862306a36Sopenharmony_ci      PolarFire clock IDs.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_cirequired:
6162306a36Sopenharmony_ci  - compatible
6262306a36Sopenharmony_ci  - reg
6362306a36Sopenharmony_ci  - clocks
6462306a36Sopenharmony_ci  - clock-names
6562306a36Sopenharmony_ci  - '#clock-cells'
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciadditionalProperties: false
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ciexamples:
7062306a36Sopenharmony_ci  - |
7162306a36Sopenharmony_ci    clock-controller@38100000 {
7262306a36Sopenharmony_ci        compatible = "microchip,mpfs-ccc";
7362306a36Sopenharmony_ci        reg = <0x38010000 0x1000>, <0x38020000 0x1000>,
7462306a36Sopenharmony_ci              <0x39010000 0x1000>, <0x39020000 0x1000>;
7562306a36Sopenharmony_ci        #clock-cells = <1>;
7662306a36Sopenharmony_ci        clocks = <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>,
7762306a36Sopenharmony_ci                  <&refclk_ccc>, <&refclk_ccc>;
7862306a36Sopenharmony_ci        clock-names = "pll0_ref0", "pll0_ref1", "pll1_ref0", "pll1_ref1",
7962306a36Sopenharmony_ci                      "dll0_ref", "dll1_ref";
8062306a36Sopenharmony_ci    };
81