Lines Matching defs:pdata

65 static void pic32_rtc_alarm_clk_enable(struct pic32_rtc_dev *pdata,
70 spin_lock_irqsave(&pdata->alarm_lock, flags);
72 if (!pdata->alarm_clk_enabled) {
73 clk_enable(pdata->clk);
74 pdata->alarm_clk_enabled = true;
77 if (pdata->alarm_clk_enabled) {
78 clk_disable(pdata->clk);
79 pdata->alarm_clk_enabled = false;
82 spin_unlock_irqrestore(&pdata->alarm_lock, flags);
87 struct pic32_rtc_dev *pdata = (struct pic32_rtc_dev *)id;
89 clk_enable(pdata->clk);
90 rtc_update_irq(pdata->rtc, 1, RTC_AF | RTC_IRQF);
91 clk_disable(pdata->clk);
93 pic32_rtc_alarm_clk_enable(pdata, false);
100 struct pic32_rtc_dev *pdata = dev_get_drvdata(dev);
101 void __iomem *base = pdata->reg_base;
103 clk_enable(pdata->clk);
109 clk_disable(pdata->clk);
111 pic32_rtc_alarm_clk_enable(pdata, enabled);
118 struct pic32_rtc_dev *pdata = dev_get_drvdata(dev);
119 void __iomem *base = pdata->reg_base;
121 clk_enable(pdata->clk);
127 clk_disable(pdata->clk);
134 struct pic32_rtc_dev *pdata = dev_get_drvdata(dev);
135 void __iomem *base = pdata->reg_base;
138 clk_enable(pdata->clk);
167 clk_disable(pdata->clk);
173 struct pic32_rtc_dev *pdata = dev_get_drvdata(dev);
174 void __iomem *base = pdata->reg_base;
178 clk_enable(pdata->clk);
185 clk_disable(pdata->clk);
192 struct pic32_rtc_dev *pdata = dev_get_drvdata(dev);
194 void __iomem *base = pdata->reg_base;
197 clk_enable(pdata->clk);
218 clk_disable(pdata->clk);
224 struct pic32_rtc_dev *pdata = dev_get_drvdata(dev);
226 void __iomem *base = pdata->reg_base;
228 clk_enable(pdata->clk);
236 clk_disable(pdata->clk);
242 struct pic32_rtc_dev *pdata = dev_get_drvdata(dev);
243 void __iomem *base = pdata->reg_base;
246 clk_enable(pdata->clk);
252 clk_disable(pdata->clk);
265 static void pic32_rtc_enable(struct pic32_rtc_dev *pdata, int en)
267 void __iomem *base = pdata->reg_base;
272 clk_enable(pdata->clk);
284 clk_disable(pdata->clk);
289 struct pic32_rtc_dev *pdata = platform_get_drvdata(pdev);
292 clk_unprepare(pdata->clk);
293 pdata->clk = NULL;
298 struct pic32_rtc_dev *pdata;
301 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
302 if (!pdata)
305 platform_set_drvdata(pdev, pdata);
307 pdata->alarm_irq = platform_get_irq(pdev, 0);
308 if (pdata->alarm_irq < 0)
309 return pdata->alarm_irq;
311 pdata->reg_base = devm_platform_ioremap_resource(pdev, 0);
312 if (IS_ERR(pdata->reg_base))
313 return PTR_ERR(pdata->reg_base);
315 pdata->clk = devm_clk_get(&pdev->dev, NULL);
316 if (IS_ERR(pdata->clk)) {
318 ret = PTR_ERR(pdata->clk);
319 pdata->clk = NULL;
323 spin_lock_init(&pdata->alarm_lock);
325 pdata->rtc = devm_rtc_allocate_device(&pdev->dev);
326 if (IS_ERR(pdata->rtc))
327 return PTR_ERR(pdata->rtc);
329 clk_prepare_enable(pdata->clk);
331 pic32_rtc_enable(pdata, 1);
335 pdata->rtc->ops = &pic32_rtcops;
336 pdata->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;
337 pdata->rtc->range_max = RTC_TIMESTAMP_END_2099;
339 ret = devm_rtc_register_device(pdata->rtc);
343 pdata->rtc->max_user_freq = 128;
346 ret = devm_request_irq(&pdev->dev, pdata->alarm_irq,
348 dev_name(&pdev->dev), pdata);
351 "IRQ %d error %d\n", pdata->alarm_irq, ret);
355 clk_disable(pdata->clk);
360 pic32_rtc_enable(pdata, 0);
361 clk_disable_unprepare(pdata->clk);