Lines Matching refs:pdata
79 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in ds1553_rtc_set_time() local
80 void __iomem *ioaddr = pdata->ioaddr; in ds1553_rtc_set_time()
85 writeb(RTC_WRITE, pdata->ioaddr + RTC_CONTROL); in ds1553_rtc_set_time()
104 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in ds1553_rtc_read_time() local
105 void __iomem *ioaddr = pdata->ioaddr; in ds1553_rtc_read_time()
110 if (pdata->last_jiffies == jiffies) in ds1553_rtc_read_time()
112 pdata->last_jiffies = jiffies; in ds1553_rtc_read_time()
139 static void ds1553_rtc_update_alarm(struct rtc_plat_data *pdata) in ds1553_rtc_update_alarm() argument
141 void __iomem *ioaddr = pdata->ioaddr; in ds1553_rtc_update_alarm()
144 spin_lock_irqsave(&pdata->lock, flags); in ds1553_rtc_update_alarm()
145 writeb(pdata->alrm_mday < 0 || (pdata->irqen & RTC_UF) ? in ds1553_rtc_update_alarm()
146 0x80 : bin2bcd(pdata->alrm_mday), in ds1553_rtc_update_alarm()
148 writeb(pdata->alrm_hour < 0 || (pdata->irqen & RTC_UF) ? in ds1553_rtc_update_alarm()
149 0x80 : bin2bcd(pdata->alrm_hour), in ds1553_rtc_update_alarm()
151 writeb(pdata->alrm_min < 0 || (pdata->irqen & RTC_UF) ? in ds1553_rtc_update_alarm()
152 0x80 : bin2bcd(pdata->alrm_min), in ds1553_rtc_update_alarm()
154 writeb(pdata->alrm_sec < 0 || (pdata->irqen & RTC_UF) ? in ds1553_rtc_update_alarm()
155 0x80 : bin2bcd(pdata->alrm_sec), in ds1553_rtc_update_alarm()
157 writeb(pdata->irqen ? RTC_INTS_AE : 0, ioaddr + RTC_INTERRUPTS); in ds1553_rtc_update_alarm()
159 spin_unlock_irqrestore(&pdata->lock, flags); in ds1553_rtc_update_alarm()
165 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in ds1553_rtc_set_alarm() local
167 if (pdata->irq <= 0) in ds1553_rtc_set_alarm()
169 pdata->alrm_mday = alrm->time.tm_mday; in ds1553_rtc_set_alarm()
170 pdata->alrm_hour = alrm->time.tm_hour; in ds1553_rtc_set_alarm()
171 pdata->alrm_min = alrm->time.tm_min; in ds1553_rtc_set_alarm()
172 pdata->alrm_sec = alrm->time.tm_sec; in ds1553_rtc_set_alarm()
174 pdata->irqen |= RTC_AF; in ds1553_rtc_set_alarm()
175 ds1553_rtc_update_alarm(pdata); in ds1553_rtc_set_alarm()
182 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in ds1553_rtc_read_alarm() local
184 if (pdata->irq <= 0) in ds1553_rtc_read_alarm()
186 alrm->time.tm_mday = pdata->alrm_mday < 0 ? 0 : pdata->alrm_mday; in ds1553_rtc_read_alarm()
187 alrm->time.tm_hour = pdata->alrm_hour < 0 ? 0 : pdata->alrm_hour; in ds1553_rtc_read_alarm()
188 alrm->time.tm_min = pdata->alrm_min < 0 ? 0 : pdata->alrm_min; in ds1553_rtc_read_alarm()
189 alrm->time.tm_sec = pdata->alrm_sec < 0 ? 0 : pdata->alrm_sec; in ds1553_rtc_read_alarm()
190 alrm->enabled = (pdata->irqen & RTC_AF) ? 1 : 0; in ds1553_rtc_read_alarm()
197 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in ds1553_rtc_interrupt() local
198 void __iomem *ioaddr = pdata->ioaddr; in ds1553_rtc_interrupt()
201 spin_lock(&pdata->lock); in ds1553_rtc_interrupt()
209 rtc_update_irq(pdata->rtc, 1, events); in ds1553_rtc_interrupt()
211 spin_unlock(&pdata->lock); in ds1553_rtc_interrupt()
218 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in ds1553_rtc_alarm_irq_enable() local
220 if (pdata->irq <= 0) in ds1553_rtc_alarm_irq_enable()
223 pdata->irqen |= RTC_AF; in ds1553_rtc_alarm_irq_enable()
225 pdata->irqen &= ~RTC_AF; in ds1553_rtc_alarm_irq_enable()
226 ds1553_rtc_update_alarm(pdata); in ds1553_rtc_alarm_irq_enable()
244 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in ds1553_nvram_read() local
245 void __iomem *ioaddr = pdata->ioaddr; in ds1553_nvram_read()
259 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in ds1553_nvram_write() local
260 void __iomem *ioaddr = pdata->ioaddr; in ds1553_nvram_write()
282 struct rtc_plat_data *pdata; in ds1553_rtc_probe() local
286 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); in ds1553_rtc_probe()
287 if (!pdata) in ds1553_rtc_probe()
294 pdata->ioaddr = ioaddr; in ds1553_rtc_probe()
295 pdata->irq = platform_get_irq(pdev, 0); in ds1553_rtc_probe()
309 spin_lock_init(&pdata->lock); in ds1553_rtc_probe()
310 pdata->last_jiffies = jiffies; in ds1553_rtc_probe()
311 platform_set_drvdata(pdev, pdata); in ds1553_rtc_probe()
313 pdata->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, in ds1553_rtc_probe()
315 if (IS_ERR(pdata->rtc)) in ds1553_rtc_probe()
316 return PTR_ERR(pdata->rtc); in ds1553_rtc_probe()
318 if (pdata->irq > 0) { in ds1553_rtc_probe()
320 if (devm_request_irq(&pdev->dev, pdata->irq, in ds1553_rtc_probe()
324 pdata->irq = 0; in ds1553_rtc_probe()
338 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in ds1553_rtc_remove() local
341 if (pdata->irq > 0) in ds1553_rtc_remove()
342 writeb(0, pdata->ioaddr + RTC_INTERRUPTS); in ds1553_rtc_remove()