| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/mailbox/qcom,apcs-kpss-global.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Qualcomm APCS global block |
| |
| description: |
| This binding describes the APCS "global" block found in various Qualcomm |
| platforms. |
| |
| maintainers: |
| - Jassi Brar <jassisinghbrar@gmail.com> |
| |
| properties: |
| compatible: |
| oneOf: |
| - items: |
| - enum: |
| - qcom,ipq5018-apcs-apps-global |
| - qcom,ipq5332-apcs-apps-global |
| - qcom,ipq8074-apcs-apps-global |
| - qcom,ipq9574-apcs-apps-global |
| - const: qcom,ipq6018-apcs-apps-global |
| - items: |
| - enum: |
| - qcom,qcs404-apcs-apps-global |
| - const: qcom,msm8916-apcs-kpss-global |
| - const: syscon |
| - items: |
| - enum: |
| - qcom,msm8974-apcs-kpss-global |
| - qcom,msm8976-apcs-kpss-global |
| - const: qcom,msm8994-apcs-kpss-global |
| - const: syscon |
| - items: |
| - enum: |
| - qcom,msm8998-apcs-hmss-global |
| - qcom,sdm660-apcs-hmss-global |
| - qcom,sm4250-apcs-hmss-global |
| - qcom,sm6115-apcs-hmss-global |
| - qcom,sm6125-apcs-hmss-global |
| - const: qcom,msm8994-apcs-kpss-global |
| - items: |
| - enum: |
| - qcom,sc7180-apss-shared |
| - qcom,sc8180x-apss-shared |
| - qcom,sm8150-apss-shared |
| - const: qcom,sdm845-apss-shared |
| - items: |
| - enum: |
| - qcom,msm8916-apcs-kpss-global |
| - qcom,msm8939-apcs-kpss-global |
| - qcom,msm8953-apcs-kpss-global |
| - qcom,msm8994-apcs-kpss-global |
| - qcom,sdx55-apcs-gcc |
| - const: syscon |
| - enum: |
| - qcom,ipq6018-apcs-apps-global |
| - qcom,msm8996-apcs-hmss-global |
| - qcom,qcm2290-apcs-hmss-global |
| - qcom,sdm845-apss-shared |
| |
| reg: |
| maxItems: 1 |
| |
| clocks: |
| description: phandles to the parent clocks of the clock driver |
| minItems: 2 |
| maxItems: 3 |
| |
| '#mbox-cells': |
| const: 1 |
| |
| '#clock-cells': |
| enum: [0, 1] |
| |
| clock-names: |
| minItems: 2 |
| maxItems: 3 |
| |
| required: |
| - compatible |
| - reg |
| - '#mbox-cells' |
| |
| additionalProperties: false |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - qcom,msm8916-apcs-kpss-global |
| then: |
| properties: |
| clocks: |
| items: |
| - description: primary pll parent of the clock driver |
| - description: auxiliary parent |
| clock-names: |
| items: |
| - const: pll |
| - const: aux |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - qcom,msm8939-apcs-kpss-global |
| then: |
| properties: |
| clocks: |
| items: |
| - description: primary pll parent of the clock driver |
| - description: auxiliary parent |
| - description: reference clock |
| clock-names: |
| items: |
| - const: pll |
| - const: aux |
| - const: ref |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - qcom,sdx55-apcs-gcc |
| then: |
| properties: |
| clocks: |
| items: |
| - description: reference clock |
| - description: primary pll parent of the clock driver |
| - description: auxiliary parent |
| clock-names: |
| items: |
| - const: ref |
| - const: pll |
| - const: aux |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - qcom,ipq6018-apcs-apps-global |
| then: |
| properties: |
| clocks: |
| items: |
| - description: primary pll parent of the clock driver |
| - description: XO clock |
| - description: GCC GPLL0 clock source |
| clock-names: |
| items: |
| - const: pll |
| - const: xo |
| - const: gpll0 |
| |
| - if: |
| properties: |
| compatible: |
| enum: |
| - qcom,msm8953-apcs-kpss-global |
| - qcom,msm8994-apcs-kpss-global |
| - qcom,msm8996-apcs-hmss-global |
| - qcom,qcm2290-apcs-hmss-global |
| - qcom,sdm845-apss-shared |
| then: |
| properties: |
| clocks: false |
| clock-names: false |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - qcom,ipq6018-apcs-apps-global |
| then: |
| properties: |
| '#clock-cells': |
| const: 1 |
| else: |
| properties: |
| '#clock-cells': |
| const: 0 |
| |
| examples: |
| |
| # Example apcs with msm8996 |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| apcs_glb: mailbox@9820000 { |
| compatible = "qcom,msm8996-apcs-hmss-global"; |
| reg = <0x9820000 0x1000>; |
| |
| #mbox-cells = <1>; |
| #clock-cells = <0>; |
| }; |
| |
| rpm-glink { |
| compatible = "qcom,glink-rpm"; |
| interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; |
| qcom,rpm-msg-ram = <&rpm_msg_ram>; |
| mboxes = <&apcs_glb 0>; |
| }; |
| |
| # Example apcs with qcs404 |
| - | |
| #define GCC_APSS_AHB_CLK_SRC 1 |
| #define GCC_GPLL0_AO_OUT_MAIN 123 |
| apcs: mailbox@b011000 { |
| compatible = "qcom,qcs404-apcs-apps-global", |
| "qcom,msm8916-apcs-kpss-global", "syscon"; |
| reg = <0x0b011000 0x1000>; |
| #mbox-cells = <1>; |
| clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>; |
| clock-names = "pll", "aux"; |
| #clock-cells = <0>; |
| }; |