162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/clock/qcom,mmcc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Qualcomm Multimedia Clock & Reset Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Jeffrey Hugo <quic_jhugo@quicinc.com>
1162306a36Sopenharmony_ci  - Taniya Das <quic_tdas@quicinc.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  Qualcomm multimedia clock control module provides the clocks, resets and
1562306a36Sopenharmony_ci  power domains.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  compatible:
1962306a36Sopenharmony_ci    enum:
2062306a36Sopenharmony_ci      - qcom,mmcc-apq8064
2162306a36Sopenharmony_ci      - qcom,mmcc-apq8084
2262306a36Sopenharmony_ci      - qcom,mmcc-msm8226
2362306a36Sopenharmony_ci      - qcom,mmcc-msm8660
2462306a36Sopenharmony_ci      - qcom,mmcc-msm8960
2562306a36Sopenharmony_ci      - qcom,mmcc-msm8974
2662306a36Sopenharmony_ci      - qcom,mmcc-msm8992
2762306a36Sopenharmony_ci      - qcom,mmcc-msm8994
2862306a36Sopenharmony_ci      - qcom,mmcc-msm8996
2962306a36Sopenharmony_ci      - qcom,mmcc-msm8998
3062306a36Sopenharmony_ci      - qcom,mmcc-sdm630
3162306a36Sopenharmony_ci      - qcom,mmcc-sdm660
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  clocks:
3462306a36Sopenharmony_ci    minItems: 7
3562306a36Sopenharmony_ci    maxItems: 13
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  clock-names:
3862306a36Sopenharmony_ci    minItems: 7
3962306a36Sopenharmony_ci    maxItems: 13
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  '#clock-cells':
4262306a36Sopenharmony_ci    const: 1
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  '#reset-cells':
4562306a36Sopenharmony_ci    const: 1
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  '#power-domain-cells':
4862306a36Sopenharmony_ci    const: 1
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  reg:
5162306a36Sopenharmony_ci    maxItems: 1
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  protected-clocks:
5462306a36Sopenharmony_ci    description:
5562306a36Sopenharmony_ci      Protected clock specifier list as per common clock binding
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci  vdd-gfx-supply:
5862306a36Sopenharmony_ci    description:
5962306a36Sopenharmony_ci      Regulator supply for the GPU_GX GDSC
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_cirequired:
6262306a36Sopenharmony_ci  - compatible
6362306a36Sopenharmony_ci  - reg
6462306a36Sopenharmony_ci  - '#clock-cells'
6562306a36Sopenharmony_ci  - '#reset-cells'
6662306a36Sopenharmony_ci  - '#power-domain-cells'
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciadditionalProperties: false
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciallOf:
7162306a36Sopenharmony_ci  - if:
7262306a36Sopenharmony_ci      properties:
7362306a36Sopenharmony_ci        compatible:
7462306a36Sopenharmony_ci          contains:
7562306a36Sopenharmony_ci            enum:
7662306a36Sopenharmony_ci              - qcom,mmcc-apq8064
7762306a36Sopenharmony_ci              - qcom,mmcc-msm8960
7862306a36Sopenharmony_ci    then:
7962306a36Sopenharmony_ci      properties:
8062306a36Sopenharmony_ci        clocks:
8162306a36Sopenharmony_ci          items:
8262306a36Sopenharmony_ci            - description: Board PXO source
8362306a36Sopenharmony_ci            - description: PLL 3 clock
8462306a36Sopenharmony_ci            - description: PLL 3 Vote clock
8562306a36Sopenharmony_ci            - description: DSI phy instance 1 dsi clock
8662306a36Sopenharmony_ci            - description: DSI phy instance 1 byte clock
8762306a36Sopenharmony_ci            - description: DSI phy instance 2 dsi clock
8862306a36Sopenharmony_ci            - description: DSI phy instance 2 byte clock
8962306a36Sopenharmony_ci            - description: HDMI phy PLL clock
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci        clock-names:
9262306a36Sopenharmony_ci          items:
9362306a36Sopenharmony_ci            - const: pxo
9462306a36Sopenharmony_ci            - const: pll3
9562306a36Sopenharmony_ci            - const: pll8_vote
9662306a36Sopenharmony_ci            - const: dsi1pll
9762306a36Sopenharmony_ci            - const: dsi1pllbyte
9862306a36Sopenharmony_ci            - const: dsi2pll
9962306a36Sopenharmony_ci            - const: dsi2pllbyte
10062306a36Sopenharmony_ci            - const: hdmipll
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci  - if:
10362306a36Sopenharmony_ci      properties:
10462306a36Sopenharmony_ci        compatible:
10562306a36Sopenharmony_ci          contains:
10662306a36Sopenharmony_ci            enum:
10762306a36Sopenharmony_ci              - qcom,mmcc-msm8226
10862306a36Sopenharmony_ci    then:
10962306a36Sopenharmony_ci      properties:
11062306a36Sopenharmony_ci        clocks:
11162306a36Sopenharmony_ci          items:
11262306a36Sopenharmony_ci            - description: Board XO source
11362306a36Sopenharmony_ci            - description: MMSS GPLL0 voted clock
11462306a36Sopenharmony_ci            - description: GPLL0 voted clock
11562306a36Sopenharmony_ci            - description: GPLL1 voted clock
11662306a36Sopenharmony_ci            - description: GFX3D clock source
11762306a36Sopenharmony_ci            - description: DSI phy instance 0 dsi clock
11862306a36Sopenharmony_ci            - description: DSI phy instance 0 byte clock
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci        clock-names:
12162306a36Sopenharmony_ci          items:
12262306a36Sopenharmony_ci            - const: xo
12362306a36Sopenharmony_ci            - const: mmss_gpll0_vote
12462306a36Sopenharmony_ci            - const: gpll0_vote
12562306a36Sopenharmony_ci            - const: gpll1_vote
12662306a36Sopenharmony_ci            - const: gfx3d_clk_src
12762306a36Sopenharmony_ci            - const: dsi0pll
12862306a36Sopenharmony_ci            - const: dsi0pllbyte
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci  - if:
13162306a36Sopenharmony_ci      properties:
13262306a36Sopenharmony_ci        compatible:
13362306a36Sopenharmony_ci          contains:
13462306a36Sopenharmony_ci            enum:
13562306a36Sopenharmony_ci              - qcom,mmcc-msm8974
13662306a36Sopenharmony_ci    then:
13762306a36Sopenharmony_ci      properties:
13862306a36Sopenharmony_ci        clocks:
13962306a36Sopenharmony_ci          items:
14062306a36Sopenharmony_ci            - description: Board XO source
14162306a36Sopenharmony_ci            - description: MMSS GPLL0 voted clock
14262306a36Sopenharmony_ci            - description: GPLL0 voted clock
14362306a36Sopenharmony_ci            - description: GPLL1 voted clock
14462306a36Sopenharmony_ci            - description: GFX3D clock source
14562306a36Sopenharmony_ci            - description: DSI phy instance 0 dsi clock
14662306a36Sopenharmony_ci            - description: DSI phy instance 0 byte clock
14762306a36Sopenharmony_ci            - description: DSI phy instance 1 dsi clock
14862306a36Sopenharmony_ci            - description: DSI phy instance 1 byte clock
14962306a36Sopenharmony_ci            - description: HDMI phy PLL clock
15062306a36Sopenharmony_ci            - description: eDP phy PLL link clock
15162306a36Sopenharmony_ci            - description: eDP phy PLL vco clock
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci        clock-names:
15462306a36Sopenharmony_ci          items:
15562306a36Sopenharmony_ci            - const: xo
15662306a36Sopenharmony_ci            - const: mmss_gpll0_vote
15762306a36Sopenharmony_ci            - const: gpll0_vote
15862306a36Sopenharmony_ci            - const: gpll1_vote
15962306a36Sopenharmony_ci            - const: gfx3d_clk_src
16062306a36Sopenharmony_ci            - const: dsi0pll
16162306a36Sopenharmony_ci            - const: dsi0pllbyte
16262306a36Sopenharmony_ci            - const: dsi1pll
16362306a36Sopenharmony_ci            - const: dsi1pllbyte
16462306a36Sopenharmony_ci            - const: hdmipll
16562306a36Sopenharmony_ci            - const: edp_link_clk
16662306a36Sopenharmony_ci            - const: edp_vco_div
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci  - if:
16962306a36Sopenharmony_ci      properties:
17062306a36Sopenharmony_ci        compatible:
17162306a36Sopenharmony_ci          contains:
17262306a36Sopenharmony_ci            enum:
17362306a36Sopenharmony_ci              - qcom,mmcc-apq8084
17462306a36Sopenharmony_ci    then:
17562306a36Sopenharmony_ci      properties:
17662306a36Sopenharmony_ci        clocks:
17762306a36Sopenharmony_ci          items:
17862306a36Sopenharmony_ci            - description: Board XO source
17962306a36Sopenharmony_ci            - description: Board sleep source
18062306a36Sopenharmony_ci            - description: MMSS GPLL0 voted clock
18162306a36Sopenharmony_ci            - description: GPLL0 clock
18262306a36Sopenharmony_ci            - description: GPLL0 voted clock
18362306a36Sopenharmony_ci            - description: GPLL1 clock
18462306a36Sopenharmony_ci            - description: DSI phy instance 0 dsi clock
18562306a36Sopenharmony_ci            - description: DSI phy instance 0 byte clock
18662306a36Sopenharmony_ci            - description: DSI phy instance 1 dsi clock
18762306a36Sopenharmony_ci            - description: DSI phy instance 1 byte clock
18862306a36Sopenharmony_ci            - description: HDMI phy PLL clock
18962306a36Sopenharmony_ci            - description: eDP phy PLL link clock
19062306a36Sopenharmony_ci            - description: eDP phy PLL vco clock
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci        clock-names:
19362306a36Sopenharmony_ci          items:
19462306a36Sopenharmony_ci            - const: xo
19562306a36Sopenharmony_ci            - const: sleep_clk
19662306a36Sopenharmony_ci            - const: mmss_gpll0_vote
19762306a36Sopenharmony_ci            - const: gpll0
19862306a36Sopenharmony_ci            - const: gpll0_vote
19962306a36Sopenharmony_ci            - const: gpll1
20062306a36Sopenharmony_ci            - const: dsi0pll
20162306a36Sopenharmony_ci            - const: dsi0pllbyte
20262306a36Sopenharmony_ci            - const: dsi1pll
20362306a36Sopenharmony_ci            - const: dsi1pllbyte
20462306a36Sopenharmony_ci            - const: hdmipll
20562306a36Sopenharmony_ci            - const: edp_link_clk
20662306a36Sopenharmony_ci            - const: edp_vco_div
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_ci  - if:
20962306a36Sopenharmony_ci      properties:
21062306a36Sopenharmony_ci        compatible:
21162306a36Sopenharmony_ci          contains:
21262306a36Sopenharmony_ci            enum:
21362306a36Sopenharmony_ci              - qcom,mmcc-msm8994
21462306a36Sopenharmony_ci              - qcom,mmcc-msm8998
21562306a36Sopenharmony_ci              - qcom,mmcc-sdm630
21662306a36Sopenharmony_ci              - qcom,mmcc-sdm660
21762306a36Sopenharmony_ci    then:
21862306a36Sopenharmony_ci      required:
21962306a36Sopenharmony_ci        - clocks
22062306a36Sopenharmony_ci        - clock-names
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci  - if:
22362306a36Sopenharmony_ci      properties:
22462306a36Sopenharmony_ci        compatible:
22562306a36Sopenharmony_ci          contains:
22662306a36Sopenharmony_ci            const: qcom,mmcc-msm8994
22762306a36Sopenharmony_ci    then:
22862306a36Sopenharmony_ci      properties:
22962306a36Sopenharmony_ci        clocks:
23062306a36Sopenharmony_ci          items:
23162306a36Sopenharmony_ci            - description: Board XO source
23262306a36Sopenharmony_ci            - description: Global PLL 0 clock
23362306a36Sopenharmony_ci            - description: MMSS NoC AHB clock
23462306a36Sopenharmony_ci            - description: GFX3D clock
23562306a36Sopenharmony_ci            - description: DSI phy instance 0 dsi clock
23662306a36Sopenharmony_ci            - description: DSI phy instance 0 byte clock
23762306a36Sopenharmony_ci            - description: DSI phy instance 1 dsi clock
23862306a36Sopenharmony_ci            - description: DSI phy instance 1 byte clock
23962306a36Sopenharmony_ci            - description: HDMI phy PLL clock
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ci        clock-names:
24262306a36Sopenharmony_ci          items:
24362306a36Sopenharmony_ci            - const: xo
24462306a36Sopenharmony_ci            - const: gpll0
24562306a36Sopenharmony_ci            - const: mmssnoc_ahb
24662306a36Sopenharmony_ci            - const: oxili_gfx3d_clk_src
24762306a36Sopenharmony_ci            - const: dsi0pll
24862306a36Sopenharmony_ci            - const: dsi0pllbyte
24962306a36Sopenharmony_ci            - const: dsi1pll
25062306a36Sopenharmony_ci            - const: dsi1pllbyte
25162306a36Sopenharmony_ci            - const: hdmipll
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ci  - if:
25462306a36Sopenharmony_ci      properties:
25562306a36Sopenharmony_ci        compatible:
25662306a36Sopenharmony_ci          contains:
25762306a36Sopenharmony_ci            const: qcom,mmcc-msm8996
25862306a36Sopenharmony_ci    then:
25962306a36Sopenharmony_ci      properties:
26062306a36Sopenharmony_ci        clocks:
26162306a36Sopenharmony_ci          items:
26262306a36Sopenharmony_ci            - description: Board XO source
26362306a36Sopenharmony_ci            - description: Global PLL 0 clock
26462306a36Sopenharmony_ci            - description: MMSS NoC AHB clock
26562306a36Sopenharmony_ci            - description: DSI phy instance 0 dsi clock
26662306a36Sopenharmony_ci            - description: DSI phy instance 0 byte clock
26762306a36Sopenharmony_ci            - description: DSI phy instance 1 dsi clock
26862306a36Sopenharmony_ci            - description: DSI phy instance 1 byte clock
26962306a36Sopenharmony_ci            - description: HDMI phy PLL clock
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ci        clock-names:
27262306a36Sopenharmony_ci          items:
27362306a36Sopenharmony_ci            - const: xo
27462306a36Sopenharmony_ci            - const: gpll0
27562306a36Sopenharmony_ci            - const: gcc_mmss_noc_cfg_ahb_clk
27662306a36Sopenharmony_ci            - const: dsi0pll
27762306a36Sopenharmony_ci            - const: dsi0pllbyte
27862306a36Sopenharmony_ci            - const: dsi1pll
27962306a36Sopenharmony_ci            - const: dsi1pllbyte
28062306a36Sopenharmony_ci            - const: hdmipll
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_ci  - if:
28362306a36Sopenharmony_ci      properties:
28462306a36Sopenharmony_ci        compatible:
28562306a36Sopenharmony_ci          contains:
28662306a36Sopenharmony_ci            const: qcom,mmcc-msm8998
28762306a36Sopenharmony_ci    then:
28862306a36Sopenharmony_ci      properties:
28962306a36Sopenharmony_ci        clocks:
29062306a36Sopenharmony_ci          items:
29162306a36Sopenharmony_ci            - description: Board XO source
29262306a36Sopenharmony_ci            - description: Global PLL 0 clock
29362306a36Sopenharmony_ci            - description: DSI phy instance 0 dsi clock
29462306a36Sopenharmony_ci            - description: DSI phy instance 0 byte clock
29562306a36Sopenharmony_ci            - description: DSI phy instance 1 dsi clock
29662306a36Sopenharmony_ci            - description: DSI phy instance 1 byte clock
29762306a36Sopenharmony_ci            - description: HDMI phy PLL clock
29862306a36Sopenharmony_ci            - description: DisplayPort phy PLL link clock
29962306a36Sopenharmony_ci            - description: DisplayPort phy PLL vco clock
30062306a36Sopenharmony_ci            - description: Global PLL 0 DIV clock
30162306a36Sopenharmony_ci
30262306a36Sopenharmony_ci        clock-names:
30362306a36Sopenharmony_ci          items:
30462306a36Sopenharmony_ci            - const: xo
30562306a36Sopenharmony_ci            - const: gpll0
30662306a36Sopenharmony_ci            - const: dsi0dsi
30762306a36Sopenharmony_ci            - const: dsi0byte
30862306a36Sopenharmony_ci            - const: dsi1dsi
30962306a36Sopenharmony_ci            - const: dsi1byte
31062306a36Sopenharmony_ci            - const: hdmipll
31162306a36Sopenharmony_ci            - const: dplink
31262306a36Sopenharmony_ci            - const: dpvco
31362306a36Sopenharmony_ci            - const: gpll0_div
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci  - if:
31662306a36Sopenharmony_ci      properties:
31762306a36Sopenharmony_ci        compatible:
31862306a36Sopenharmony_ci          contains:
31962306a36Sopenharmony_ci            enum:
32062306a36Sopenharmony_ci              - qcom,mmcc-sdm630
32162306a36Sopenharmony_ci              - qcom,mmcc-sdm660
32262306a36Sopenharmony_ci    then:
32362306a36Sopenharmony_ci      properties:
32462306a36Sopenharmony_ci        clocks:
32562306a36Sopenharmony_ci          items:
32662306a36Sopenharmony_ci            - description: Board XO source
32762306a36Sopenharmony_ci            - description: Board sleep source
32862306a36Sopenharmony_ci            - description: Global PLL 0 clock
32962306a36Sopenharmony_ci            - description: Global PLL 0 DIV clock
33062306a36Sopenharmony_ci            - description: DSI phy instance 0 dsi clock
33162306a36Sopenharmony_ci            - description: DSI phy instance 0 byte clock
33262306a36Sopenharmony_ci            - description: DSI phy instance 1 dsi clock
33362306a36Sopenharmony_ci            - description: DSI phy instance 1 byte clock
33462306a36Sopenharmony_ci            - description: DisplayPort phy PLL link clock
33562306a36Sopenharmony_ci            - description: DisplayPort phy PLL vco clock
33662306a36Sopenharmony_ci
33762306a36Sopenharmony_ci        clock-names:
33862306a36Sopenharmony_ci          items:
33962306a36Sopenharmony_ci            - const: xo
34062306a36Sopenharmony_ci            - const: sleep_clk
34162306a36Sopenharmony_ci            - const: gpll0
34262306a36Sopenharmony_ci            - const: gpll0_div
34362306a36Sopenharmony_ci            - const: dsi0pll
34462306a36Sopenharmony_ci            - const: dsi0pllbyte
34562306a36Sopenharmony_ci            - const: dsi1pll
34662306a36Sopenharmony_ci            - const: dsi1pllbyte
34762306a36Sopenharmony_ci            - const: dp_link_2x_clk_divsel_five
34862306a36Sopenharmony_ci            - const: dp_vco_divided_clk_src_mux
34962306a36Sopenharmony_ci
35062306a36Sopenharmony_ciexamples:
35162306a36Sopenharmony_ci  # Example for MMCC for MSM8960:
35262306a36Sopenharmony_ci  - |
35362306a36Sopenharmony_ci    clock-controller@4000000 {
35462306a36Sopenharmony_ci      compatible = "qcom,mmcc-msm8960";
35562306a36Sopenharmony_ci      reg = <0x4000000 0x1000>;
35662306a36Sopenharmony_ci      #clock-cells = <1>;
35762306a36Sopenharmony_ci      #reset-cells = <1>;
35862306a36Sopenharmony_ci      #power-domain-cells = <1>;
35962306a36Sopenharmony_ci    };
36062306a36Sopenharmony_ci...
361