summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/mailbox/qcom,apcs-kpss-global.yaml
blob: 5dc1173d03fd5074f1c31fed74bde09dab7b6827 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# 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 bindings

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

maintainers:
  - Sivaprakash Murugesan <sivaprak@codeaurora.org>

properties:
  compatible:
    enum:
      - qcom,ipq6018-apcs-apps-global
      - qcom,ipq8074-apcs-apps-global
      - 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,sc8180x-apss-shared
      - qcom,sdm660-apcs-hmss-global
      - qcom,sdm845-apss-shared
      - qcom,sm8150-apss-shared

  reg:
    maxItems: 1

  clocks:
    description: phandles to the parent clocks of the clock driver
    minItems: 2
    items:
      - description: primary pll parent of the clock driver
      - description: auxiliary parent
      - description: reference clock

  '#mbox-cells':
    const: 1

  '#clock-cells':
    const: 0

  clock-names:
    minItems: 2
    items:
      - const: pll
      - const: aux
      - const: ref

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

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          enum:
            - qcom,ipq6018-apcs-apps-global
            - qcom,ipq8074-apcs-apps-global
            - 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
            - qcom,sm8150-apss-shared
    then:
      properties:
        clocks:
          maxItems: 2
  - if:
      properties:
        compatible:
          enum:
            - qcom,sdx55-apcs-gcc
    then:
      properties:
        clocks:
          maxItems: 3
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 {
        compatible = "qcom,qcs404-apcs-apps-global";
        reg = <0x0b011000 0x1000>;
        #mbox-cells = <1>;
        clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
        clock-names = "pll", "aux";
        #clock-cells = <0>;
    };