diff mbox

[v2,1/2] ARM: SAMSUNG: Add pm_caps into platform data

Message ID 1321438848-3607-1-git-send-email-sangwook.lee@linaro.org
State Accepted
Headers show

Commit Message

Sangwook Nov. 16, 2011, 10:20 a.m. UTC
Add pm_caps into platform_data. This is power management, usually
for SDIO device such as SDIO WLAN.

Signed-off-by: Sangwook Lee <sangwook.lee@samsung.com>
---
 arch/arm/plat-samsung/include/plat/sdhci.h |    2 ++
 arch/arm/plat-samsung/platformdata.c       |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

Comments

thomas.abraham@linaro.org Nov. 16, 2011, 11:47 a.m. UTC | #1
Dear Mr. Lee,

On 16 November 2011 15:50, Sangwook Lee <sangwook.lee@linaro.org> wrote:
> Add pm_caps into platform_data. This is power management, usually
> for SDIO device such as SDIO WLAN.
>
> Signed-off-by: Sangwook Lee <sangwook.lee@samsung.com>
> ---
>  arch/arm/plat-samsung/include/plat/sdhci.h |    2 ++
>  arch/arm/plat-samsung/platformdata.c       |    2 ++
>  2 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h b/arch/arm/plat-samsung/include/plat/sdhci.h
> index dcff7dd..fcd02d4 100644
> --- a/arch/arm/plat-samsung/include/plat/sdhci.h
> +++ b/arch/arm/plat-samsung/include/plat/sdhci.h
> @@ -40,6 +40,7 @@ enum clk_types {
>  * struct s3c_sdhci_platdata() - Platform device data for Samsung SDHCI
>  * @max_width: The maximum number of data bits supported.
>  * @host_caps: Standard MMC host capabilities bit field.
> + * @pm_caps: SDIO host PM capabilities bit field.
>  * @cd_type: Type of Card Detection method (see cd_types enum above)
>  * @clk_type: Type of clock divider method (see clk_types enum above)
>  * @ext_cd_init: Initialize external card detect subsystem. Called on
> @@ -63,6 +64,7 @@ enum clk_types {
>  struct s3c_sdhci_platdata {
>        unsigned int    max_width;
>        unsigned int    host_caps;
> +       unsigned int    pm_caps;
>        enum cd_types   cd_type;
>        enum clk_types  clk_type;
>
> diff --git a/arch/arm/plat-samsung/platformdata.c b/arch/arm/plat-samsung/platformdata.c
> index ceb9fa3..0f70718 100644
> --- a/arch/arm/plat-samsung/platformdata.c
> +++ b/arch/arm/plat-samsung/platformdata.c
> @@ -53,6 +53,8 @@ void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd,
>                set->cfg_gpio = pd->cfg_gpio;
>        if (pd->host_caps)
>                set->host_caps |= pd->host_caps;
> +       if (pd->pm_caps)
> +               set->pm_caps |= pd->pm_caps;


Are the 'pm_caps' specific to a (on-board) sdio host attached to the
sdhci controller? If yes, then this change should be fine. If no,
please let me know. I am kind of worried of any new addition to
platform data. Because, if that new addition in platform data is not
board specific data, then it becomes difficult to represent that
information in device tree.

Thanks,
Thomas.


>        if (pd->clk_type)
>                set->clk_type = pd->clk_type;
>  }
> --
> 1.7.4.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Sangwook Nov. 16, 2011, 12:18 p.m. UTC | #2
Hi Thomas

On 16 November 2011 11:47, Thomas Abraham <thomas.abraham@linaro.org> wrote:

> Dear Mr. Lee,
>
> On 16 November 2011 15:50, Sangwook Lee <sangwook.lee@linaro.org> wrote:
> > Add pm_caps into platform_data. This is power management, usually
> > for SDIO device such as SDIO WLAN.
> >
> > Signed-off-by: Sangwook Lee <sangwook.lee@samsung.com>
> > ---
> >  arch/arm/plat-samsung/include/plat/sdhci.h |    2 ++
> >  arch/arm/plat-samsung/platformdata.c       |    2 ++
> >  2 files changed, 4 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h
> b/arch/arm/plat-samsung/include/plat/sdhci.h
> > index dcff7dd..fcd02d4 100644
> > --- a/arch/arm/plat-samsung/include/plat/sdhci.h
> > +++ b/arch/arm/plat-samsung/include/plat/sdhci.h
> > @@ -40,6 +40,7 @@ enum clk_types {
> >  * struct s3c_sdhci_platdata() - Platform device data for Samsung SDHCI
> >  * @max_width: The maximum number of data bits supported.
> >  * @host_caps: Standard MMC host capabilities bit field.
> > + * @pm_caps: SDIO host PM capabilities bit field.
> >  * @cd_type: Type of Card Detection method (see cd_types enum above)
> >  * @clk_type: Type of clock divider method (see clk_types enum above)
> >  * @ext_cd_init: Initialize external card detect subsystem. Called on
> > @@ -63,6 +64,7 @@ enum clk_types {
> >  struct s3c_sdhci_platdata {
> >        unsigned int    max_width;
> >        unsigned int    host_caps;
> > +       unsigned int    pm_caps;
> >        enum cd_types   cd_type;
> >        enum clk_types  clk_type;
> >
> > diff --git a/arch/arm/plat-samsung/platformdata.c
> b/arch/arm/plat-samsung/platformdata.c
> > index ceb9fa3..0f70718 100644
> > --- a/arch/arm/plat-samsung/platformdata.c
> > +++ b/arch/arm/plat-samsung/platformdata.c
> > @@ -53,6 +53,8 @@ void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata
> *pd,
> >                set->cfg_gpio = pd->cfg_gpio;
> >        if (pd->host_caps)
> >                set->host_caps |= pd->host_caps;
> > +       if (pd->pm_caps)
> > +               set->pm_caps |= pd->pm_caps;
>
>
> Are the 'pm_caps' specific to a (on-board) sdio host attached to the
> sdhci controller?


No, this is not specific to a sdio host controller.


> If yes, then this change should be fine. If no,
> please let me know. I am kind of worried of any new addition to
> platform data. Because, if that new addition in platform data is not
> board specific data, then it becomes difficult to represent that
> information in device tree.
>
> Thanks,
> Thomas.
>
>
> >        if (pd->clk_type)
> >                set->clk_type = pd->clk_type;
> >  }
> > --
> > 1.7.4.1
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe
> linux-samsung-soc" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
>
thomas.abraham@linaro.org Nov. 16, 2011, 1:14 p.m. UTC | #3
Dear Mr. Lee,

On 16 November 2011 17:48, Sangwook Lee <sangwook.lee@linaro.org> wrote:
> Hi Thomas
>
> On 16 November 2011 11:47, Thomas Abraham <thomas.abraham@linaro.org> wrote:
>>
>> Dear Mr. Lee,
>>
>> On 16 November 2011 15:50, Sangwook Lee <sangwook.lee@linaro.org> wrote:
>> > Add pm_caps into platform_data. This is power management, usually
>> > for SDIO device such as SDIO WLAN.
>> >
>> > Signed-off-by: Sangwook Lee <sangwook.lee@samsung.com>
>> > ---
>> >  arch/arm/plat-samsung/include/plat/sdhci.h |    2 ++
>> >  arch/arm/plat-samsung/platformdata.c       |    2 ++
>> >  2 files changed, 4 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h
>> > b/arch/arm/plat-samsung/include/plat/sdhci.h
>> > index dcff7dd..fcd02d4 100644
>> > --- a/arch/arm/plat-samsung/include/plat/sdhci.h
>> > +++ b/arch/arm/plat-samsung/include/plat/sdhci.h
>> > @@ -40,6 +40,7 @@ enum clk_types {
>> >  * struct s3c_sdhci_platdata() - Platform device data for Samsung SDHCI
>> >  * @max_width: The maximum number of data bits supported.
>> >  * @host_caps: Standard MMC host capabilities bit field.
>> > + * @pm_caps: SDIO host PM capabilities bit field.
>> >  * @cd_type: Type of Card Detection method (see cd_types enum above)
>> >  * @clk_type: Type of clock divider method (see clk_types enum above)
>> >  * @ext_cd_init: Initialize external card detect subsystem. Called on
>> > @@ -63,6 +64,7 @@ enum clk_types {
>> >  struct s3c_sdhci_platdata {
>> >        unsigned int    max_width;
>> >        unsigned int    host_caps;
>> > +       unsigned int    pm_caps;
>> >        enum cd_types   cd_type;
>> >        enum clk_types  clk_type;
>> >
>> > diff --git a/arch/arm/plat-samsung/platformdata.c
>> > b/arch/arm/plat-samsung/platformdata.c
>> > index ceb9fa3..0f70718 100644
>> > --- a/arch/arm/plat-samsung/platformdata.c
>> > +++ b/arch/arm/plat-samsung/platformdata.c
>> > @@ -53,6 +53,8 @@ void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata
>> > *pd,
>> >                set->cfg_gpio = pd->cfg_gpio;
>> >        if (pd->host_caps)
>> >                set->host_caps |= pd->host_caps;
>> > +       if (pd->pm_caps)
>> > +               set->pm_caps |= pd->pm_caps;
>>
>>
>> Are the 'pm_caps' specific to a (on-board) sdio host attached to the
>> sdhci controller?
>
> No, this is not specific to a sdio host controller.
>

Thanks for your confirmation. Looking at the code, there are two flags
for pm_caps - MMC_PM_KEEP_POWER and MMC_PM_WAKE_SDIO_IRQ. Though these
seem to be flags for linux specific behavior, the same could be
supported from device tree as well allowing host system to use and act
on these properties or ignore it. So, adding pm_caps in platform data
should be fine from dt support perspective.

If you prefer, for the both the patches in this series,
Acked-by: Thomas Abraham <thomas.abraham@linaro.org>

Thanks,
Thomas.

>>
>> If yes, then this change should be fine. If no,
>> please let me know. I am kind of worried of any new addition to
>> platform data. Because, if that new addition in platform data is not
>> board specific data, then it becomes difficult to represent that
>> information in device tree.
>>
>> Thanks,
>> Thomas.
>>
>>
>> >        if (pd->clk_type)
>> >                set->clk_type = pd->clk_type;
>> >  }
>> > --
>> > 1.7.4.1
>> >
>> > --
>> > To unsubscribe from this list: send the line "unsubscribe
>> > linux-samsung-soc" in
>> > the body of a message to majordomo@vger.kernel.org
>> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >
>
>
Kukjin Kim Dec. 1, 2011, 7:30 a.m. UTC | #4
Thomas Abraham wrote:
> 
> Dear Mr. Lee,
> 
> On 16 November 2011 17:48, Sangwook Lee <sangwook.lee@linaro.org> wrote:
> > Hi Thomas
> >
> > On 16 November 2011 11:47, Thomas Abraham <thomas.abraham@linaro.org>
> wrote:
> >>
> >> Dear Mr. Lee,
> >>
> >> On 16 November 2011 15:50, Sangwook Lee <sangwook.lee@linaro.org>
wrote:
> >> > Add pm_caps into platform_data. This is power management, usually
> >> > for SDIO device such as SDIO WLAN.
> >> >
> >> > Signed-off-by: Sangwook Lee <sangwook.lee@samsung.com>
> >> > ---
> >> >  arch/arm/plat-samsung/include/plat/sdhci.h |    2 ++
> >> >  arch/arm/plat-samsung/platformdata.c       |    2 ++
> >> >  2 files changed, 4 insertions(+), 0 deletions(-)
> >> >
> >> > diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h
> >> > b/arch/arm/plat-samsung/include/plat/sdhci.h
> >> > index dcff7dd..fcd02d4 100644
> >> > --- a/arch/arm/plat-samsung/include/plat/sdhci.h
> >> > +++ b/arch/arm/plat-samsung/include/plat/sdhci.h
> >> > @@ -40,6 +40,7 @@ enum clk_types {
> >> >  * struct s3c_sdhci_platdata() - Platform device data for Samsung
> SDHCI
> >> >  * @max_width: The maximum number of data bits supported.
> >> >  * @host_caps: Standard MMC host capabilities bit field.
> >> > + * @pm_caps: SDIO host PM capabilities bit field.
> >> >  * @cd_type: Type of Card Detection method (see cd_types enum above)
> >> >  * @clk_type: Type of clock divider method (see clk_types enum above)
> >> >  * @ext_cd_init: Initialize external card detect subsystem. Called on
> >> > @@ -63,6 +64,7 @@ enum clk_types {
> >> >  struct s3c_sdhci_platdata {
> >> >        unsigned int    max_width;
> >> >        unsigned int    host_caps;
> >> > +       unsigned int    pm_caps;
> >> >        enum cd_types   cd_type;
> >> >        enum clk_types  clk_type;
> >> >
> >> > diff --git a/arch/arm/plat-samsung/platformdata.c
> >> > b/arch/arm/plat-samsung/platformdata.c
> >> > index ceb9fa3..0f70718 100644
> >> > --- a/arch/arm/plat-samsung/platformdata.c
> >> > +++ b/arch/arm/plat-samsung/platformdata.c
> >> > @@ -53,6 +53,8 @@ void s3c_sdhci_set_platdata(struct
> s3c_sdhci_platdata
> >> > *pd,
> >> >                set->cfg_gpio = pd->cfg_gpio;
> >> >        if (pd->host_caps)
> >> >                set->host_caps |= pd->host_caps;
> >> > +       if (pd->pm_caps)
> >> > +               set->pm_caps |= pd->pm_caps;
> >>
> >>
> >> Are the 'pm_caps' specific to a (on-board) sdio host attached to the
> >> sdhci controller?
> >
> > No, this is not specific to a sdio host controller.
> >
> 
> Thanks for your confirmation. Looking at the code, there are two flags
> for pm_caps - MMC_PM_KEEP_POWER and MMC_PM_WAKE_SDIO_IRQ. Though these
> seem to be flags for linux specific behavior, the same could be
> supported from device tree as well allowing host system to use and act
> on these properties or ignore it. So, adding pm_caps in platform data
> should be fine from dt support perspective.
> 
> If you prefer, for the both the patches in this series,
> Acked-by: Thomas Abraham <thomas.abraham@linaro.org>
> 
OK, will apply.
Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

> >>
> >> If yes, then this change should be fine. If no,
> >> please let me know. I am kind of worried of any new addition to
> >> platform data. Because, if that new addition in platform data is not
> >> board specific data, then it becomes difficult to represent that
> >> information in device tree.
> >>
> >> Thanks,
> >> Thomas.
> >>
> >>
> >> >        if (pd->clk_type)
> >> >                set->clk_type = pd->clk_type;
> >> >  }
> >> > --
> >> > 1.7.4.1
diff mbox

Patch

diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h b/arch/arm/plat-samsung/include/plat/sdhci.h
index dcff7dd..fcd02d4 100644
--- a/arch/arm/plat-samsung/include/plat/sdhci.h
+++ b/arch/arm/plat-samsung/include/plat/sdhci.h
@@ -40,6 +40,7 @@  enum clk_types {
  * struct s3c_sdhci_platdata() - Platform device data for Samsung SDHCI
  * @max_width: The maximum number of data bits supported.
  * @host_caps: Standard MMC host capabilities bit field.
+ * @pm_caps: SDIO host PM capabilities bit field.
  * @cd_type: Type of Card Detection method (see cd_types enum above)
  * @clk_type: Type of clock divider method (see clk_types enum above)
  * @ext_cd_init: Initialize external card detect subsystem. Called on
@@ -63,6 +64,7 @@  enum clk_types {
 struct s3c_sdhci_platdata {
 	unsigned int	max_width;
 	unsigned int	host_caps;
+	unsigned int    pm_caps;
 	enum cd_types	cd_type;
 	enum clk_types	clk_type;
 
diff --git a/arch/arm/plat-samsung/platformdata.c b/arch/arm/plat-samsung/platformdata.c
index ceb9fa3..0f70718 100644
--- a/arch/arm/plat-samsung/platformdata.c
+++ b/arch/arm/plat-samsung/platformdata.c
@@ -53,6 +53,8 @@  void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd,
 		set->cfg_gpio = pd->cfg_gpio;
 	if (pd->host_caps)
 		set->host_caps |= pd->host_caps;
+	if (pd->pm_caps)
+		set->pm_caps |= pd->pm_caps;
 	if (pd->clk_type)
 		set->clk_type = pd->clk_type;
 }