Lines Matching refs:pdata
80 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_rtc_set_time() local
81 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_rtc_set_time()
84 flags = readb(pdata->ioaddr + RTC_FLAGS); in stk17ta8_rtc_set_time()
85 writeb(flags | RTC_WRITE, pdata->ioaddr + RTC_FLAGS); in stk17ta8_rtc_set_time()
96 writeb(flags & ~RTC_WRITE, pdata->ioaddr + RTC_FLAGS); in stk17ta8_rtc_set_time()
103 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_rtc_read_time() local
104 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_rtc_read_time()
110 if (pdata->last_jiffies == jiffies) in stk17ta8_rtc_read_time()
112 pdata->last_jiffies = jiffies; in stk17ta8_rtc_read_time()
114 flags = readb(pdata->ioaddr + RTC_FLAGS); in stk17ta8_rtc_read_time()
141 static void stk17ta8_rtc_update_alarm(struct rtc_plat_data *pdata) in stk17ta8_rtc_update_alarm() argument
143 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_rtc_update_alarm()
147 spin_lock_irqsave(&pdata->lock, irqflags); in stk17ta8_rtc_update_alarm()
152 writeb(pdata->alrm_mday < 0 || (pdata->irqen & RTC_UF) ? in stk17ta8_rtc_update_alarm()
153 0x80 : bin2bcd(pdata->alrm_mday), in stk17ta8_rtc_update_alarm()
155 writeb(pdata->alrm_hour < 0 || (pdata->irqen & RTC_UF) ? in stk17ta8_rtc_update_alarm()
156 0x80 : bin2bcd(pdata->alrm_hour), in stk17ta8_rtc_update_alarm()
158 writeb(pdata->alrm_min < 0 || (pdata->irqen & RTC_UF) ? in stk17ta8_rtc_update_alarm()
159 0x80 : bin2bcd(pdata->alrm_min), in stk17ta8_rtc_update_alarm()
161 writeb(pdata->alrm_sec < 0 || (pdata->irqen & RTC_UF) ? in stk17ta8_rtc_update_alarm()
162 0x80 : bin2bcd(pdata->alrm_sec), in stk17ta8_rtc_update_alarm()
164 writeb(pdata->irqen ? RTC_INTS_AIE : 0, ioaddr + RTC_INTERRUPTS); in stk17ta8_rtc_update_alarm()
167 spin_unlock_irqrestore(&pdata->lock, irqflags); in stk17ta8_rtc_update_alarm()
173 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_rtc_set_alarm() local
175 if (pdata->irq <= 0) in stk17ta8_rtc_set_alarm()
177 pdata->alrm_mday = alrm->time.tm_mday; in stk17ta8_rtc_set_alarm()
178 pdata->alrm_hour = alrm->time.tm_hour; in stk17ta8_rtc_set_alarm()
179 pdata->alrm_min = alrm->time.tm_min; in stk17ta8_rtc_set_alarm()
180 pdata->alrm_sec = alrm->time.tm_sec; in stk17ta8_rtc_set_alarm()
182 pdata->irqen |= RTC_AF; in stk17ta8_rtc_set_alarm()
183 stk17ta8_rtc_update_alarm(pdata); in stk17ta8_rtc_set_alarm()
190 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_rtc_read_alarm() local
192 if (pdata->irq <= 0) in stk17ta8_rtc_read_alarm()
194 alrm->time.tm_mday = pdata->alrm_mday < 0 ? 0 : pdata->alrm_mday; in stk17ta8_rtc_read_alarm()
195 alrm->time.tm_hour = pdata->alrm_hour < 0 ? 0 : pdata->alrm_hour; in stk17ta8_rtc_read_alarm()
196 alrm->time.tm_min = pdata->alrm_min < 0 ? 0 : pdata->alrm_min; in stk17ta8_rtc_read_alarm()
197 alrm->time.tm_sec = pdata->alrm_sec < 0 ? 0 : pdata->alrm_sec; in stk17ta8_rtc_read_alarm()
198 alrm->enabled = (pdata->irqen & RTC_AF) ? 1 : 0; in stk17ta8_rtc_read_alarm()
205 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_rtc_interrupt() local
206 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_rtc_interrupt()
209 spin_lock(&pdata->lock); in stk17ta8_rtc_interrupt()
217 rtc_update_irq(pdata->rtc, 1, events); in stk17ta8_rtc_interrupt()
219 spin_unlock(&pdata->lock); in stk17ta8_rtc_interrupt()
227 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_rtc_alarm_irq_enable() local
229 if (pdata->irq <= 0) in stk17ta8_rtc_alarm_irq_enable()
232 pdata->irqen |= RTC_AF; in stk17ta8_rtc_alarm_irq_enable()
234 pdata->irqen &= ~RTC_AF; in stk17ta8_rtc_alarm_irq_enable()
235 stk17ta8_rtc_update_alarm(pdata); in stk17ta8_rtc_alarm_irq_enable()
253 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_nvram_read() local
254 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_nvram_read()
268 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_nvram_write() local
269 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_nvram_write()
292 struct rtc_plat_data *pdata; in stk17ta8_rtc_probe() local
296 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); in stk17ta8_rtc_probe()
297 if (!pdata) in stk17ta8_rtc_probe()
304 pdata->ioaddr = ioaddr; in stk17ta8_rtc_probe()
305 pdata->irq = platform_get_irq(pdev, 0); in stk17ta8_rtc_probe()
319 spin_lock_init(&pdata->lock); in stk17ta8_rtc_probe()
320 pdata->last_jiffies = jiffies; in stk17ta8_rtc_probe()
321 platform_set_drvdata(pdev, pdata); in stk17ta8_rtc_probe()
322 if (pdata->irq > 0) { in stk17ta8_rtc_probe()
324 if (devm_request_irq(&pdev->dev, pdata->irq, in stk17ta8_rtc_probe()
329 pdata->irq = 0; in stk17ta8_rtc_probe()
333 pdata->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, in stk17ta8_rtc_probe()
335 if (IS_ERR(pdata->rtc)) in stk17ta8_rtc_probe()
336 return PTR_ERR(pdata->rtc); in stk17ta8_rtc_probe()
345 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_rtc_remove() local
348 if (pdata->irq > 0) in stk17ta8_rtc_remove()
349 writeb(0, pdata->ioaddr + RTC_INTERRUPTS); in stk17ta8_rtc_remove()