Hi Marek, > -----Original Message----- > From: [email protected] [mailto:linux-kernel- > [email protected]] On Behalf Of Jolly Shah > Sent: Thursday, March 15, 2018 10:47 AM > To: Marek Szyprowski <[email protected]>; Geert Uytterhoeven > <[email protected]>; Rob Herring <[email protected]> > Cc: Matthias Brugger <[email protected]>; Andy Gross > <[email protected]>; Shawn Guo <[email protected]>; Geert > Uytterhoeven <[email protected]>; Björn Andersson > <[email protected]>; [email protected]; Michal Simek > <[email protected]>; Mark Rutland <[email protected]>; Rajan > Vaja <[email protected]>; open list:OPEN FIRMWARE AND FLATTENED > DEVICE TREE BINDINGS <[email protected]>; Linux ARM <linux-arm- > [email protected]>; Linux Kernel Mailing List <linux- > [email protected]> > Subject: RE: [PATCH 1/2] dt-bindings: power: Add ZynqMP power domain > bindings > > [This sender failed our fraud detection checks and may not be who they appear > to be. Learn about spoofing at http://aka.ms/LearnAboutSpoofing] > > Hi Rob, Geert, Marek, > > > -----Original Message----- > > From: Marek Szyprowski [mailto:[email protected]] > > Sent: Tuesday, March 06, 2018 12:06 AM > > To: Geert Uytterhoeven <[email protected]>; Rob Herring > > <[email protected]> > > Cc: Jolly Shah <[email protected]>; Matthias Brugger > > <[email protected]>; Andy Gross <[email protected]>; Shawn > > Guo <[email protected]>; Geert Uytterhoeven > > <[email protected]>; Björn Andersson > > <[email protected]>; [email protected]; Michal Simek > > <[email protected]>; Mark Rutland <[email protected]>; Rajan > > Vaja <[email protected]>; open list:OPEN FIRMWARE AND FLATTENED > DEVICE > > TREE BINDINGS <[email protected]>; Linux ARM <linux-arm- > > [email protected]>; Linux Kernel Mailing List <linux- > > [email protected]>; Jolly Shah <[email protected]> > > Subject: Re: [PATCH 1/2] dt-bindings: power: Add ZynqMP power domain > > bindings > > > > Hi All, > > > > On 2018-03-06 08:59, Geert Uytterhoeven wrote: > > > Hi Rob, Jolly, > > > > > > On Mon, Mar 5, 2018 at 11:39 PM, Rob Herring <[email protected]> wrote: > > >> On Tue, Feb 27, 2018 at 03:55:49PM -0800, Jolly Shah wrote: > > >>> Add documentation to describe ZynqMP power domain bindings. > > >>> > > >>> Signed-off-by: Jolly Shah <[email protected]> > > >>> Signed-off-by: Rajan Vaja <[email protected]> > > >>> --- > > >>> .../devicetree/bindings/power/zynqmp-genpd.txt | 46 > > ++++++++++++++++++++++ > > >>> 1 file changed, 46 insertions(+) > > >>> create mode 100644 > > >>> Documentation/devicetree/bindings/power/zynqmp-genpd.txt > > >>> > > >>> diff --git > > >>> a/Documentation/devicetree/bindings/power/zynqmp-genpd.txt > > >>> b/Documentation/devicetree/bindings/power/zynqmp-genpd.txt > > >>> new file mode 100644 > > >>> index 0000000..25f9711 > > >>> --- /dev/null > > >>> +++ b/Documentation/devicetree/bindings/power/zynqmp-genpd.txt > > >>> +This node contains a number of subnodes, each representing a > > >>> +single PM domain that PM domain consumer devices reference. > > >>> + > > >>> +== PM Domain Nodes == > > >>> + > > >>> +Required properties: > > >>> + - #power-domain-cells: Number of cells in a PM domain specifier. > > >>> +Must be > > 0. > > >>> + - pd-id: List of domain identifiers of as defined by platform > > >>> firmware. > > These > > >>> + identifiers are passed to the PM firmware. > > >>> + > > >>> +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. > > > Best regards > > -- > > Marek Szyprowski, PhD > > Samsung R&D Institute Poland
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. Thanks, Jolly Shah

