162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mailbox/qcom,apcs-kpss-global.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Qualcomm APCS global block
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription:
1062306a36Sopenharmony_ci  This binding describes the APCS "global" block found in various Qualcomm
1162306a36Sopenharmony_ci  platforms.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cimaintainers:
1462306a36Sopenharmony_ci  - Jassi Brar <jassisinghbrar@gmail.com>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciproperties:
1762306a36Sopenharmony_ci  compatible:
1862306a36Sopenharmony_ci    oneOf:
1962306a36Sopenharmony_ci      - items:
2062306a36Sopenharmony_ci          - enum:
2162306a36Sopenharmony_ci              - qcom,ipq5018-apcs-apps-global
2262306a36Sopenharmony_ci              - qcom,ipq5332-apcs-apps-global
2362306a36Sopenharmony_ci              - qcom,ipq8074-apcs-apps-global
2462306a36Sopenharmony_ci              - qcom,ipq9574-apcs-apps-global
2562306a36Sopenharmony_ci          - const: qcom,ipq6018-apcs-apps-global
2662306a36Sopenharmony_ci      - items:
2762306a36Sopenharmony_ci          - enum:
2862306a36Sopenharmony_ci              - qcom,sc7180-apss-shared
2962306a36Sopenharmony_ci              - qcom,sc8180x-apss-shared
3062306a36Sopenharmony_ci              - qcom,sm8150-apss-shared
3162306a36Sopenharmony_ci          - const: qcom,sdm845-apss-shared
3262306a36Sopenharmony_ci      - items:
3362306a36Sopenharmony_ci          - enum:
3462306a36Sopenharmony_ci              - qcom,msm8916-apcs-kpss-global
3562306a36Sopenharmony_ci              - qcom,msm8939-apcs-kpss-global
3662306a36Sopenharmony_ci              - qcom,msm8953-apcs-kpss-global
3762306a36Sopenharmony_ci              - qcom,msm8976-apcs-kpss-global
3862306a36Sopenharmony_ci              - qcom,msm8994-apcs-kpss-global
3962306a36Sopenharmony_ci              - qcom,qcs404-apcs-apps-global
4062306a36Sopenharmony_ci              - qcom,sdx55-apcs-gcc
4162306a36Sopenharmony_ci          - const: syscon
4262306a36Sopenharmony_ci      - enum:
4362306a36Sopenharmony_ci          - qcom,ipq6018-apcs-apps-global
4462306a36Sopenharmony_ci          - qcom,ipq8074-apcs-apps-global
4562306a36Sopenharmony_ci          - qcom,msm8996-apcs-hmss-global
4662306a36Sopenharmony_ci          - qcom,msm8998-apcs-hmss-global
4762306a36Sopenharmony_ci          - qcom,qcm2290-apcs-hmss-global
4862306a36Sopenharmony_ci          - qcom,sdm660-apcs-hmss-global
4962306a36Sopenharmony_ci          - qcom,sdm845-apss-shared
5062306a36Sopenharmony_ci          - qcom,sm4250-apcs-hmss-global
5162306a36Sopenharmony_ci          - qcom,sm6115-apcs-hmss-global
5262306a36Sopenharmony_ci          - qcom,sm6125-apcs-hmss-global
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  reg:
5562306a36Sopenharmony_ci    maxItems: 1
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci  clocks:
5862306a36Sopenharmony_ci    description: phandles to the parent clocks of the clock driver
5962306a36Sopenharmony_ci    minItems: 2
6062306a36Sopenharmony_ci    maxItems: 3
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci  '#mbox-cells':
6362306a36Sopenharmony_ci    const: 1
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci  '#clock-cells':
6662306a36Sopenharmony_ci    enum: [0, 1]
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci  clock-names:
6962306a36Sopenharmony_ci    minItems: 2
7062306a36Sopenharmony_ci    maxItems: 3
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_cirequired:
7362306a36Sopenharmony_ci  - compatible
7462306a36Sopenharmony_ci  - reg
7562306a36Sopenharmony_ci  - '#mbox-cells'
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciadditionalProperties: false
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciallOf:
8062306a36Sopenharmony_ci  - if:
8162306a36Sopenharmony_ci      properties:
8262306a36Sopenharmony_ci        compatible:
8362306a36Sopenharmony_ci          enum:
8462306a36Sopenharmony_ci            - qcom,msm8916-apcs-kpss-global
8562306a36Sopenharmony_ci            - qcom,msm8939-apcs-kpss-global
8662306a36Sopenharmony_ci            - qcom,qcs404-apcs-apps-global
8762306a36Sopenharmony_ci    then:
8862306a36Sopenharmony_ci      properties:
8962306a36Sopenharmony_ci        clocks:
9062306a36Sopenharmony_ci          items:
9162306a36Sopenharmony_ci            - description: primary pll parent of the clock driver
9262306a36Sopenharmony_ci            - description: auxiliary parent
9362306a36Sopenharmony_ci        clock-names:
9462306a36Sopenharmony_ci          items:
9562306a36Sopenharmony_ci            - const: pll
9662306a36Sopenharmony_ci            - const: aux
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci  - if:
9962306a36Sopenharmony_ci      properties:
10062306a36Sopenharmony_ci        compatible:
10162306a36Sopenharmony_ci          contains:
10262306a36Sopenharmony_ci            enum:
10362306a36Sopenharmony_ci              - qcom,sdx55-apcs-gcc
10462306a36Sopenharmony_ci    then:
10562306a36Sopenharmony_ci      properties:
10662306a36Sopenharmony_ci        clocks:
10762306a36Sopenharmony_ci          items:
10862306a36Sopenharmony_ci            - description: reference clock
10962306a36Sopenharmony_ci            - description: primary pll parent of the clock driver
11062306a36Sopenharmony_ci            - description: auxiliary parent
11162306a36Sopenharmony_ci        clock-names:
11262306a36Sopenharmony_ci          items:
11362306a36Sopenharmony_ci            - const: ref
11462306a36Sopenharmony_ci            - const: pll
11562306a36Sopenharmony_ci            - const: aux
11662306a36Sopenharmony_ci  - if:
11762306a36Sopenharmony_ci      properties:
11862306a36Sopenharmony_ci        compatible:
11962306a36Sopenharmony_ci          contains:
12062306a36Sopenharmony_ci            enum:
12162306a36Sopenharmony_ci              - qcom,ipq6018-apcs-apps-global
12262306a36Sopenharmony_ci    then:
12362306a36Sopenharmony_ci      properties:
12462306a36Sopenharmony_ci        clocks:
12562306a36Sopenharmony_ci          items:
12662306a36Sopenharmony_ci            - description: primary pll parent of the clock driver
12762306a36Sopenharmony_ci            - description: XO clock
12862306a36Sopenharmony_ci        clock-names:
12962306a36Sopenharmony_ci          items:
13062306a36Sopenharmony_ci            - const: pll
13162306a36Sopenharmony_ci            - const: xo
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci  - if:
13462306a36Sopenharmony_ci      properties:
13562306a36Sopenharmony_ci        compatible:
13662306a36Sopenharmony_ci          enum:
13762306a36Sopenharmony_ci            - qcom,msm8953-apcs-kpss-global
13862306a36Sopenharmony_ci            - qcom,msm8976-apcs-kpss-global
13962306a36Sopenharmony_ci            - qcom,msm8994-apcs-kpss-global
14062306a36Sopenharmony_ci            - qcom,msm8996-apcs-hmss-global
14162306a36Sopenharmony_ci            - qcom,msm8998-apcs-hmss-global
14262306a36Sopenharmony_ci            - qcom,qcm2290-apcs-hmss-global
14362306a36Sopenharmony_ci            - qcom,sdm660-apcs-hmss-global
14462306a36Sopenharmony_ci            - qcom,sdm845-apss-shared
14562306a36Sopenharmony_ci            - qcom,sm4250-apcs-hmss-global
14662306a36Sopenharmony_ci            - qcom,sm6115-apcs-hmss-global
14762306a36Sopenharmony_ci            - qcom,sm6125-apcs-hmss-global
14862306a36Sopenharmony_ci    then:
14962306a36Sopenharmony_ci      properties:
15062306a36Sopenharmony_ci        clocks: false
15162306a36Sopenharmony_ci        clock-names: false
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci  - if:
15462306a36Sopenharmony_ci      properties:
15562306a36Sopenharmony_ci        compatible:
15662306a36Sopenharmony_ci          contains:
15762306a36Sopenharmony_ci            enum:
15862306a36Sopenharmony_ci              - qcom,ipq6018-apcs-apps-global
15962306a36Sopenharmony_ci    then:
16062306a36Sopenharmony_ci      properties:
16162306a36Sopenharmony_ci        '#clock-cells':
16262306a36Sopenharmony_ci          const: 1
16362306a36Sopenharmony_ci    else:
16462306a36Sopenharmony_ci      properties:
16562306a36Sopenharmony_ci        '#clock-cells':
16662306a36Sopenharmony_ci          const: 0
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ciexamples:
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci  # Example apcs with msm8996
17162306a36Sopenharmony_ci  - |
17262306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
17362306a36Sopenharmony_ci    apcs_glb: mailbox@9820000 {
17462306a36Sopenharmony_ci        compatible = "qcom,msm8996-apcs-hmss-global";
17562306a36Sopenharmony_ci        reg = <0x9820000 0x1000>;
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci        #mbox-cells = <1>;
17862306a36Sopenharmony_ci        #clock-cells = <0>;
17962306a36Sopenharmony_ci    };
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci    rpm-glink {
18262306a36Sopenharmony_ci        compatible = "qcom,glink-rpm";
18362306a36Sopenharmony_ci        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
18462306a36Sopenharmony_ci        qcom,rpm-msg-ram = <&rpm_msg_ram>;
18562306a36Sopenharmony_ci        mboxes = <&apcs_glb 0>;
18662306a36Sopenharmony_ci    };
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ci  # Example apcs with qcs404
18962306a36Sopenharmony_ci  - |
19062306a36Sopenharmony_ci    #define GCC_APSS_AHB_CLK_SRC  1
19162306a36Sopenharmony_ci    #define GCC_GPLL0_AO_OUT_MAIN 123
19262306a36Sopenharmony_ci    apcs: mailbox@b011000 {
19362306a36Sopenharmony_ci        compatible = "qcom,qcs404-apcs-apps-global", "syscon";
19462306a36Sopenharmony_ci        reg = <0x0b011000 0x1000>;
19562306a36Sopenharmony_ci        #mbox-cells = <1>;
19662306a36Sopenharmony_ci        clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
19762306a36Sopenharmony_ci        clock-names = "pll", "aux";
19862306a36Sopenharmony_ci        #clock-cells = <0>;
19962306a36Sopenharmony_ci    };
200