qcom,apcs-kpss-global.yaml 4.3 KB
Newer Older
1 2 3 4 5 6
# 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#"

7
title: Qualcomm APCS global block
8 9 10 11 12 13

description:
  This binding describes the APCS "global" block found in various Qualcomm
  platforms.

maintainers:
14
  - Jassi Brar <jassisinghbrar@gmail.com>
15 16 17

properties:
  compatible:
18 19 20 21 22 23 24 25 26 27 28 29 30
    oneOf:
      - items:
          - enum:
              - qcom,ipq6018-apcs-apps-global
              - qcom,ipq8074-apcs-apps-global
              - qcom,msm8976-apcs-kpss-global
              - qcom,msm8996-apcs-hmss-global
              - qcom,msm8998-apcs-hmss-global
              - qcom,qcm2290-apcs-hmss-global
              - qcom,sc7180-apss-shared
              - qcom,sc8180x-apss-shared
              - qcom,sdm660-apcs-hmss-global
              - qcom,sdm845-apss-shared
31
              - qcom,sm4250-apcs-hmss-global
32 33 34 35 36 37 38 39 40 41 42
              - qcom,sm6125-apcs-hmss-global
              - qcom,sm6115-apcs-hmss-global
              - qcom,sm8150-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,qcs404-apcs-apps-global
          - const: syscon
43 44 45 46 47
  reg:
    maxItems: 1

  clocks:
    description: phandles to the parent clocks of the clock driver
48
    minItems: 2
49
    maxItems: 3
50 51 52 53 54

  '#mbox-cells':
    const: 1

  '#clock-cells':
55
    enum: [0, 1]
56 57

  clock-names:
58
    minItems: 2
59
    maxItems: 3
60 61 62 63 64 65 66 67

required:
  - compatible
  - reg
  - '#mbox-cells'

additionalProperties: false

68 69 70 71 72 73 74 75 76 77 78 79 80
allOf:
  - if:
      properties:
        compatible:
          enum:
            - qcom,msm8916-apcs-kpss-global
            - qcom,msm8994-apcs-kpss-global
            - qcom,msm8996-apcs-hmss-global
            - qcom,msm8998-apcs-hmss-global
            - qcom,qcs404-apcs-apps-global
            - qcom,sc7180-apss-shared
            - qcom,sdm660-apcs-hmss-global
            - qcom,sdm845-apss-shared
81
            - qcom,sm6125-apcs-hmss-global
82 83 84 85
            - qcom,sm8150-apss-shared
    then:
      properties:
        clocks:
86 87 88 89 90 91 92
          items:
            - description: primary pll parent of the clock driver
            - description: auxiliary parent
        clock-names:
          items:
            - const: pll
            - const: aux
93 94 95 96 97 98 99 100
  - if:
      properties:
        compatible:
          enum:
            - qcom,sdx55-apcs-gcc
    then:
      properties:
        clocks:
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
          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:
          enum:
            - qcom,ipq6018-apcs-apps-global
            - qcom,ipq8074-apcs-apps-global
    then:
      properties:
        clocks:
          items:
            - description: primary pll parent of the clock driver
            - description: XO clock
        clock-names:
          items:
            - const: pll
            - const: xo
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
  - if:
      properties:
        compatible:
          enum:
            - qcom,ipq6018-apcs-apps-global
            - qcom,ipq8074-apcs-apps-global
    then:
      properties:
        '#clock-cells':
          const: 1
    else:
      properties:
        '#clock-cells':
          const: 0

141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
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>;
    };

    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>;
        mbox-names = "rpm_hlos";
    };

  # Example apcs with qcs404
  - |
    #define GCC_APSS_AHB_CLK_SRC  1
    #define GCC_GPLL0_AO_OUT_MAIN 123
    apcs: mailbox@b011000 {
166
        compatible = "qcom,qcs404-apcs-apps-global", "syscon";
167 168 169 170 171 172
        reg = <0x0b011000 0x1000>;
        #mbox-cells = <1>;
        clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
        clock-names = "pll", "aux";
        #clock-cells = <0>;
    };