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

From: [email-masked] (Jeffrey Hugo)
Date: Tue, 30 Sep 2014 17:16:13 -0600

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 <[email-masked]> 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
>>> +frequencies.
>>> +
>>> +- 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
> "rpm_requests".
>
>>> +- #address-cells:
>>> +	Usage: required
>>> +	Value type: <u32>
>>> +	Definition: must be 1
>>> +
>>> +- #size-cells:
>>> +	Usage: required
>>> +	Value type: <u32>
>>> +	Definition: must be 0
>>> +
>>> += SUBDEVICES
>>
>> 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 https://lkml.org/lkml/2014/3/10/567, it's now the third
> time I send you that link. If you don't like it then ask Rob to revise his
> statement.
>
> 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
> dependencies.
>
> Regards,
> Bjorn
>

Jeffrey Hugo
-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation.