Re: [PATCH 2/3] dt-bindings: Document Renesas R-Car FCP power-domains usage

From: Geert Uytterhoeven
Date: Sun Jun 12 2016 - 04:47:03 EST


Hi Rob,

CC linux-pm

On Fri, Jun 10, 2016 at 11:33 PM, Rob Herring <robh@xxxxxxxxxx> wrote:
> On Fri, Jun 10, 2016 at 2:11 PM, Geert Uytterhoeven
> <geert@xxxxxxxxxxxxxx> wrote:
>> On Fri, Jun 10, 2016 at 7:39 PM, Rob Herring <robh@xxxxxxxxxx> wrote:
>>> On Thu, Jun 09, 2016 at 02:41:33PM +0100, Kieran Bingham wrote:
>>>> The power domain must be specified to bring the device out of module
>>>> standby. Document this in the example provided, so that new additions
>>>> are not missed.
>>>>
>>>> Signed-off-by: Kieran Bingham <kieran@xxxxxxxxxxx>
>>>> ---
>>>> Documentation/devicetree/bindings/media/renesas,fcp.txt | 1 +
>>>> 1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/media/renesas,fcp.txt b/Documentation/devicetree/bindings/media/renesas,fcp.txt
>>>> index 271dcfdb5a76..6a55f5215221 100644
>>>> --- a/Documentation/devicetree/bindings/media/renesas,fcp.txt
>>>> +++ b/Documentation/devicetree/bindings/media/renesas,fcp.txt
>>>> @@ -31,4 +31,5 @@ Device node example
>>>> compatible = "renesas,r8a7795-fcpv", "renesas,fcpv";
>>>> reg = <0 0xfea2f000 0 0x200>;
>>>> clocks = <&cpg CPG_MOD 602>;
>>>> + power-domains = <&sysc R8A7795_PD_A3VP>;
>>>
>>> This needs to be documented above too, not just the example.
>>
>> Why? Power domains are an optional feature, whose presence depends
>> on the platform, not on the device.
>
> Examples are not documentation. The binding should stand on its own
> without the example.
>
> How did I know this is optional unless you document it as optional?
> How many power domains does the device have?

The device does not have power domains, and is not aware of the existence
of power domains. Each SoC has one or more power domains.

"power-domains" properties are used to describe the hierarchical relationship
between power domains and the devices that resides in these power domains.
Just like nodes and subnodes describe the hierarchical relationship between
buses and the devices directly connected to these buses.

On the (Linux) software side, the device driver does have to use Runtime PM
if an SoC has more power domains than just the single "always-on" power domain.

>> Hence "power-domains" properties may appear in any device node.
>> Having to document them in every single binding document is overkill.
>
> We do it for everything else pretty much. There's some exceptions like "status".

IMHO having to document "power-domains" in every single DT binding is
as silly as having to document that the device node must be a child of the bus
device node in every single DT binding. This belongs in the DT binding of the
power controller, which is the device controlling the power domain.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds