Re: [rtc-linux] [RESEND PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-14 Thread Alexandre Belloni
On 09/07/2015 at 12:25:51 +0530, Vaibhav Hiremath wrote :
> Along with DT support, this patch also cleans up the unnecessary
> code around 'rtc_wakeup' initialization.
> 
> Signed-off-by: Chao Xie 
> Signed-off-by: Vaibhav Hiremath 
> ---
>  drivers/rtc/rtc-88pm80x.c | 28 +---
>  1 file changed, 17 insertions(+), 11 deletions(-)
> 
Applied, thanks.


-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [rtc-linux] [RESEND PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-14 Thread Alexandre Belloni
On 09/07/2015 at 12:25:51 +0530, Vaibhav Hiremath wrote :
 Along with DT support, this patch also cleans up the unnecessary
 code around 'rtc_wakeup' initialization.
 
 Signed-off-by: Chao Xie chao@marvell.com
 Signed-off-by: Vaibhav Hiremath vaibhav.hirem...@linaro.org
 ---
  drivers/rtc/rtc-88pm80x.c | 28 +---
  1 file changed, 17 insertions(+), 11 deletions(-)
 
Applied, thanks.


-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESEND PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-09 Thread Vaibhav Hiremath



On Thursday 09 July 2015 05:25 PM, Alexandre Belloni wrote:

Hi,

On 09/07/2015 at 12:25:51 +0530, Vaibhav Hiremath wrote :

Along with DT support, this patch also cleans up the unnecessary
code around 'rtc_wakeup' initialization.

Signed-off-by: Chao Xie 
Signed-off-by: Vaibhav Hiremath 


No need to resend, I'll take it. I'm current busy with other things and
it is still early in the development cycle.



Thanks,

And sorry for noise,
I was not so sure about the status, so resent it.



-   if (pm80x_pdata) {
-   pdata = pm80x_pdata->rtc;
-   if (pdata)
-   info->rtc_dev->dev.platform_data = >rtc_wakeup;
-   }
+   /* remeber whether this power up is caused by PMIC RTC or not */


I'll fix that typo...



Oops. Thankks for noting and correcting it.

Thanks,
Vaibhav
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESEND PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-09 Thread Alexandre Belloni
Hi,

On 09/07/2015 at 12:25:51 +0530, Vaibhav Hiremath wrote :
> Along with DT support, this patch also cleans up the unnecessary
> code around 'rtc_wakeup' initialization.
> 
> Signed-off-by: Chao Xie 
> Signed-off-by: Vaibhav Hiremath 

No need to resend, I'll take it. I'm current busy with other things and
it is still early in the development cycle.

> - if (pm80x_pdata) {
> - pdata = pm80x_pdata->rtc;
> - if (pdata)
> - info->rtc_dev->dev.platform_data = >rtc_wakeup;
> - }
> + /* remeber whether this power up is caused by PMIC RTC or not */

I'll fix that typo...

> + info->rtc_dev->dev.platform_data = >rtc_wakeup;
>  

-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESEND PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-09 Thread Vaibhav Hiremath
Along with DT support, this patch also cleans up the unnecessary
code around 'rtc_wakeup' initialization.

Signed-off-by: Chao Xie 
Signed-off-by: Vaibhav Hiremath 
---
 drivers/rtc/rtc-88pm80x.c | 28 +---
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/drivers/rtc/rtc-88pm80x.c b/drivers/rtc/rtc-88pm80x.c
index 7df0579..8f66519 100644
--- a/drivers/rtc/rtc-88pm80x.c
+++ b/drivers/rtc/rtc-88pm80x.c
@@ -251,17 +251,26 @@ static SIMPLE_DEV_PM_OPS(pm80x_rtc_pm_ops, 
pm80x_rtc_suspend, pm80x_rtc_resume);
 static int pm80x_rtc_probe(struct platform_device *pdev)
 {
struct pm80x_chip *chip = dev_get_drvdata(pdev->dev.parent);
-   struct pm80x_platform_data *pm80x_pdata =
-   dev_get_platdata(pdev->dev.parent);
-   struct pm80x_rtc_pdata *pdata = NULL;
+   struct pm80x_rtc_pdata *pdata = dev_get_platdata(>dev);
struct pm80x_rtc_info *info;
+   struct device_node *node = pdev->dev.of_node;
struct rtc_time tm;
unsigned long ticks = 0;
int ret;
 
-   pdata = dev_get_platdata(>dev);
-   if (pdata == NULL)
-   dev_warn(>dev, "No platform data!\n");
+   if (!pdata && !node) {
+   dev_err(>dev,
+   "pm80x-rtc requires platform data or of_node\n");
+   return -EINVAL;
+   }
+
+   if (!pdata) {
+   pdata = devm_kzalloc(>dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata) {
+   dev_err(>dev, "failed to allocate memory\n");
+   return -ENOMEM;
+   }
+   }
 
info =
devm_kzalloc(>dev, sizeof(struct pm80x_rtc_info), GFP_KERNEL);
@@ -327,11 +336,8 @@ static int pm80x_rtc_probe(struct platform_device *pdev)
regmap_update_bits(info->map, PM800_RTC_CONTROL, PM800_RTC1_USE_XO,
   PM800_RTC1_USE_XO);
 
-   if (pm80x_pdata) {
-   pdata = pm80x_pdata->rtc;
-   if (pdata)
-   info->rtc_dev->dev.platform_data = >rtc_wakeup;
-   }
+   /* remeber whether this power up is caused by PMIC RTC or not */
+   info->rtc_dev->dev.platform_data = >rtc_wakeup;
 
device_init_wakeup(>dev, 1);
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RESEND PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-09 Thread Vaibhav Hiremath
Along with DT support, this patch also cleans up the unnecessary
code around 'rtc_wakeup' initialization.

Signed-off-by: Chao Xie chao@marvell.com
Signed-off-by: Vaibhav Hiremath vaibhav.hirem...@linaro.org
---
 drivers/rtc/rtc-88pm80x.c | 28 +---
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/drivers/rtc/rtc-88pm80x.c b/drivers/rtc/rtc-88pm80x.c
index 7df0579..8f66519 100644
--- a/drivers/rtc/rtc-88pm80x.c
+++ b/drivers/rtc/rtc-88pm80x.c
@@ -251,17 +251,26 @@ static SIMPLE_DEV_PM_OPS(pm80x_rtc_pm_ops, 
pm80x_rtc_suspend, pm80x_rtc_resume);
 static int pm80x_rtc_probe(struct platform_device *pdev)
 {
struct pm80x_chip *chip = dev_get_drvdata(pdev-dev.parent);
-   struct pm80x_platform_data *pm80x_pdata =
-   dev_get_platdata(pdev-dev.parent);
-   struct pm80x_rtc_pdata *pdata = NULL;
+   struct pm80x_rtc_pdata *pdata = dev_get_platdata(pdev-dev);
struct pm80x_rtc_info *info;
+   struct device_node *node = pdev-dev.of_node;
struct rtc_time tm;
unsigned long ticks = 0;
int ret;
 
-   pdata = dev_get_platdata(pdev-dev);
-   if (pdata == NULL)
-   dev_warn(pdev-dev, No platform data!\n);
+   if (!pdata  !node) {
+   dev_err(pdev-dev,
+   pm80x-rtc requires platform data or of_node\n);
+   return -EINVAL;
+   }
+
+   if (!pdata) {
+   pdata = devm_kzalloc(pdev-dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata) {
+   dev_err(pdev-dev, failed to allocate memory\n);
+   return -ENOMEM;
+   }
+   }
 
info =
devm_kzalloc(pdev-dev, sizeof(struct pm80x_rtc_info), GFP_KERNEL);
@@ -327,11 +336,8 @@ static int pm80x_rtc_probe(struct platform_device *pdev)
regmap_update_bits(info-map, PM800_RTC_CONTROL, PM800_RTC1_USE_XO,
   PM800_RTC1_USE_XO);
 
-   if (pm80x_pdata) {
-   pdata = pm80x_pdata-rtc;
-   if (pdata)
-   info-rtc_dev-dev.platform_data = pdata-rtc_wakeup;
-   }
+   /* remeber whether this power up is caused by PMIC RTC or not */
+   info-rtc_dev-dev.platform_data = pdata-rtc_wakeup;
 
device_init_wakeup(pdev-dev, 1);
 
-- 
1.9.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESEND PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-09 Thread Vaibhav Hiremath



On Thursday 09 July 2015 05:25 PM, Alexandre Belloni wrote:

Hi,

On 09/07/2015 at 12:25:51 +0530, Vaibhav Hiremath wrote :

Along with DT support, this patch also cleans up the unnecessary
code around 'rtc_wakeup' initialization.

Signed-off-by: Chao Xie chao@marvell.com
Signed-off-by: Vaibhav Hiremath vaibhav.hirem...@linaro.org


No need to resend, I'll take it. I'm current busy with other things and
it is still early in the development cycle.



Thanks,

And sorry for noise,
I was not so sure about the status, so resent it.



-   if (pm80x_pdata) {
-   pdata = pm80x_pdata-rtc;
-   if (pdata)
-   info-rtc_dev-dev.platform_data = pdata-rtc_wakeup;
-   }
+   /* remeber whether this power up is caused by PMIC RTC or not */


I'll fix that typo...



Oops. Thankks for noting and correcting it.

Thanks,
Vaibhav
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RESEND PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-09 Thread Alexandre Belloni
Hi,

On 09/07/2015 at 12:25:51 +0530, Vaibhav Hiremath wrote :
 Along with DT support, this patch also cleans up the unnecessary
 code around 'rtc_wakeup' initialization.
 
 Signed-off-by: Chao Xie chao@marvell.com
 Signed-off-by: Vaibhav Hiremath vaibhav.hirem...@linaro.org

No need to resend, I'll take it. I'm current busy with other things and
it is still early in the development cycle.

 - if (pm80x_pdata) {
 - pdata = pm80x_pdata-rtc;
 - if (pdata)
 - info-rtc_dev-dev.platform_data = pdata-rtc_wakeup;
 - }
 + /* remeber whether this power up is caused by PMIC RTC or not */

I'll fix that typo...

 + info-rtc_dev-dev.platform_data = pdata-rtc_wakeup;
  

-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [rtc-linux] [PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-07 Thread Vaibhav Hiremath



On Thursday 25 June 2015 01:16 PM, Vaibhav Hiremath wrote:



On Saturday 20 June 2015 06:13 AM, Alexandre Belloni wrote:

Hi,



Sorry I missed this email.
Just wanted to send reminder email and saw this :)


On 18/06/2015 at 00:28:06 +0530, Vaibhav Hiremath wrote :

-pdata = dev_get_platdata(>dev);
-if (pdata == NULL)
-dev_warn(>dev, "No platform data!\n");
+if (!pdata && !node) {
+dev_err(>dev,
+"pm80x-rtc requires platform data or of_node\n");
+return -EINVAL;
+}
+
+if (!pdata) {
+pdata = devm_kzalloc(>dev, sizeof(*pdata), GFP_KERNEL);


I had troubles to follow the rtc_wakeup initialization cleanup but it
seems OK.


Probably, once we have complete PM support ready then it would be
easier to understand. I think as of now lets have this minimal code for
rtc_wakeup.


However, I'm wondering why you are adding DT support as this
will always be probed from the MFD driver which pass the platform_data
and avoids that allocation.



You are right.

Originally, it was cleanup patch,

  - remove pm80x_pdata
  - Add check for pdata and np
  - and around rtc_wakeup

While doing that I added this nice to have allocation.



Any update/feedback on this?

Thanks,
Vaibhav
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [rtc-linux] [PATCH-v2] rtc: 88pm80x: add device tree support

2015-07-07 Thread Vaibhav Hiremath



On Thursday 25 June 2015 01:16 PM, Vaibhav Hiremath wrote:



On Saturday 20 June 2015 06:13 AM, Alexandre Belloni wrote:

Hi,



Sorry I missed this email.
Just wanted to send reminder email and saw this :)


On 18/06/2015 at 00:28:06 +0530, Vaibhav Hiremath wrote :

-pdata = dev_get_platdata(pdev-dev);
-if (pdata == NULL)
-dev_warn(pdev-dev, No platform data!\n);
+if (!pdata  !node) {
+dev_err(pdev-dev,
+pm80x-rtc requires platform data or of_node\n);
+return -EINVAL;
+}
+
+if (!pdata) {
+pdata = devm_kzalloc(pdev-dev, sizeof(*pdata), GFP_KERNEL);


I had troubles to follow the rtc_wakeup initialization cleanup but it
seems OK.


Probably, once we have complete PM support ready then it would be
easier to understand. I think as of now lets have this minimal code for
rtc_wakeup.


However, I'm wondering why you are adding DT support as this
will always be probed from the MFD driver which pass the platform_data
and avoids that allocation.



You are right.

Originally, it was cleanup patch,

  - remove pm80x_pdata
  - Add check for pdata and np
  - and around rtc_wakeup

While doing that I added this nice to have allocation.



Any update/feedback on this?

Thanks,
Vaibhav
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [rtc-linux] [PATCH-v2] rtc: 88pm80x: add device tree support

2015-06-25 Thread Vaibhav Hiremath



On Saturday 20 June 2015 06:13 AM, Alexandre Belloni wrote:

Hi,



Sorry I missed this email.
Just wanted to send reminder email and saw this :)


On 18/06/2015 at 00:28:06 +0530, Vaibhav Hiremath wrote :

-   pdata = dev_get_platdata(>dev);
-   if (pdata == NULL)
-   dev_warn(>dev, "No platform data!\n");
+   if (!pdata && !node) {
+   dev_err(>dev,
+   "pm80x-rtc requires platform data or of_node\n");
+   return -EINVAL;
+   }
+
+   if (!pdata) {
+   pdata = devm_kzalloc(>dev, sizeof(*pdata), GFP_KERNEL);


I had troubles to follow the rtc_wakeup initialization cleanup but it
seems OK.


Probably, once we have complete PM support ready then it would be
easier to understand. I think as of now lets have this minimal code for
rtc_wakeup.


However, I'm wondering why you are adding DT support as this
will always be probed from the MFD driver which pass the platform_data
and avoids that allocation.



You are right.

Originally, it was cleanup patch,

 - remove pm80x_pdata
 - Add check for pdata and np
 - and around rtc_wakeup

While doing that I added this nice to have allocation.

Thanks,
Vaibhav
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [rtc-linux] [PATCH-v2] rtc: 88pm80x: add device tree support

2015-06-25 Thread Vaibhav Hiremath



On Saturday 20 June 2015 06:13 AM, Alexandre Belloni wrote:

Hi,



Sorry I missed this email.
Just wanted to send reminder email and saw this :)


On 18/06/2015 at 00:28:06 +0530, Vaibhav Hiremath wrote :

-   pdata = dev_get_platdata(pdev-dev);
-   if (pdata == NULL)
-   dev_warn(pdev-dev, No platform data!\n);
+   if (!pdata  !node) {
+   dev_err(pdev-dev,
+   pm80x-rtc requires platform data or of_node\n);
+   return -EINVAL;
+   }
+
+   if (!pdata) {
+   pdata = devm_kzalloc(pdev-dev, sizeof(*pdata), GFP_KERNEL);


I had troubles to follow the rtc_wakeup initialization cleanup but it
seems OK.


Probably, once we have complete PM support ready then it would be
easier to understand. I think as of now lets have this minimal code for
rtc_wakeup.


However, I'm wondering why you are adding DT support as this
will always be probed from the MFD driver which pass the platform_data
and avoids that allocation.



You are right.

Originally, it was cleanup patch,

 - remove pm80x_pdata
 - Add check for pdata and np
 - and around rtc_wakeup

While doing that I added this nice to have allocation.

Thanks,
Vaibhav
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [rtc-linux] [PATCH-v2] rtc: 88pm80x: add device tree support

2015-06-19 Thread Alexandre Belloni
Hi,

On 18/06/2015 at 00:28:06 +0530, Vaibhav Hiremath wrote :
> - pdata = dev_get_platdata(>dev);
> - if (pdata == NULL)
> - dev_warn(>dev, "No platform data!\n");
> + if (!pdata && !node) {
> + dev_err(>dev,
> + "pm80x-rtc requires platform data or of_node\n");
> + return -EINVAL;
> + }
> +
> + if (!pdata) {
> + pdata = devm_kzalloc(>dev, sizeof(*pdata), GFP_KERNEL);

I had troubles to follow the rtc_wakeup initialization cleanup but it
seems OK. However, I'm wondering why you are adding DT support as this
will always be probed from the MFD driver which pass the platform_data
and avoids that allocation.

> + if (!pdata) {
> + dev_err(>dev, "failed to allocate memory\n");
> + return -ENOMEM;
> + }
> + }
>  
>   info =
>   devm_kzalloc(>dev, sizeof(struct pm80x_rtc_info), GFP_KERNEL);
> @@ -327,11 +336,8 @@ static int pm80x_rtc_probe(struct platform_device *pdev)
>   regmap_update_bits(info->map, PM800_RTC_CONTROL, PM800_RTC1_USE_XO,
>  PM800_RTC1_USE_XO);
>  
> - if (pm80x_pdata) {
> - pdata = pm80x_pdata->rtc;
> - if (pdata)
> - info->rtc_dev->dev.platform_data = >rtc_wakeup;
> - }
> + /* remeber whether this power up is caused by PMIC RTC or not */
remember -^


-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
Please read the FAQ at  http://www.tux.org/lkml/


Re: [rtc-linux] [PATCH-v2] rtc: 88pm80x: add device tree support

2015-06-19 Thread Alexandre Belloni
Hi,

On 18/06/2015 at 00:28:06 +0530, Vaibhav Hiremath wrote :
 - pdata = dev_get_platdata(pdev-dev);
 - if (pdata == NULL)
 - dev_warn(pdev-dev, No platform data!\n);
 + if (!pdata  !node) {
 + dev_err(pdev-dev,
 + pm80x-rtc requires platform data or of_node\n);
 + return -EINVAL;
 + }
 +
 + if (!pdata) {
 + pdata = devm_kzalloc(pdev-dev, sizeof(*pdata), GFP_KERNEL);

I had troubles to follow the rtc_wakeup initialization cleanup but it
seems OK. However, I'm wondering why you are adding DT support as this
will always be probed from the MFD driver which pass the platform_data
and avoids that allocation.

 + if (!pdata) {
 + dev_err(pdev-dev, failed to allocate memory\n);
 + return -ENOMEM;
 + }
 + }
  
   info =
   devm_kzalloc(pdev-dev, sizeof(struct pm80x_rtc_info), GFP_KERNEL);
 @@ -327,11 +336,8 @@ static int pm80x_rtc_probe(struct platform_device *pdev)
   regmap_update_bits(info-map, PM800_RTC_CONTROL, PM800_RTC1_USE_XO,
  PM800_RTC1_USE_XO);
  
 - if (pm80x_pdata) {
 - pdata = pm80x_pdata-rtc;
 - if (pdata)
 - info-rtc_dev-dev.platform_data = pdata-rtc_wakeup;
 - }
 + /* remeber whether this power up is caused by PMIC RTC or not */
remember -^


-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH-v2] rtc: 88pm80x: add device tree support

2015-06-17 Thread Vaibhav Hiremath
Along with DT support, this patch also cleans up the unnecessary
code around 'rtc_wakeup' initialization.

Signed-off-by: Chao Xie 
Signed-off-by: Vaibhav Hiremath 
---
Link to V1: https://lkml.org/lkml/2015/5/29/757

 drivers/rtc/rtc-88pm80x.c | 28 +---
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/drivers/rtc/rtc-88pm80x.c b/drivers/rtc/rtc-88pm80x.c
index 7df0579..8f66519 100644
--- a/drivers/rtc/rtc-88pm80x.c
+++ b/drivers/rtc/rtc-88pm80x.c
@@ -251,17 +251,26 @@ static SIMPLE_DEV_PM_OPS(pm80x_rtc_pm_ops, 
pm80x_rtc_suspend, pm80x_rtc_resume);
 static int pm80x_rtc_probe(struct platform_device *pdev)
 {
struct pm80x_chip *chip = dev_get_drvdata(pdev->dev.parent);
-   struct pm80x_platform_data *pm80x_pdata =
-   dev_get_platdata(pdev->dev.parent);
-   struct pm80x_rtc_pdata *pdata = NULL;
+   struct pm80x_rtc_pdata *pdata = dev_get_platdata(>dev);
struct pm80x_rtc_info *info;
+   struct device_node *node = pdev->dev.of_node;
struct rtc_time tm;
unsigned long ticks = 0;
int ret;
 
-   pdata = dev_get_platdata(>dev);
-   if (pdata == NULL)
-   dev_warn(>dev, "No platform data!\n");
+   if (!pdata && !node) {
+   dev_err(>dev,
+   "pm80x-rtc requires platform data or of_node\n");
+   return -EINVAL;
+   }
+
+   if (!pdata) {
+   pdata = devm_kzalloc(>dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata) {
+   dev_err(>dev, "failed to allocate memory\n");
+   return -ENOMEM;
+   }
+   }
 
info =
devm_kzalloc(>dev, sizeof(struct pm80x_rtc_info), GFP_KERNEL);
@@ -327,11 +336,8 @@ static int pm80x_rtc_probe(struct platform_device *pdev)
regmap_update_bits(info->map, PM800_RTC_CONTROL, PM800_RTC1_USE_XO,
   PM800_RTC1_USE_XO);
 
-   if (pm80x_pdata) {
-   pdata = pm80x_pdata->rtc;
-   if (pdata)
-   info->rtc_dev->dev.platform_data = >rtc_wakeup;
-   }
+   /* remeber whether this power up is caused by PMIC RTC or not */
+   info->rtc_dev->dev.platform_data = >rtc_wakeup;
 
device_init_wakeup(>dev, 1);
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH-v2] rtc: 88pm80x: add device tree support

2015-06-17 Thread Vaibhav Hiremath
Along with DT support, this patch also cleans up the unnecessary
code around 'rtc_wakeup' initialization.

Signed-off-by: Chao Xie chao@marvell.com
Signed-off-by: Vaibhav Hiremath vaibhav.hirem...@linaro.org
---
Link to V1: https://lkml.org/lkml/2015/5/29/757

 drivers/rtc/rtc-88pm80x.c | 28 +---
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/drivers/rtc/rtc-88pm80x.c b/drivers/rtc/rtc-88pm80x.c
index 7df0579..8f66519 100644
--- a/drivers/rtc/rtc-88pm80x.c
+++ b/drivers/rtc/rtc-88pm80x.c
@@ -251,17 +251,26 @@ static SIMPLE_DEV_PM_OPS(pm80x_rtc_pm_ops, 
pm80x_rtc_suspend, pm80x_rtc_resume);
 static int pm80x_rtc_probe(struct platform_device *pdev)
 {
struct pm80x_chip *chip = dev_get_drvdata(pdev-dev.parent);
-   struct pm80x_platform_data *pm80x_pdata =
-   dev_get_platdata(pdev-dev.parent);
-   struct pm80x_rtc_pdata *pdata = NULL;
+   struct pm80x_rtc_pdata *pdata = dev_get_platdata(pdev-dev);
struct pm80x_rtc_info *info;
+   struct device_node *node = pdev-dev.of_node;
struct rtc_time tm;
unsigned long ticks = 0;
int ret;
 
-   pdata = dev_get_platdata(pdev-dev);
-   if (pdata == NULL)
-   dev_warn(pdev-dev, No platform data!\n);
+   if (!pdata  !node) {
+   dev_err(pdev-dev,
+   pm80x-rtc requires platform data or of_node\n);
+   return -EINVAL;
+   }
+
+   if (!pdata) {
+   pdata = devm_kzalloc(pdev-dev, sizeof(*pdata), GFP_KERNEL);
+   if (!pdata) {
+   dev_err(pdev-dev, failed to allocate memory\n);
+   return -ENOMEM;
+   }
+   }
 
info =
devm_kzalloc(pdev-dev, sizeof(struct pm80x_rtc_info), GFP_KERNEL);
@@ -327,11 +336,8 @@ static int pm80x_rtc_probe(struct platform_device *pdev)
regmap_update_bits(info-map, PM800_RTC_CONTROL, PM800_RTC1_USE_XO,
   PM800_RTC1_USE_XO);
 
-   if (pm80x_pdata) {
-   pdata = pm80x_pdata-rtc;
-   if (pdata)
-   info-rtc_dev-dev.platform_data = pdata-rtc_wakeup;
-   }
+   /* remeber whether this power up is caused by PMIC RTC or not */
+   info-rtc_dev-dev.platform_data = pdata-rtc_wakeup;
 
device_init_wakeup(pdev-dev, 1);
 
-- 
1.9.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/