Re: [rtc-linux] [RESEND PATCH-v2] rtc: 88pm80x: add device tree support
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/