RE: [PATCH 1/2] dt-bindings: power: Add ZynqMP power domain bindings

From: Jolly Shah
Date: Fri Jul 20 2018 - 12:58:10 EST


Hi Marek,

> -----Original Message-----
> From: Jolly Shah
> Sent: Friday, May 18, 2018 2:19 PM
> To: 'Marek Szyprowski' <m.szyprowski@xxxxxxxxxxx>
> Cc: Matthias Brugger <matthias.bgg@xxxxxxxxx>; Andy Gross
> <andy.gross@xxxxxxxxxx>; Shawn Guo <shawnguo@xxxxxxxxxx>; Geert
> Uytterhoeven <geert+renesas@xxxxxxxxx>; BjÃrn Andersson
> <bjorn.andersson@xxxxxxxxxx>; sean.wang@xxxxxxxxxxxx; Michal Simek
> <michal.simek@xxxxxxxxxx>; Mark Rutland <mark.rutland@xxxxxxx>; Rajan
> Vaja <RAJANV@xxxxxxxxxx>; open list:OPEN FIRMWARE AND FLATTENED
> DEVICE TREE BINDINGS <devicetree@xxxxxxxxxxxxxxx>; Linux ARM <linux-arm-
> kernel@xxxxxxxxxxxxxxxxxxx>; Linux Kernel Mailing List <linux-
> kernel@xxxxxxxxxxxxxxx>; Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>; Rob
> Herring <robh@xxxxxxxxxx>
> Subject: RE: [PATCH 1/2] dt-bindings: power: Add ZynqMP power domain
> bindings
>
> Hi Marek,
>
> > -----Original Message-----
> > From: Marek Szyprowski [mailto:m.szyprowski@xxxxxxxxxxx]
> > Sent: Thursday, May 17, 2018 11:31 PM
> > To: Jolly Shah <JOLLYS@xxxxxxxxxx>; Geert Uytterhoeven <geert@linux-
> > m68k.org>; Rob Herring <robh@xxxxxxxxxx>
> > Cc: Matthias Brugger <matthias.bgg@xxxxxxxxx>; Andy Gross
> > <andy.gross@xxxxxxxxxx>; Shawn Guo <shawnguo@xxxxxxxxxx>; Geert
> > Uytterhoeven <geert+renesas@xxxxxxxxx>; BjÃrn Andersson
> > <bjorn.andersson@xxxxxxxxxx>; sean.wang@xxxxxxxxxxxx; Michal Simek
> > <michal.simek@xxxxxxxxxx>; Mark Rutland <mark.rutland@xxxxxxx>; Rajan
> > Vaja <RAJANV@xxxxxxxxxx>; open list:OPEN FIRMWARE AND FLATTENED
> DEVICE
> > TREE BINDINGS <devicetree@xxxxxxxxxxxxxxx>; Linux ARM <linux-arm-
> > kernel@xxxxxxxxxxxxxxxxxxx>; Linux Kernel Mailing List <linux-
> > kernel@xxxxxxxxxxxxxxx>
> > Subject: Re: [PATCH 1/2] dt-bindings: power: Add ZynqMP power domain
> > bindings
> >
> > Hi Jolly,
> >
> > On 2018-05-17 23:10, Jolly Shah wrote:
> >
> > >>>>>> +Example:
> > >>>>>> + zynqmp-genpd {
> > >>>>>> + compatible = "xlnx,zynqmp-genpd";
> > >>>>> What's the control interface for controlling the domains?
> > >>>>>> +
> > >>>>>> + pd_usb0: pd-usb0 {
> > >>>>>> + pd-id = <22>;
> > >>>>>> + #power-domain-cells = <0>;
> > >>>>> There's no need for all these sub nodes. Make
> > >>>>> #power-domain-cells
> > >>>>> 1 and put the id in the cell value.
> > >>>> That was my first reaction, too...
> > >>>>>> + };
> > >>>>>> +
> > >>>>>> + pd_sata: pd-sata {
> > >>>>>> + pd-id = <28>;
> > >>>>>> + #power-domain-cells = <0>;
> > >>>>>> + };
> > >>>>>> +
> > >>>>>> + pd_gpu: pd-gpu {
> > >>>>>> + pd-id = <58 20 21>;
> > >>>> ... until I saw the above.
> > >>>> Controlling the GPU power area requires controlling 3 physical areas?
> > >>>>
> > >>>> However, doing it this way may bite you in the future, if a need
> > >>>> arises to control a subset. And what about power up/down order?
> > >>> What about defining 3 separate domains and arranging them in
> > >>> parent-child relationship? generic power domains already supports
> > >>> that and this allows to nicely define the power on/off order.
> > >>>
> > >>>>>> + #power-domain-cells = <0x0>;
> > >>>>>> + };
> > >>>>>> + };
> > >> I agree it should be arranged in as parent child order to control
> > >> subset or control order. Will incorporate those changes in next version.
> > >
> > > As suggested, I tried out parent, child approach. However what I
> > > found is
> > Genpd core takes care of parent child dependencies for power on off
> > routines only. In our case, We need them in attach-detach routines
> > too. In that case, we need to handle dependencies manually for those
> > routines. Please suggest better approach, if any.
> >
> > What do you mean to handle attach-detach?
> >
> > Best regards
> > --
> > Marek Szyprowski, PhD
> > Samsung R&D Institute Poland
>
> For our power domain driver, we request usage of these nodes in attach
> routines and power them on in power on routine. So for below specific case,
> when attach_dev is called, all 3 nodes need to be requested.
>
> > >>>>>> + pd_gpu: pd-gpu {
> > >>>>>> + pd-id = <58 20 21>;
>
> Thanks,
> Jolly Shah
>

Please let me know your opinion.

Thanks,
Jolly Shah