Lines Matching refs:ldata

96 	struct pl031_local *ldata = dev_get_drvdata(dev);
100 writel(RTC_BIT_AI, ldata->base + RTC_ICR);
102 imsc = readl(ldata->base + RTC_IMSC);
105 writel(imsc | RTC_BIT_AI, ldata->base + RTC_IMSC);
107 writel(imsc & ~RTC_BIT_AI, ldata->base + RTC_IMSC);
168 struct pl031_local *ldata = dev_get_drvdata(dev);
170 pl031_stv2_time_to_tm(readl(ldata->base + RTC_DR),
171 readl(ldata->base + RTC_YDR), tm);
180 struct pl031_local *ldata = dev_get_drvdata(dev);
185 writel(bcd_year, ldata->base + RTC_YLR);
186 writel(time, ldata->base + RTC_LR);
194 struct pl031_local *ldata = dev_get_drvdata(dev);
197 ret = pl031_stv2_time_to_tm(readl(ldata->base + RTC_MR),
198 readl(ldata->base + RTC_YMR), &alarm->time);
200 alarm->pending = readl(ldata->base + RTC_RIS) & RTC_BIT_AI;
201 alarm->enabled = readl(ldata->base + RTC_IMSC) & RTC_BIT_AI;
208 struct pl031_local *ldata = dev_get_drvdata(dev);
216 writel(bcd_year, ldata->base + RTC_YMR);
217 writel(time, ldata->base + RTC_MR);
227 struct pl031_local *ldata = dev_id;
231 rtcmis = readl(ldata->base + RTC_MIS);
233 writel(RTC_BIT_AI, ldata->base + RTC_ICR);
235 rtc_update_irq(ldata->rtc, 1, events);
245 struct pl031_local *ldata = dev_get_drvdata(dev);
247 rtc_time64_to_tm(readl(ldata->base + RTC_DR), tm);
254 struct pl031_local *ldata = dev_get_drvdata(dev);
256 writel(rtc_tm_to_time64(tm), ldata->base + RTC_LR);
263 struct pl031_local *ldata = dev_get_drvdata(dev);
265 rtc_time64_to_tm(readl(ldata->base + RTC_MR), &alarm->time);
267 alarm->pending = readl(ldata->base + RTC_RIS) & RTC_BIT_AI;
268 alarm->enabled = readl(ldata->base + RTC_IMSC) & RTC_BIT_AI;
275 struct pl031_local *ldata = dev_get_drvdata(dev);
277 writel(rtc_tm_to_time64(&alarm->time), ldata->base + RTC_MR);
285 struct pl031_local *ldata = dev_get_drvdata(&adev->dev);
290 free_irq(adev->irq[0], ldata);
297 struct pl031_local *ldata;
306 ldata = devm_kzalloc(&adev->dev, sizeof(struct pl031_local),
310 if (!ldata || !ops) {
315 ldata->vendor = vendor;
316 ldata->base = devm_ioremap(&adev->dev, adev->res.start,
318 if (!ldata->base) {
323 amba_set_drvdata(adev, ldata);
328 data = readl(ldata->base + RTC_CR);
334 writel(data, ldata->base + RTC_CR);
341 if (readl(ldata->base + RTC_YDR) == 0x2000) {
342 time = readl(ldata->base + RTC_DR);
347 writel(0x2000, ldata->base + RTC_YLR);
348 writel(time, ldata->base + RTC_LR);
354 ldata->rtc = devm_rtc_allocate_device(&adev->dev);
355 if (IS_ERR(ldata->rtc)) {
356 ret = PTR_ERR(ldata->rtc);
361 clear_bit(RTC_FEATURE_ALARM, ldata->rtc->features);
363 ldata->rtc->ops = ops;
364 ldata->rtc->range_min = vendor->range_min;
365 ldata->rtc->range_max = vendor->range_max;
367 ret = devm_rtc_register_device(ldata->rtc);
373 vendor->irqflags, "rtc-pl031", ldata);