| # 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,ipq5424-apcs-apps-global |
| - qcom,ipq8074-apcs-apps-global |
| - qcom,ipq9574-apcs-apps-global |
| - const: qcom,ipq6018-apcs-apps-global |
| - items: |
| - enum: |
| - qcom,msm8226-apcs-kpss-global |
| - 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,qcs615-apss-shared |
| - qcom,sc7180-apss-shared |
| - qcom,sc8180x-apss-shared |
| - qcom,sm7150-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 |
| deprecated: true |
| |
| '#mbox-cells': |
| const: 1 |
| |
| '#clock-cells': |
| enum: [0, 1] |
| |
| clock-names: |
| minItems: 2 |
| maxItems: 3 |
| deprecated: true |
| |
| clock-controller: |
| type: object |
| additionalProperties: false |
| properties: |
| clocks: |
| description: phandles to the parent clocks of the clock driver |
| minItems: 2 |
| maxItems: 3 |
| |
| '#clock-cells': |
| enum: [0, 1] |
| |
| clock-names: |
| minItems: 2 |
| maxItems: 3 |
| |
| required: |
| - compatible |
| - reg |
| - '#mbox-cells' |
| |
| additionalProperties: false |
| |
| # Clocks should be specified either on the parent node or on the child node |
| oneOf: |
| - required: |
| - clock-controller |
| properties: |
| clocks: false |
| clock-names: false |
| '#clock-cells': false |
| - properties: |
| clock-controller: false |
| |
| $defs: |
| msm8916-apcs-clock-controller: |
| properties: |
| clocks: |
| items: |
| - description: primary pll parent of the clock driver |
| - description: auxiliary parent |
| clock-names: |
| items: |
| - const: pll |
| - const: aux |
| '#clock-cells': |
| const: 0 |
| |
| msm8939-apcs-clock-controller: |
| 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 |
| '#clock-cells': |
| const: 0 |
| |
| sdx55-apcs-clock-controller: |
| 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 |
| '#clock-cells': |
| const: 0 |
| |
| ipq6018-apcs-clock-controller: |
| 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 |
| '#clock-cells': |
| const: 1 |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - qcom,msm8916-apcs-kpss-global |
| then: |
| $ref: "#/$defs/msm8916-apcs-clock-controller" |
| properties: |
| clock-controller: |
| $ref: "#/$defs/msm8916-apcs-clock-controller" |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - qcom,msm8939-apcs-kpss-global |
| then: |
| $ref: "#/$defs/msm8939-apcs-clock-controller" |
| properties: |
| clock-controller: |
| $ref: "#/$defs/msm8939-apcs-clock-controller" |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - qcom,sdx55-apcs-gcc |
| then: |
| $ref: "#/$defs/sdx55-apcs-clock-controller" |
| properties: |
| clock-controller: |
| $ref: "#/$defs/sdx55-apcs-clock-controller" |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - qcom,ipq6018-apcs-apps-global |
| then: |
| $ref: "#/$defs/ipq6018-apcs-clock-controller" |
| properties: |
| clock-controller: |
| $ref: "#/$defs/ipq6018-apcs-clock-controller" |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| 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 |
| clock-controller: false |
| '#clock-cells': |
| const: 0 |
| |
| examples: |
| |
| # Example apcs with msm8996 |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| mailbox@9820000 { |
| compatible = "qcom,msm8996-apcs-hmss-global"; |
| reg = <0x9820000 0x1000>; |
| |
| #mbox-cells = <1>; |
| #clock-cells = <0>; |
| }; |
| |
| # Example apcs with qcs404 |
| - | |
| #define GCC_APSS_AHB_CLK_SRC 1 |
| #define GCC_GPLL0_AO_OUT_MAIN 123 |
| mailbox@b011000 { |
| compatible = "qcom,qcs404-apcs-apps-global", |
| "qcom,msm8916-apcs-kpss-global", "syscon"; |
| reg = <0x0b011000 0x1000>; |
| #mbox-cells = <1>; |
| |
| apcs_clk: clock-controller { |
| clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>; |
| clock-names = "pll", "aux"; |
| #clock-cells = <0>; |
| }; |
| }; |
| |
| # Example apcs with qcs404 (deprecated: use clock-controller subnode) |
| - | |
| #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>; |
| }; |