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 devicetree" in