1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: "http://devicetree.org/schemas/soc/qcom/qcom,smd-rpm.yaml#"
5$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6
7title: Qualcomm Resource Power Manager (RPM) over SMD
8
9description: |
10  This driver is used to interface with the Resource Power Manager (RPM) found
11  in various Qualcomm platforms. The RPM allows each component in the system
12  to vote for state of the system resources, such as clocks, regulators and bus
13  frequencies.
14
15  The SMD information for the RPM edge should be filled out.  See qcom,smd.txt
16  for the required edge properties.  All SMD related properties will reside
17  within the RPM node itself.
18
19  The RPM exposes resources to its subnodes.  The rpm_requests node must be
20  present and this subnode may contain children that designate regulator
21  resources.
22
23  Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml
24  for information on the regulator subnodes that can exist under the
25  rpm_requests.
26
27maintainers:
28  - Kathiravan T <kathirav@codeaurora.org>
29
30properties:
31  compatible:
32    enum:
33      - qcom,rpm-apq8084
34      - qcom,rpm-ipq6018
35      - qcom,rpm-msm8226
36      - qcom,rpm-msm8916
37      - qcom,rpm-msm8953
38      - qcom,rpm-msm8974
39      - qcom,rpm-msm8976
40      - qcom,rpm-msm8996
41      - qcom,rpm-msm8998
42      - qcom,rpm-sdm660
43      - qcom,rpm-sm6115
44      - qcom,rpm-sm6125
45      - qcom,rpm-qcm2290
46      - qcom,rpm-qcs404
47
48  qcom,smd-channels:
49    $ref: /schemas/types.yaml#/definitions/string-array
50    description: Channel name used for the RPM communication
51    items:
52      - const: rpm_requests
53
54if:
55  properties:
56    compatible:
57      contains:
58        enum:
59          - qcom,rpm-apq8084
60          - qcom,rpm-msm8916
61          - qcom,rpm-msm8974
62          - qcom,rpm-msm8953
63then:
64  required:
65    - qcom,smd-channels
66
67required:
68  - compatible
69
70additionalProperties: false
71
72examples:
73  - |
74    #include <dt-bindings/interrupt-controller/arm-gic.h>
75    #include <dt-bindings/interrupt-controller/irq.h>
76
77    smd {
78        compatible = "qcom,smd";
79
80        rpm {
81            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
82            qcom,ipc = <&apcs 8 0>;
83            qcom,smd-edge = <15>;
84
85                rpm_requests {
86                        compatible = "qcom,rpm-msm8974";
87                        qcom,smd-channels = "rpm_requests";
88
89                        /* Regulator nodes to follow */
90                };
91            };
92     };
93...
94