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