Re: [RFC 3/7] mfd: devicetree: bindings: Add Qualcomm SMD based RPM DT binding

From: Jeffrey Hugo
Date: Tue Sep 30 2014 - 19:16:23 EST

On 9/30/2014 8:37 AM, Bjorn Andersson wrote:
On Tue 30 Sep 06:46 PDT 2014, Kumar Gala wrote:

On Sep 29, 2014, at 7:34 PM, Bjorn Andersson <Bjorn.Andersson@xxxxxxxxxxxxxx> wrote:

diff --git a/Documentation/devicetree/bindings/mfd/qcom-rpm-smd.txt b/Documentation/devicetree/bindings/mfd/qcom-rpm-smd.txt
new file mode 100644
index 0000000..a846101
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/qcom-rpm-smd.txt
@@ -0,0 +1,122 @@
+Qualcomm Resource Power Manager (RPM) over SMD
+This driver is used to interface with the Resource Power Manager (RPM) found in
+various Qualcomm platforms. The RPM allows each component in the system to vote
+for state of the system resources, such as clocks, regulators and bus
+- compatible:
+ Usage: required
+ Value type: <string>
+ Definition: must be one of:
+ "qcom,rpm-msm8974”

Why not “qcom,rpm-smd”. I’d like to get Jeff H’s input on how
what we do here for compat and distinguish the A-family RPM support vs
B-family/RPM-SMD support.

I don't see anything indicating changes in the actual communication, but as
this also encodes what resources are exposed we have to keep this specific.

I'm not sure what you mean with distinguish the A and B family, they are
completely different and there are no overlap in compatibles or implementation.

The overlap is in how children are communicating with the rpm, but this is an
implementation detail - and noted in that patch as a future improvement.

I forgot to add Jeff, but did send him a separate email asking for his input on
all this.

Yep. I saw the series. Still doing a deep dive.

The rpm-smd driver (and the A family equivalent) is outside of my area of expertise, but I have some familiarity with it as it is a SMD client. Internally we have a singular compat for all of B family, but I haven't been able to figure out how that works to expose all of the resources. I'll talk to my contact later in the week to see what the differences are.

Is the per target compat the way to do this though? The way its currently done means we'll have atleast a dozen tables in qcom-smd-rpm.c, and I can't imagine they will have anything more than minor differences from the msm8x74_resource_table that currently exists in patch 6 of the series. Why wouldn't one table that is a superset of all supported targets work?

+- qcom,smd-channels:
+ Usage: required
+ Value type: <stringlist>
+ Definition: Shared Memory Channel used for communication with the RPM

This needs more details.

Not sure what more to add here. It should contain the name of the channel used
for communication with the rpm. For all current platforms this would be

+- #address-cells:
+ Usage: required
+ Value type: <u32>
+ Definition: must be 1
+- #size-cells:
+ Usage: required
+ Value type: <u32>
+ Definition: must be 0

As I mentioned for the the RPM binding on a-family, we should split out the
devices into their own binding specs.

Please actually read, it's now the third
time I send you that link. If you don't like it then ask Rob to revise his

For me it makes sense to consolidate the RPM binding in one document rather
than spreading it out in 10 different documents with some implicit


Jeffrey Hugo
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at