File Index
Files and directories
Sign in
FILE

qcom,apcs-kpss-global.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/mailbox/qcom,apcs-kpss-global.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Qualcomm APCS global block
  8
  9description:
 10  This binding describes the APCS "global" block found in various Qualcomm
 11  platforms.
 12
 13maintainers:
 14  - Jassi Brar <jassisinghbrar@gmail.com>
 15
 16properties:
 17  compatible:
 18    oneOf:
 19      - items:
 20          - enum:
 21              - qcom,ipq5018-apcs-apps-global
 22              - qcom,ipq5332-apcs-apps-global
 23              - qcom,ipq5424-apcs-apps-global
 24              - qcom,ipq8074-apcs-apps-global
 25              - qcom,ipq9574-apcs-apps-global
 26          - const: qcom,ipq6018-apcs-apps-global
 27      - items:
 28          - enum:
 29              - qcom,msm8226-apcs-kpss-global
 30              - qcom,qcs404-apcs-apps-global
 31          - const: qcom,msm8916-apcs-kpss-global
 32          - const: syscon
 33      - items:
 34          - enum:
 35              - qcom,msm8974-apcs-kpss-global
 36              - qcom,msm8976-apcs-kpss-global
 37          - const: qcom,msm8994-apcs-kpss-global
 38          - const: syscon
 39      - items:
 40          - enum:
 41              - qcom,msm8998-apcs-hmss-global
 42              - qcom,sdm660-apcs-hmss-global
 43              - qcom,sm4250-apcs-hmss-global
 44              - qcom,sm6115-apcs-hmss-global
 45              - qcom,sm6125-apcs-hmss-global
 46          - const: qcom,msm8994-apcs-kpss-global
 47      - items:
 48          - enum:
 49              - qcom,qcs615-apss-shared
 50              - qcom,sc7180-apss-shared
 51              - qcom,sc8180x-apss-shared
 52              - qcom,sm7150-apss-shared
 53              - qcom,sm8150-apss-shared
 54          - const: qcom,sdm845-apss-shared
 55      - items:
 56          - enum:
 57              - qcom,msm8916-apcs-kpss-global
 58              - qcom,msm8939-apcs-kpss-global
 59              - qcom,msm8953-apcs-kpss-global
 60              - qcom,msm8994-apcs-kpss-global
 61              - qcom,sdx55-apcs-gcc
 62          - const: syscon
 63      - enum:
 64          - qcom,ipq6018-apcs-apps-global
 65          - qcom,msm8996-apcs-hmss-global
 66          - qcom,qcm2290-apcs-hmss-global
 67          - qcom,sdm845-apss-shared
 68
 69  reg:
 70    maxItems: 1
 71
 72  clocks:
 73    description: phandles to the parent clocks of the clock driver
 74    minItems: 2
 75    maxItems: 3
 76    deprecated: true
 77
 78  '#mbox-cells':
 79    const: 1
 80
 81  '#clock-cells':
 82    enum: [0, 1]
 83
 84  clock-names:
 85    minItems: 2
 86    maxItems: 3
 87    deprecated: true
 88
 89  clock-controller:
 90    type: object
 91    additionalProperties: false
 92    properties:
 93      clocks:
 94        description: phandles to the parent clocks of the clock driver
 95        minItems: 2
 96        maxItems: 3
 97
 98      '#clock-cells':
 99        enum: [0, 1]
100
101      clock-names:
102        minItems: 2
103        maxItems: 3
104
105required:
106  - compatible
107  - reg
108  - '#mbox-cells'
109
110additionalProperties: false
111
112# Clocks should be specified either on the parent node or on the child node
113oneOf:
114  - required:
115      - clock-controller
116    properties:
117      clocks: false
118      clock-names: false
119      '#clock-cells': false
120  - properties:
121      clock-controller: false
122
123$defs:
124  msm8916-apcs-clock-controller:
125    properties:
126      clocks:
127        items:
128          - description: primary pll parent of the clock driver
129          - description: auxiliary parent
130      clock-names:
131        items:
132          - const: pll
133          - const: aux
134      '#clock-cells':
135        const: 0
136
137  msm8939-apcs-clock-controller:
138    properties:
139      clocks:
140        items:
141          - description: primary pll parent of the clock driver
142          - description: auxiliary parent
143          - description: reference clock
144      clock-names:
145        items:
146          - const: pll
147          - const: aux
148          - const: ref
149      '#clock-cells':
150        const: 0
151
152  sdx55-apcs-clock-controller:
153    properties:
154      clocks:
155        items:
156          - description: reference clock
157          - description: primary pll parent of the clock driver
158          - description: auxiliary parent
159      clock-names:
160        items:
161          - const: ref
162          - const: pll
163          - const: aux
164      '#clock-cells':
165        const: 0
166
167  ipq6018-apcs-clock-controller:
168    properties:
169      clocks:
170        items:
171          - description: primary pll parent of the clock driver
172          - description: XO clock
173          - description: GCC GPLL0 clock source
174      clock-names:
175        items:
176          - const: pll
177          - const: xo
178          - const: gpll0
179      '#clock-cells':
180        const: 1
181
182allOf:
183  - if:
184      properties:
185        compatible:
186          contains:
187            enum:
188              - qcom,msm8916-apcs-kpss-global
189    then:
190      $ref: '#/$defs/msm8916-apcs-clock-controller'
191      properties:
192        clock-controller:
193          $ref: '#/$defs/msm8916-apcs-clock-controller'
194
195  - if:
196      properties:
197        compatible:
198          contains:
199            enum:
200              - qcom,msm8939-apcs-kpss-global
201    then:
202      $ref: '#/$defs/msm8939-apcs-clock-controller'
203      properties:
204        clock-controller:
205          $ref: '#/$defs/msm8939-apcs-clock-controller'
206
207  - if:
208      properties:
209        compatible:
210          contains:
211            enum:
212              - qcom,sdx55-apcs-gcc
213    then:
214      $ref: '#/$defs/sdx55-apcs-clock-controller'
215      properties:
216        clock-controller:
217          $ref: '#/$defs/sdx55-apcs-clock-controller'
218
219  - if:
220      properties:
221        compatible:
222          contains:
223            enum:
224              - qcom,ipq6018-apcs-apps-global
225    then:
226      $ref: '#/$defs/ipq6018-apcs-clock-controller'
227      properties:
228        clock-controller:
229          $ref: '#/$defs/ipq6018-apcs-clock-controller'
230
231  - if:
232      properties:
233        compatible:
234          contains:
235            enum:
236              - qcom,msm8953-apcs-kpss-global
237              - qcom,msm8994-apcs-kpss-global
238              - qcom,msm8996-apcs-hmss-global
239              - qcom,qcm2290-apcs-hmss-global
240              - qcom,sdm845-apss-shared
241    then:
242      properties:
243        clocks: false
244        clock-names: false
245        clock-controller: false
246        '#clock-cells':
247          const: 0
248
249examples:
250
251  # Example apcs with msm8996
252  - |
253    #include <dt-bindings/interrupt-controller/arm-gic.h>
254    mailbox@9820000 {
255        compatible = "qcom,msm8996-apcs-hmss-global";
256        reg = <0x9820000 0x1000>;
257
258        #mbox-cells = <1>;
259        #clock-cells = <0>;
260    };
261
262  # Example apcs with qcs404
263  - |
264    #define GCC_APSS_AHB_CLK_SRC  1
265    #define GCC_GPLL0_AO_OUT_MAIN 123
266    mailbox@b011000 {
267        compatible = "qcom,qcs404-apcs-apps-global",
268                     "qcom,msm8916-apcs-kpss-global", "syscon";
269        reg = <0x0b011000 0x1000>;
270        #mbox-cells = <1>;
271
272        apcs_clk: clock-controller {
273          clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
274          clock-names = "pll", "aux";
275          #clock-cells = <0>;
276        };
277    };
278
279  # Example apcs with qcs404 (deprecated: use clock-controller subnode)
280  - |
281    #define GCC_APSS_AHB_CLK_SRC  1
282    #define GCC_GPLL0_AO_OUT_MAIN 123
283    apcs: mailbox@b011000 {
284        compatible = "qcom,qcs404-apcs-apps-global",
285                     "qcom,msm8916-apcs-kpss-global", "syscon";
286        reg = <0x0b011000 0x1000>;
287        #mbox-cells = <1>;
288        clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
289        clock-names = "pll", "aux";
290        #clock-cells = <0>;
291    };
~/ Read-only file preview.