1*c66ec88fSEmmanuel VadotQualcomm Resource Power Manager (RPM) over SMD 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThis driver is used to interface with the Resource Power Manager (RPM) found in 4*c66ec88fSEmmanuel Vadotvarious Qualcomm platforms. The RPM allows each component in the system to vote 5*c66ec88fSEmmanuel Vadotfor state of the system resources, such as clocks, regulators and bus 6*c66ec88fSEmmanuel Vadotfrequencies. 7*c66ec88fSEmmanuel Vadot 8*c66ec88fSEmmanuel VadotThe SMD information for the RPM edge should be filled out. See qcom,smd.txt for 9*c66ec88fSEmmanuel Vadotthe required edge properties. All SMD related properties will reside within the 10*c66ec88fSEmmanuel VadotRPM node itself. 11*c66ec88fSEmmanuel Vadot 12*c66ec88fSEmmanuel Vadot= SUBDEVICES 13*c66ec88fSEmmanuel Vadot 14*c66ec88fSEmmanuel VadotThe RPM exposes resources to its subnodes. The rpm_requests node must be 15*c66ec88fSEmmanuel Vadotpresent and this subnode may contain children that designate regulator 16*c66ec88fSEmmanuel Vadotresources. 17*c66ec88fSEmmanuel Vadot 18*c66ec88fSEmmanuel Vadot- compatible: 19*c66ec88fSEmmanuel Vadot Usage: required 20*c66ec88fSEmmanuel Vadot Value type: <string> 21*c66ec88fSEmmanuel Vadot Definition: must be one of: 22*c66ec88fSEmmanuel Vadot "qcom,rpm-apq8084" 23*c66ec88fSEmmanuel Vadot "qcom,rpm-msm8916" 24*c66ec88fSEmmanuel Vadot "qcom,rpm-msm8974" 25*c66ec88fSEmmanuel Vadot "qcom,rpm-msm8976" 26*c66ec88fSEmmanuel Vadot "qcom,rpm-msm8998" 27*c66ec88fSEmmanuel Vadot "qcom,rpm-sdm660" 28*c66ec88fSEmmanuel Vadot "qcom,rpm-qcs404" 29*c66ec88fSEmmanuel Vadot 30*c66ec88fSEmmanuel Vadot- qcom,smd-channels: 31*c66ec88fSEmmanuel Vadot Usage: required 32*c66ec88fSEmmanuel Vadot Value type: <string> 33*c66ec88fSEmmanuel Vadot Definition: must be "rpm_requests" 34*c66ec88fSEmmanuel Vadot 35*c66ec88fSEmmanuel VadotRefer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt 36*c66ec88fSEmmanuel Vadotfor information on the regulator subnodes that can exist under the rpm_requests. 37*c66ec88fSEmmanuel Vadot 38*c66ec88fSEmmanuel VadotExample: 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel Vadot soc { 41*c66ec88fSEmmanuel Vadot apcs: syscon@f9011000 { 42*c66ec88fSEmmanuel Vadot compatible = "syscon"; 43*c66ec88fSEmmanuel Vadot reg = <0xf9011000 0x1000>; 44*c66ec88fSEmmanuel Vadot }; 45*c66ec88fSEmmanuel Vadot }; 46*c66ec88fSEmmanuel Vadot 47*c66ec88fSEmmanuel Vadot smd { 48*c66ec88fSEmmanuel Vadot compatible = "qcom,smd"; 49*c66ec88fSEmmanuel Vadot 50*c66ec88fSEmmanuel Vadot rpm { 51*c66ec88fSEmmanuel Vadot interrupts = <0 168 1>; 52*c66ec88fSEmmanuel Vadot qcom,ipc = <&apcs 8 0>; 53*c66ec88fSEmmanuel Vadot qcom,smd-edge = <15>; 54*c66ec88fSEmmanuel Vadot 55*c66ec88fSEmmanuel Vadot rpm_requests { 56*c66ec88fSEmmanuel Vadot compatible = "qcom,rpm-msm8974"; 57*c66ec88fSEmmanuel Vadot qcom,smd-channels = "rpm_requests"; 58*c66ec88fSEmmanuel Vadot 59*c66ec88fSEmmanuel Vadot ... 60*c66ec88fSEmmanuel Vadot }; 61*c66ec88fSEmmanuel Vadot }; 62*c66ec88fSEmmanuel Vadot }; 63