Lines Matching refs:pdata
74 struct rtc_plat_data *pdata = dev_get_drvdata(dev); in stk17ta8_rtc_set_time() local
75 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_rtc_set_time()
78 flags = readb(pdata->ioaddr + RTC_FLAGS); in stk17ta8_rtc_set_time()
79 writeb(flags | RTC_WRITE, pdata->ioaddr + RTC_FLAGS); in stk17ta8_rtc_set_time()
90 writeb(flags & ~RTC_WRITE, pdata->ioaddr + RTC_FLAGS); in stk17ta8_rtc_set_time()
96 struct rtc_plat_data *pdata = dev_get_drvdata(dev); in stk17ta8_rtc_read_time() local
97 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_rtc_read_time()
103 if (pdata->last_jiffies == jiffies) in stk17ta8_rtc_read_time()
105 pdata->last_jiffies = jiffies; in stk17ta8_rtc_read_time()
107 flags = readb(pdata->ioaddr + RTC_FLAGS); in stk17ta8_rtc_read_time()
130 static void stk17ta8_rtc_update_alarm(struct rtc_plat_data *pdata) in stk17ta8_rtc_update_alarm() argument
132 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_rtc_update_alarm()
136 spin_lock_irqsave(&pdata->lock, irqflags); in stk17ta8_rtc_update_alarm()
141 writeb(pdata->alrm_mday < 0 || (pdata->irqen & RTC_UF) ? in stk17ta8_rtc_update_alarm()
142 0x80 : bin2bcd(pdata->alrm_mday), in stk17ta8_rtc_update_alarm()
144 writeb(pdata->alrm_hour < 0 || (pdata->irqen & RTC_UF) ? in stk17ta8_rtc_update_alarm()
145 0x80 : bin2bcd(pdata->alrm_hour), in stk17ta8_rtc_update_alarm()
147 writeb(pdata->alrm_min < 0 || (pdata->irqen & RTC_UF) ? in stk17ta8_rtc_update_alarm()
148 0x80 : bin2bcd(pdata->alrm_min), in stk17ta8_rtc_update_alarm()
150 writeb(pdata->alrm_sec < 0 || (pdata->irqen & RTC_UF) ? in stk17ta8_rtc_update_alarm()
151 0x80 : bin2bcd(pdata->alrm_sec), in stk17ta8_rtc_update_alarm()
153 writeb(pdata->irqen ? RTC_INTS_AIE : 0, ioaddr + RTC_INTERRUPTS); in stk17ta8_rtc_update_alarm()
156 spin_unlock_irqrestore(&pdata->lock, irqflags); in stk17ta8_rtc_update_alarm()
161 struct rtc_plat_data *pdata = dev_get_drvdata(dev); in stk17ta8_rtc_set_alarm() local
163 if (pdata->irq <= 0) in stk17ta8_rtc_set_alarm()
165 pdata->alrm_mday = alrm->time.tm_mday; in stk17ta8_rtc_set_alarm()
166 pdata->alrm_hour = alrm->time.tm_hour; in stk17ta8_rtc_set_alarm()
167 pdata->alrm_min = alrm->time.tm_min; in stk17ta8_rtc_set_alarm()
168 pdata->alrm_sec = alrm->time.tm_sec; in stk17ta8_rtc_set_alarm()
170 pdata->irqen |= RTC_AF; in stk17ta8_rtc_set_alarm()
171 stk17ta8_rtc_update_alarm(pdata); in stk17ta8_rtc_set_alarm()
177 struct rtc_plat_data *pdata = dev_get_drvdata(dev); in stk17ta8_rtc_read_alarm() local
179 if (pdata->irq <= 0) in stk17ta8_rtc_read_alarm()
181 alrm->time.tm_mday = pdata->alrm_mday < 0 ? 0 : pdata->alrm_mday; in stk17ta8_rtc_read_alarm()
182 alrm->time.tm_hour = pdata->alrm_hour < 0 ? 0 : pdata->alrm_hour; in stk17ta8_rtc_read_alarm()
183 alrm->time.tm_min = pdata->alrm_min < 0 ? 0 : pdata->alrm_min; in stk17ta8_rtc_read_alarm()
184 alrm->time.tm_sec = pdata->alrm_sec < 0 ? 0 : pdata->alrm_sec; in stk17ta8_rtc_read_alarm()
185 alrm->enabled = (pdata->irqen & RTC_AF) ? 1 : 0; in stk17ta8_rtc_read_alarm()
192 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); in stk17ta8_rtc_interrupt() local
193 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_rtc_interrupt()
196 spin_lock(&pdata->lock); in stk17ta8_rtc_interrupt()
204 rtc_update_irq(pdata->rtc, 1, events); in stk17ta8_rtc_interrupt()
206 spin_unlock(&pdata->lock); in stk17ta8_rtc_interrupt()
213 struct rtc_plat_data *pdata = dev_get_drvdata(dev); in stk17ta8_rtc_alarm_irq_enable() local
215 if (pdata->irq <= 0) in stk17ta8_rtc_alarm_irq_enable()
218 pdata->irqen |= RTC_AF; in stk17ta8_rtc_alarm_irq_enable()
220 pdata->irqen &= ~RTC_AF; in stk17ta8_rtc_alarm_irq_enable()
221 stk17ta8_rtc_update_alarm(pdata); in stk17ta8_rtc_alarm_irq_enable()
236 struct rtc_plat_data *pdata = priv; in stk17ta8_nvram_read() local
237 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_nvram_read()
248 struct rtc_plat_data *pdata = priv; in stk17ta8_nvram_write() local
249 void __iomem *ioaddr = pdata->ioaddr; in stk17ta8_nvram_write()
261 struct rtc_plat_data *pdata; in stk17ta8_rtc_probe() local
273 pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); in stk17ta8_rtc_probe()
274 if (!pdata) in stk17ta8_rtc_probe()
280 pdata->ioaddr = ioaddr; in stk17ta8_rtc_probe()
281 pdata->irq = platform_get_irq(pdev, 0); in stk17ta8_rtc_probe()
295 spin_lock_init(&pdata->lock); in stk17ta8_rtc_probe()
296 pdata->last_jiffies = jiffies; in stk17ta8_rtc_probe()
297 platform_set_drvdata(pdev, pdata); in stk17ta8_rtc_probe()
298 if (pdata->irq > 0) { in stk17ta8_rtc_probe()
300 if (devm_request_irq(&pdev->dev, pdata->irq, in stk17ta8_rtc_probe()
305 pdata->irq = 0; in stk17ta8_rtc_probe()
309 pdata->rtc = devm_rtc_allocate_device(&pdev->dev); in stk17ta8_rtc_probe()
310 if (IS_ERR(pdata->rtc)) in stk17ta8_rtc_probe()
311 return PTR_ERR(pdata->rtc); in stk17ta8_rtc_probe()
313 pdata->rtc->ops = &stk17ta8_rtc_ops; in stk17ta8_rtc_probe()
314 pdata->rtc->nvram_old_abi = true; in stk17ta8_rtc_probe()
316 nvmem_cfg.priv = pdata; in stk17ta8_rtc_probe()
317 ret = rtc_nvmem_register(pdata->rtc, &nvmem_cfg); in stk17ta8_rtc_probe()
321 return rtc_register_device(pdata->rtc); in stk17ta8_rtc_probe()