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

2018-07-20 Thread Jolly Shah
Hi Marek,

> -Original Message-
> From: Jolly Shah
> Sent: Friday, May 18, 2018 2:19 PM
> To: 'Marek Szyprowski' 
> Cc: Matthias Brugger ; Andy Gross
> ; Shawn Guo ; Geert
> Uytterhoeven ; Björn Andersson
> ; sean.w...@mediatek.com; Michal Simek
> ; Mark Rutland ; Rajan
> Vaja ; open list:OPEN FIRMWARE AND FLATTENED
> DEVICE TREE BINDINGS ; Linux ARM  ker...@lists.infradead.org>; Linux Kernel Mailing List  ker...@vger.kernel.org>; Geert Uytterhoeven ; Rob
> Herring 
> Subject: RE: [PATCH 1/2] dt-bindings: power: Add ZynqMP power domain
> bindings
> 
> Hi Marek,
> 
> > -Original Message-
> > From: Marek Szyprowski [mailto:m.szyprow...@samsung.com]
> > Sent: Thursday, May 17, 2018 11:31 PM
> > To: Jolly Shah ; Geert Uytterhoeven  > m68k.org>; Rob Herring 
> > Cc: Matthias Brugger ; Andy Gross
> > ; Shawn Guo ; Geert
> > Uytterhoeven ; Björn Andersson
> > ; sean.w...@mediatek.com; Michal Simek
> > ; Mark Rutland ; Rajan
> > Vaja ; open list:OPEN FIRMWARE AND FLATTENED
> DEVICE
> > TREE BINDINGS ; Linux ARM  > ker...@lists.infradead.org>; Linux Kernel Mailing List  > ker...@vger.kernel.org>
> > 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




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

2018-05-18 Thread Jolly Shah
Hi Marek,

> -Original Message-
> From: Marek Szyprowski [mailto:m.szyprow...@samsung.com]
> Sent: Thursday, May 17, 2018 11:31 PM
> To: Jolly Shah ; Geert Uytterhoeven  m68k.org>; Rob Herring 
> Cc: Matthias Brugger ; Andy Gross
> ; Shawn Guo ; Geert
> Uytterhoeven ; Björn Andersson
> ; sean.w...@mediatek.com; Michal Simek
> ; Mark Rutland ; Rajan
> Vaja ; open list:OPEN FIRMWARE AND FLATTENED
> DEVICE TREE BINDINGS ; Linux ARM  ker...@lists.infradead.org>; Linux Kernel Mailing List  ker...@vger.kernel.org>
> 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




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

2018-05-17 Thread Marek Szyprowski
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



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

2018-05-17 Thread Jolly Shah
Hi Marek,

> -Original Message-
> From: linux-kernel-ow...@vger.kernel.org [mailto:linux-kernel-
> ow...@vger.kernel.org] On Behalf Of Jolly Shah
> Sent: Thursday, March 15, 2018 10:47 AM
> To: Marek Szyprowski ; Geert Uytterhoeven
> ; Rob Herring 
> Cc: Matthias Brugger ; Andy Gross
> ; Shawn Guo ; Geert
> Uytterhoeven ; Björn Andersson
> ; sean.w...@mediatek.com; Michal Simek
> ; Mark Rutland ; Rajan
> Vaja ; open list:OPEN FIRMWARE AND FLATTENED
> DEVICE TREE BINDINGS ; Linux ARM  ker...@lists.infradead.org>; Linux Kernel Mailing List  ker...@vger.kernel.org>
> 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:m.szyprow...@samsung.com]
> > Sent: Tuesday, March 06, 2018 12:06 AM
> > To: Geert Uytterhoeven ; Rob Herring
> > 
> > Cc: Jolly Shah ; Matthias Brugger
> > ; Andy Gross ; Shawn
> > Guo ; Geert Uytterhoeven
> > ; Björn Andersson
> > ; sean.w...@mediatek.com; Michal Simek
> > ; Mark Rutland ; Rajan
> > Vaja ; open list:OPEN FIRMWARE AND FLATTENED
> DEVICE
> > TREE BINDINGS ; Linux ARM  > ker...@lists.infradead.org>; Linux Kernel Mailing List  > ker...@vger.kernel.org>; Jolly Shah 
> > 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  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 
> > >>> Signed-off-by: Rajan Vaja 
> > >>> ---
> > >>>   .../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 000..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


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

2018-03-15 Thread Jolly Shah
Hi Rob, Geert, Marek,

> -Original Message-
> From: Marek Szyprowski [mailto:m.szyprow...@samsung.com]
> Sent: Tuesday, March 06, 2018 12:06 AM
> To: Geert Uytterhoeven ; Rob Herring
> 
> Cc: Jolly Shah ; Matthias Brugger
> ; Andy Gross ; Shawn Guo
> ; Geert Uytterhoeven ;
> Björn Andersson ; sean.w...@mediatek.com;
> Michal Simek ; Mark Rutland
> ; Rajan Vaja ; open list:OPEN
> FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
> ; Linux ARM  ker...@lists.infradead.org>; Linux Kernel Mailing List  ker...@vger.kernel.org>; Jolly Shah 
> 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  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 
> >>> Signed-off-by: Rajan Vaja 
> >>> ---
> >>>   .../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 000..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



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

2018-03-06 Thread Marek Szyprowski

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  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 
Signed-off-by: Rajan Vaja 
---
  .../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 000..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>;
+ };
+ };


Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland



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

2018-03-06 Thread Geert Uytterhoeven
Hi Rob, Jolly,

On Mon, Mar 5, 2018 at 11:39 PM, Rob Herring  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 
>> Signed-off-by: Rajan Vaja 
>> ---
>>  .../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 000..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?

>> + #power-domain-cells = <0x0>;
>> + };
>> + };

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

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


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

2018-03-05 Thread Rob Herring
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 
> Signed-off-by: Rajan Vaja 
> ---
>  .../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 000..25f9711
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/power/zynqmp-genpd.txt
> @@ -0,0 +1,46 @@
> +Device Tree bindings for Xilinx Zynq MPSoC PM domains
> +
> +The binding for zynqmp-genpd follow the common generic PM domain binding[1].
> +
> +[1] Documentation/devicetree/bindings/power/power_domain.txt
> +
> +== Zynq MPSoC Generic PM Domain Node ==
> +
> +Required properties:
> + - compatible: Must be: "xlnx,zynqmp-genpd"

genpd is a Linux term. The DT should contain a power controller that 
controls physical power islands on a chip.

> +
> +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.

> + };
> +
> + pd_sata: pd-sata {
> + pd-id = <28>;
> + #power-domain-cells = <0>;
> + };
> +
> + pd_gpu: pd-gpu {
> + pd-id = <58 20 21>;
> + #power-domain-cells = <0x0>;
> + };
> + };
> +
> + sata0: ahci@SATA_AHCI_HBA {
> + ...
> + power-domains = <&pd_sata>;
> + ...
> + };
> -- 
> 2.7.4
>