diff mbox

[v3,1/2] Documentation: mmc: sdhci-of-arasan: add description of power domain

Message ID 20160917023250.1159-2-xzy.xu@rock-chips.com (mailing list archive)
State New, archived
Headers show

Commit Message

ziyuan Sept. 17, 2016, 2:32 a.m. UTC
Add power domain as a optional property for sdhci-of-arasan, which can
be turned off in the so-called unused condition, such as suspend and
remove. Aim to lower power requirements.

Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>

Acked-by: Rob Herring <robh@kernel.org>
---

Changes in v3:
- fix a typo
- add Rob's ack-tag

Changes in v2:
- fix a typo
- add an example code for power-domain

 Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Ulf Hansson Sept. 17, 2016, 8:49 a.m. UTC | #1
On 17 September 2016 at 04:32, Ziyuan Xu <xzy.xu@rock-chips.com> wrote:
> Add power domain as a optional property for sdhci-of-arasan, which can
> be turned off in the so-called unused condition, such as suspend and
> remove. Aim to lower power requirements.

I assume runtime suspend make sense as well?

Moreover, perhaps you could share a little information here about what
needs to be done at the driver level which controls the mmc IP. More
precisely, what do you need to do at runtime_suspend, suspend,
runtime_resume, and resume?

Kind regards
Uffe

>
> Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
>
> Acked-by: Rob Herring <robh@kernel.org>
> ---
>
> Changes in v3:
> - fix a typo
> - add Rob's ack-tag
>
> Changes in v2:
> - fix a typo
> - add an example code for power-domain
>
>  Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> index 3404afa..eb84d29 100644
> --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> @@ -1,12 +1,14 @@
>  Device Tree Bindings for the Arasan SDHCI Controller
>
> -  The bindings follow the mmc[1], clock[2], interrupt[3] and phy[4] bindings.
> +  The bindings follow the mmc[1], clock[2], interrupt[3], phy[4] and power
> +  domain[5] bindings.
>    Only deviations are documented here.
>
>    [1] Documentation/devicetree/bindings/mmc/mmc.txt
>    [2] Documentation/devicetree/bindings/clock/clock-bindings.txt
>    [3] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
>    [4] Documentation/devicetree/bindings/phy/phy-bindings.txt
> +  [5] Documentation/devicetree/bindings/power/power_domain.txt
>
>  Required Properties:
>    - compatible: Compatibility string.  One of:
> @@ -36,6 +38,8 @@ Optional Properties:
>    - #clock-cells: If specified this should be the value <0>.  With this property
>      in place we will export a clock representing the Card Clock.  This clock
>      is expected to be consumed by our PHY.  You must also specify
> +  - power-domains: A phandle and PM domain as specifier defined by bindings
> +    of the power controller specified by phandle.
>
>  Example:
>         sdhci@e0100000 {
> @@ -71,5 +75,6 @@ Example:
>                 phys = <&emmc_phy>;
>                 phy-names = "phy_arasan";
>                 #clock-cells = <0>;
> +               power-domains = <&power RK3399_PD_EMMC>;
>                 status = "disabled";
>         };
> --
> 2.9.2
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Heiko Stübner Sept. 17, 2016, 9:01 a.m. UTC | #2
Hi,

Am Samstag, 17. September 2016, 10:32:49 CEST schrieb Ziyuan Xu:
> Add power domain as a optional property for sdhci-of-arasan, which can
> be turned off in the so-called unused condition, such as suspend and
> remove. Aim to lower power requirements.
> 
> Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
> 
> Acked-by: Rob Herring <robh@kernel.org>

Reviewed-by: Heiko Stuebner <heiko@sntech.de>

@Ulf: I guess you'll take this binding change through the mmc tree and I'll 
pick up the devicetree change.


Heiko

> ---
> 
> Changes in v3:
> - fix a typo
> - add Rob's ack-tag
> 
> Changes in v2:
> - fix a typo
> - add an example code for power-domain
> 
>  Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt index
> 3404afa..eb84d29 100644
> --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> @@ -1,12 +1,14 @@
>  Device Tree Bindings for the Arasan SDHCI Controller
> 
> -  The bindings follow the mmc[1], clock[2], interrupt[3] and phy[4]
> bindings. +  The bindings follow the mmc[1], clock[2], interrupt[3], phy[4]
> and power +  domain[5] bindings.
>    Only deviations are documented here.
> 
>    [1] Documentation/devicetree/bindings/mmc/mmc.txt
>    [2] Documentation/devicetree/bindings/clock/clock-bindings.txt
>    [3] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> [4] Documentation/devicetree/bindings/phy/phy-bindings.txt
> +  [5] Documentation/devicetree/bindings/power/power_domain.txt
> 
>  Required Properties:
>    - compatible: Compatibility string.  One of:
> @@ -36,6 +38,8 @@ Optional Properties:
>    - #clock-cells: If specified this should be the value <0>.  With this
> property in place we will export a clock representing the Card Clock.  This
> clock is expected to be consumed by our PHY.  You must also specify +  -
> power-domains: A phandle and PM domain as specifier defined by bindings +  
>  of the power controller specified by phandle.
> 
>  Example:
>  	sdhci@e0100000 {
> @@ -71,5 +75,6 @@ Example:
>  		phys = <&emmc_phy>;
>  		phy-names = "phy_arasan";
>  		#clock-cells = <0>;
> +		power-domains = <&power RK3399_PD_EMMC>;
>  		status = "disabled";
>  	};
Ulf Hansson Sept. 17, 2016, 9:09 a.m. UTC | #3
On 17 September 2016 at 11:01, Heiko Stuebner <heiko@sntech.de> wrote:
> Hi,
>
> Am Samstag, 17. September 2016, 10:32:49 CEST schrieb Ziyuan Xu:
>> Add power domain as a optional property for sdhci-of-arasan, which can
>> be turned off in the so-called unused condition, such as suspend and
>> remove. Aim to lower power requirements.
>>
>> Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
>>
>> Acked-by: Rob Herring <robh@kernel.org>
>
> Reviewed-by: Heiko Stuebner <heiko@sntech.de>
>
> @Ulf: I guess you'll take this binding change through the mmc tree and I'll
> pick up the devicetree change.

Ideally the documentation and DT change should go together, so I think
it's better for you to pick up both.

I intend to ack it, although it would be nice with some more
information as I requested, in the change-log first.

Kind regards
Uffe

>
>
> Heiko
>
>> ---
>>
>> Changes in v3:
>> - fix a typo
>> - add Rob's ack-tag
>>
>> Changes in v2:
>> - fix a typo
>> - add an example code for power-domain
>>
>>  Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 7 ++++++-
>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
>> b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt index
>> 3404afa..eb84d29 100644
>> --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
>> +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
>> @@ -1,12 +1,14 @@
>>  Device Tree Bindings for the Arasan SDHCI Controller
>>
>> -  The bindings follow the mmc[1], clock[2], interrupt[3] and phy[4]
>> bindings. +  The bindings follow the mmc[1], clock[2], interrupt[3], phy[4]
>> and power +  domain[5] bindings.
>>    Only deviations are documented here.
>>
>>    [1] Documentation/devicetree/bindings/mmc/mmc.txt
>>    [2] Documentation/devicetree/bindings/clock/clock-bindings.txt
>>    [3] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
>> [4] Documentation/devicetree/bindings/phy/phy-bindings.txt
>> +  [5] Documentation/devicetree/bindings/power/power_domain.txt
>>
>>  Required Properties:
>>    - compatible: Compatibility string.  One of:
>> @@ -36,6 +38,8 @@ Optional Properties:
>>    - #clock-cells: If specified this should be the value <0>.  With this
>> property in place we will export a clock representing the Card Clock.  This
>> clock is expected to be consumed by our PHY.  You must also specify +  -
>> power-domains: A phandle and PM domain as specifier defined by bindings +
>>  of the power controller specified by phandle.
>>
>>  Example:
>>       sdhci@e0100000 {
>> @@ -71,5 +75,6 @@ Example:
>>               phys = <&emmc_phy>;
>>               phy-names = "phy_arasan";
>>               #clock-cells = <0>;
>> +             power-domains = <&power RK3399_PD_EMMC>;
>>               status = "disabled";
>>       };
>
>
Heiko Stübner Sept. 17, 2016, 9:57 a.m. UTC | #4
Am Samstag, 17. September 2016, 11:09:15 CEST schrieb Ulf Hansson:
> On 17 September 2016 at 11:01, Heiko Stuebner <heiko@sntech.de> wrote:
> > Hi,
> > 
> > Am Samstag, 17. September 2016, 10:32:49 CEST schrieb Ziyuan Xu:
> >> Add power domain as a optional property for sdhci-of-arasan, which can
> >> be turned off in the so-called unused condition, such as suspend and
> >> remove. Aim to lower power requirements.
> >> 
> >> Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
> >> 
> >> Acked-by: Rob Herring <robh@kernel.org>
> > 
> > Reviewed-by: Heiko Stuebner <heiko@sntech.de>
> > 
> > @Ulf: I guess you'll take this binding change through the mmc tree and
> > I'll
> > pick up the devicetree change.
> 
> Ideally the documentation and DT change should go together, so I think
> it's better for you to pick up both.

I was more thinking about future conflicts with possible other changes during 
the 4.9 cycle. We have -rc7 now, so arm-soc is pretty off limits for new 
changes thus the binding change would only land in time for 4.10 and may cause 
conflicts then.

> I intend to ack it, although it would be nice with some more
> information as I requested, in the change-log first.

I guess we'll just wait until you are comfortable with the change and decide 
then through which trees it should go :-)


Heiko

> >> ---
> >> 
> >> Changes in v3:
> >> - fix a typo
> >> - add Rob's ack-tag
> >> 
> >> Changes in v2:
> >> - fix a typo
> >> - add an example code for power-domain
> >> 
> >>  Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 7 ++++++-
> >>  1 file changed, 6 insertions(+), 1 deletion(-)
> >> 
> >> diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> >> b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt index
> >> 3404afa..eb84d29 100644
> >> --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> >> +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> >> @@ -1,12 +1,14 @@
> >> 
> >>  Device Tree Bindings for the Arasan SDHCI Controller
> >> 
> >> -  The bindings follow the mmc[1], clock[2], interrupt[3] and phy[4]
> >> bindings. +  The bindings follow the mmc[1], clock[2], interrupt[3],
> >> phy[4]
> >> and power +  domain[5] bindings.
> >> 
> >>    Only deviations are documented here.
> >>    
> >>    [1] Documentation/devicetree/bindings/mmc/mmc.txt
> >>    [2] Documentation/devicetree/bindings/clock/clock-bindings.txt
> >>    [3]
> >>    Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> >> 
> >> [4] Documentation/devicetree/bindings/phy/phy-bindings.txt
> >> +  [5] Documentation/devicetree/bindings/power/power_domain.txt
> >> 
> >>  Required Properties:
> >>    - compatible: Compatibility string.  One of:
> >> @@ -36,6 +38,8 @@ Optional Properties:
> >>    - #clock-cells: If specified this should be the value <0>.  With this
> >> 
> >> property in place we will export a clock representing the Card Clock. 
> >> This
> >> clock is expected to be consumed by our PHY.  You must also specify +  -
> >> power-domains: A phandle and PM domain as specifier defined by bindings +
> >> 
> >>  of the power controller specified by phandle.
> >>  
> >>  Example:
> >>       sdhci@e0100000 {
> >> 
> >> @@ -71,5 +75,6 @@ Example:
> >>               phys = <&emmc_phy>;
> >>               phy-names = "phy_arasan";
> >>               #clock-cells = <0>;
> >> 
> >> +             power-domains = <&power RK3399_PD_EMMC>;
> >> 
> >>               status = "disabled";
> >>       
> >>       };
ziyuan Sept. 20, 2016, 2:29 a.m. UTC | #5
hi Ulf,


On 2016年09月17日 16:49, Ulf Hansson wrote:
> On 17 September 2016 at 04:32, Ziyuan Xu <xzy.xu@rock-chips.com> wrote:
>> Add power domain as a optional property for sdhci-of-arasan, which can
>> be turned off in the so-called unused condition, such as suspend and
>> remove. Aim to lower power requirements.
> I assume runtime suspend make sense as well?

Sorry to reply this mail after a long time.

On rk3399 platform, there is a eMMC-phy which is in charge of eMMC's 
logic interface. We should guarantee that phy is ready before cmd/data 
transfer.
I mean that I need to consider about the resume latency, so that I can 
land RPM for arasan-of-sdhci.
I intend to use auto-suspend for arasan-of-sdhci.

>
> Moreover, perhaps you could share a little information here about what
> needs to be done at the driver level which controls the mmc IP. More
> precisely, what do you need to do at runtime_suspend, suspend,
> runtime_resume, and resume?

Invoke sdhci_runtime_suspend_host, disable relevant clock in 
rumtime_suspend, deprocessing in runtime_resume.
Is that ok?

>
> Kind regards
> Uffe
>
>> Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
>>
>> Acked-by: Rob Herring <robh@kernel.org>
>> ---
>>
>> Changes in v3:
>> - fix a typo
>> - add Rob's ack-tag
>>
>> Changes in v2:
>> - fix a typo
>> - add an example code for power-domain
>>
>>   Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 7 ++++++-
>>   1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
>> index 3404afa..eb84d29 100644
>> --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
>> +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
>> @@ -1,12 +1,14 @@
>>   Device Tree Bindings for the Arasan SDHCI Controller
>>
>> -  The bindings follow the mmc[1], clock[2], interrupt[3] and phy[4] bindings.
>> +  The bindings follow the mmc[1], clock[2], interrupt[3], phy[4] and power
>> +  domain[5] bindings.
>>     Only deviations are documented here.
>>
>>     [1] Documentation/devicetree/bindings/mmc/mmc.txt
>>     [2] Documentation/devicetree/bindings/clock/clock-bindings.txt
>>     [3] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
>>     [4] Documentation/devicetree/bindings/phy/phy-bindings.txt
>> +  [5] Documentation/devicetree/bindings/power/power_domain.txt
>>
>>   Required Properties:
>>     - compatible: Compatibility string.  One of:
>> @@ -36,6 +38,8 @@ Optional Properties:
>>     - #clock-cells: If specified this should be the value <0>.  With this property
>>       in place we will export a clock representing the Card Clock.  This clock
>>       is expected to be consumed by our PHY.  You must also specify
>> +  - power-domains: A phandle and PM domain as specifier defined by bindings
>> +    of the power controller specified by phandle.
>>
>>   Example:
>>          sdhci@e0100000 {
>> @@ -71,5 +75,6 @@ Example:
>>                  phys = <&emmc_phy>;
>>                  phy-names = "phy_arasan";
>>                  #clock-cells = <0>;
>> +               power-domains = <&power RK3399_PD_EMMC>;
>>                  status = "disabled";
>>          };
>> --
>> 2.9.2
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
>
Ulf Hansson Sept. 22, 2016, 7:14 a.m. UTC | #6
On 20 September 2016 at 04:29, Ziyuan Xu <xzy.xu@rock-chips.com> wrote:
> hi Ulf,
>
>
> On 2016年09月17日 16:49, Ulf Hansson wrote:
>>
>> On 17 September 2016 at 04:32, Ziyuan Xu <xzy.xu@rock-chips.com> wrote:
>>>
>>> Add power domain as a optional property for sdhci-of-arasan, which can
>>> be turned off in the so-called unused condition, such as suspend and
>>> remove. Aim to lower power requirements.
>>
>> I assume runtime suspend make sense as well?
>
>
> Sorry to reply this mail after a long time.
>
> On rk3399 platform, there is a eMMC-phy which is in charge of eMMC's logic
> interface. We should guarantee that phy is ready before cmd/data transfer.
> I mean that I need to consider about the resume latency, so that I can land
> RPM for arasan-of-sdhci.
> I intend to use auto-suspend for arasan-of-sdhci.
>

Okay!

>>
>> Moreover, perhaps you could share a little information here about what
>> needs to be done at the driver level which controls the mmc IP. More
>> precisely, what do you need to do at runtime_suspend, suspend,
>> runtime_resume, and resume?
>
>
> Invoke sdhci_runtime_suspend_host, disable relevant clock in
> rumtime_suspend, deprocessing in runtime_resume.
> Is that ok?

Okay!

[...]

Thanks for sharing some more information, could you please re-spin
with an updated change log?

Kind regards
Uffe
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
index 3404afa..eb84d29 100644
--- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
+++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
@@ -1,12 +1,14 @@ 
 Device Tree Bindings for the Arasan SDHCI Controller
 
-  The bindings follow the mmc[1], clock[2], interrupt[3] and phy[4] bindings.
+  The bindings follow the mmc[1], clock[2], interrupt[3], phy[4] and power
+  domain[5] bindings.
   Only deviations are documented here.
 
   [1] Documentation/devicetree/bindings/mmc/mmc.txt
   [2] Documentation/devicetree/bindings/clock/clock-bindings.txt
   [3] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
   [4] Documentation/devicetree/bindings/phy/phy-bindings.txt
+  [5] Documentation/devicetree/bindings/power/power_domain.txt
 
 Required Properties:
   - compatible: Compatibility string.  One of:
@@ -36,6 +38,8 @@  Optional Properties:
   - #clock-cells: If specified this should be the value <0>.  With this property
     in place we will export a clock representing the Card Clock.  This clock
     is expected to be consumed by our PHY.  You must also specify
+  - power-domains: A phandle and PM domain as specifier defined by bindings
+    of the power controller specified by phandle.
 
 Example:
 	sdhci@e0100000 {
@@ -71,5 +75,6 @@  Example:
 		phys = <&emmc_phy>;
 		phy-names = "phy_arasan";
 		#clock-cells = <0>;
+		power-domains = <&power RK3399_PD_EMMC>;
 		status = "disabled";
 	};