Lines Matching refs:rtc

42 ds1685_read(struct ds1685_priv *rtc, int reg)  in ds1685_read()  argument
44 return readb((u8 __iomem *)rtc->regs + in ds1685_read()
45 (reg * rtc->regstep)); in ds1685_read()
55 ds1685_write(struct ds1685_priv *rtc, int reg, u8 value) in ds1685_write() argument
57 writeb(value, ((u8 __iomem *)rtc->regs + in ds1685_write()
58 (reg * rtc->regstep))); in ds1685_write()
76 ds1685_rtc_bcd2bin(struct ds1685_priv *rtc, u8 val, u8 bcd_mask, u8 bin_mask) in ds1685_rtc_bcd2bin() argument
78 if (rtc->bcd_mode) in ds1685_rtc_bcd2bin()
94 ds1685_rtc_bin2bcd(struct ds1685_priv *rtc, u8 val, u8 bin_mask, u8 bcd_mask) in ds1685_rtc_bin2bcd() argument
96 if (rtc->bcd_mode) in ds1685_rtc_bin2bcd()
110 ds1685_rtc_check_mday(struct ds1685_priv *rtc, u8 mday) in ds1685_rtc_check_mday() argument
112 if (rtc->bcd_mode) { in ds1685_rtc_check_mday()
127 ds1685_rtc_switch_to_bank0(struct ds1685_priv *rtc) in ds1685_rtc_switch_to_bank0() argument
129 rtc->write(rtc, RTC_CTRL_A, in ds1685_rtc_switch_to_bank0()
130 (rtc->read(rtc, RTC_CTRL_A) & ~(RTC_CTRL_A_DV0))); in ds1685_rtc_switch_to_bank0()
138 ds1685_rtc_switch_to_bank1(struct ds1685_priv *rtc) in ds1685_rtc_switch_to_bank1() argument
140 rtc->write(rtc, RTC_CTRL_A, in ds1685_rtc_switch_to_bank1()
141 (rtc->read(rtc, RTC_CTRL_A) | RTC_CTRL_A_DV0)); in ds1685_rtc_switch_to_bank1()
158 ds1685_rtc_begin_data_access(struct ds1685_priv *rtc) in ds1685_rtc_begin_data_access() argument
161 rtc->write(rtc, RTC_CTRL_B, in ds1685_rtc_begin_data_access()
162 (rtc->read(rtc, RTC_CTRL_B) | RTC_CTRL_B_SET)); in ds1685_rtc_begin_data_access()
165 while (rtc->read(rtc, RTC_EXT_CTRL_4A) & RTC_CTRL_4A_INCR) in ds1685_rtc_begin_data_access()
169 ds1685_rtc_switch_to_bank1(rtc); in ds1685_rtc_begin_data_access()
181 ds1685_rtc_end_data_access(struct ds1685_priv *rtc) in ds1685_rtc_end_data_access() argument
184 ds1685_rtc_switch_to_bank1(rtc); in ds1685_rtc_end_data_access()
187 rtc->write(rtc, RTC_CTRL_B, in ds1685_rtc_end_data_access()
188 (rtc->read(rtc, RTC_CTRL_B) & ~(RTC_CTRL_B_SET))); in ds1685_rtc_end_data_access()
206 ds1685_rtc_get_ssn(struct ds1685_priv *rtc, u8 *ssn) in ds1685_rtc_get_ssn() argument
208 ssn[0] = rtc->read(rtc, RTC_BANK1_SSN_MODEL); in ds1685_rtc_get_ssn()
209 ssn[1] = rtc->read(rtc, RTC_BANK1_SSN_BYTE_1); in ds1685_rtc_get_ssn()
210 ssn[2] = rtc->read(rtc, RTC_BANK1_SSN_BYTE_2); in ds1685_rtc_get_ssn()
211 ssn[3] = rtc->read(rtc, RTC_BANK1_SSN_BYTE_3); in ds1685_rtc_get_ssn()
212 ssn[4] = rtc->read(rtc, RTC_BANK1_SSN_BYTE_4); in ds1685_rtc_get_ssn()
213 ssn[5] = rtc->read(rtc, RTC_BANK1_SSN_BYTE_5); in ds1685_rtc_get_ssn()
214 ssn[6] = rtc->read(rtc, RTC_BANK1_SSN_BYTE_6); in ds1685_rtc_get_ssn()
215 ssn[7] = rtc->read(rtc, RTC_BANK1_SSN_CRC); in ds1685_rtc_get_ssn()
231 struct ds1685_priv *rtc = dev_get_drvdata(dev); in ds1685_rtc_read_time() local
236 ds1685_rtc_begin_data_access(rtc); in ds1685_rtc_read_time()
237 seconds = rtc->read(rtc, RTC_SECS); in ds1685_rtc_read_time()
238 minutes = rtc->read(rtc, RTC_MINS); in ds1685_rtc_read_time()
239 hours = rtc->read(rtc, RTC_HRS); in ds1685_rtc_read_time()
240 wday = rtc->read(rtc, RTC_WDAY); in ds1685_rtc_read_time()
241 mday = rtc->read(rtc, RTC_MDAY); in ds1685_rtc_read_time()
242 month = rtc->read(rtc, RTC_MONTH); in ds1685_rtc_read_time()
243 years = rtc->read(rtc, RTC_YEAR); in ds1685_rtc_read_time()
244 century = rtc->read(rtc, RTC_CENTURY); in ds1685_rtc_read_time()
245 ctrlb = rtc->read(rtc, RTC_CTRL_B); in ds1685_rtc_read_time()
246 ds1685_rtc_end_data_access(rtc); in ds1685_rtc_read_time()
249 years = ds1685_rtc_bcd2bin(rtc, years, RTC_YEAR_BCD_MASK, in ds1685_rtc_read_time()
251 century = ds1685_rtc_bcd2bin(rtc, century, RTC_CENTURY_MASK, in ds1685_rtc_read_time()
253 tm->tm_sec = ds1685_rtc_bcd2bin(rtc, seconds, RTC_SECS_BCD_MASK, in ds1685_rtc_read_time()
255 tm->tm_min = ds1685_rtc_bcd2bin(rtc, minutes, RTC_MINS_BCD_MASK, in ds1685_rtc_read_time()
257 tm->tm_hour = ds1685_rtc_bcd2bin(rtc, hours, RTC_HRS_24_BCD_MASK, in ds1685_rtc_read_time()
259 tm->tm_wday = (ds1685_rtc_bcd2bin(rtc, wday, RTC_WDAY_MASK, in ds1685_rtc_read_time()
261 tm->tm_mday = ds1685_rtc_bcd2bin(rtc, mday, RTC_MDAY_BCD_MASK, in ds1685_rtc_read_time()
263 tm->tm_mon = (ds1685_rtc_bcd2bin(rtc, month, RTC_MONTH_BCD_MASK, in ds1685_rtc_read_time()
280 struct ds1685_priv *rtc = dev_get_drvdata(dev); in ds1685_rtc_set_time() local
284 seconds = ds1685_rtc_bin2bcd(rtc, tm->tm_sec, RTC_SECS_BIN_MASK, in ds1685_rtc_set_time()
286 minutes = ds1685_rtc_bin2bcd(rtc, tm->tm_min, RTC_MINS_BIN_MASK, in ds1685_rtc_set_time()
288 hours = ds1685_rtc_bin2bcd(rtc, tm->tm_hour, RTC_HRS_24_BIN_MASK, in ds1685_rtc_set_time()
290 wday = ds1685_rtc_bin2bcd(rtc, (tm->tm_wday + 1), RTC_WDAY_MASK, in ds1685_rtc_set_time()
292 mday = ds1685_rtc_bin2bcd(rtc, tm->tm_mday, RTC_MDAY_BIN_MASK, in ds1685_rtc_set_time()
294 month = ds1685_rtc_bin2bcd(rtc, (tm->tm_mon + 1), RTC_MONTH_BIN_MASK, in ds1685_rtc_set_time()
296 years = ds1685_rtc_bin2bcd(rtc, (tm->tm_year % 100), in ds1685_rtc_set_time()
298 century = ds1685_rtc_bin2bcd(rtc, ((tm->tm_year + 1900) / 100), in ds1685_rtc_set_time()
321 ds1685_rtc_begin_data_access(rtc); in ds1685_rtc_set_time()
322 ctrlb = rtc->read(rtc, RTC_CTRL_B); in ds1685_rtc_set_time()
323 if (rtc->bcd_mode) in ds1685_rtc_set_time()
327 rtc->write(rtc, RTC_CTRL_B, ctrlb); in ds1685_rtc_set_time()
328 rtc->write(rtc, RTC_SECS, seconds); in ds1685_rtc_set_time()
329 rtc->write(rtc, RTC_MINS, minutes); in ds1685_rtc_set_time()
330 rtc->write(rtc, RTC_HRS, hours); in ds1685_rtc_set_time()
331 rtc->write(rtc, RTC_WDAY, wday); in ds1685_rtc_set_time()
332 rtc->write(rtc, RTC_MDAY, mday); in ds1685_rtc_set_time()
333 rtc->write(rtc, RTC_MONTH, month); in ds1685_rtc_set_time()
334 rtc->write(rtc, RTC_YEAR, years); in ds1685_rtc_set_time()
335 rtc->write(rtc, RTC_CENTURY, century); in ds1685_rtc_set_time()
336 ds1685_rtc_end_data_access(rtc); in ds1685_rtc_set_time()
356 struct ds1685_priv *rtc = dev_get_drvdata(dev); in ds1685_rtc_read_alarm() local
361 ds1685_rtc_begin_data_access(rtc); in ds1685_rtc_read_alarm()
362 seconds = rtc->read(rtc, RTC_SECS_ALARM); in ds1685_rtc_read_alarm()
363 minutes = rtc->read(rtc, RTC_MINS_ALARM); in ds1685_rtc_read_alarm()
364 hours = rtc->read(rtc, RTC_HRS_ALARM); in ds1685_rtc_read_alarm()
365 mday = rtc->read(rtc, RTC_MDAY_ALARM); in ds1685_rtc_read_alarm()
366 ctrlb = rtc->read(rtc, RTC_CTRL_B); in ds1685_rtc_read_alarm()
367 ctrlc = rtc->read(rtc, RTC_CTRL_C); in ds1685_rtc_read_alarm()
368 ds1685_rtc_end_data_access(rtc); in ds1685_rtc_read_alarm()
371 ret = ds1685_rtc_check_mday(rtc, mday); in ds1685_rtc_read_alarm()
383 alrm->time.tm_sec = ds1685_rtc_bcd2bin(rtc, seconds, in ds1685_rtc_read_alarm()
388 alrm->time.tm_min = ds1685_rtc_bcd2bin(rtc, minutes, in ds1685_rtc_read_alarm()
393 alrm->time.tm_hour = ds1685_rtc_bcd2bin(rtc, hours, in ds1685_rtc_read_alarm()
398 alrm->time.tm_mday = ds1685_rtc_bcd2bin(rtc, mday, RTC_MDAY_BCD_MASK, in ds1685_rtc_read_alarm()
414 struct ds1685_priv *rtc = dev_get_drvdata(dev); in ds1685_rtc_set_alarm() local
419 seconds = ds1685_rtc_bin2bcd(rtc, alrm->time.tm_sec, in ds1685_rtc_set_alarm()
422 minutes = ds1685_rtc_bin2bcd(rtc, alrm->time.tm_min, in ds1685_rtc_set_alarm()
425 hours = ds1685_rtc_bin2bcd(rtc, alrm->time.tm_hour, in ds1685_rtc_set_alarm()
428 mday = ds1685_rtc_bin2bcd(rtc, alrm->time.tm_mday, in ds1685_rtc_set_alarm()
433 ret = ds1685_rtc_check_mday(rtc, mday); in ds1685_rtc_set_alarm()
461 ds1685_rtc_begin_data_access(rtc); in ds1685_rtc_set_alarm()
462 ctrlb = rtc->read(rtc, RTC_CTRL_B); in ds1685_rtc_set_alarm()
463 rtc->write(rtc, RTC_CTRL_B, (ctrlb & ~(RTC_CTRL_B_AIE))); in ds1685_rtc_set_alarm()
466 rtc->read(rtc, RTC_CTRL_C); in ds1685_rtc_set_alarm()
472 ctrlb = rtc->read(rtc, RTC_CTRL_B); in ds1685_rtc_set_alarm()
473 if (rtc->bcd_mode) in ds1685_rtc_set_alarm()
477 rtc->write(rtc, RTC_CTRL_B, ctrlb); in ds1685_rtc_set_alarm()
478 rtc->write(rtc, RTC_SECS_ALARM, seconds); in ds1685_rtc_set_alarm()
479 rtc->write(rtc, RTC_MINS_ALARM, minutes); in ds1685_rtc_set_alarm()
480 rtc->write(rtc, RTC_HRS_ALARM, hours); in ds1685_rtc_set_alarm()
481 rtc->write(rtc, RTC_MDAY_ALARM, mday); in ds1685_rtc_set_alarm()
485 ctrlb = rtc->read(rtc, RTC_CTRL_B); in ds1685_rtc_set_alarm()
487 rtc->write(rtc, RTC_CTRL_B, ctrlb); in ds1685_rtc_set_alarm()
491 ds1685_rtc_end_data_access(rtc); in ds1685_rtc_set_alarm()
509 struct ds1685_priv *rtc = dev_get_drvdata(dev); in ds1685_rtc_alarm_irq_enable() local
513 rtc->write(rtc, RTC_CTRL_B, (rtc->read(rtc, RTC_CTRL_B) | in ds1685_rtc_alarm_irq_enable()
516 rtc->write(rtc, RTC_CTRL_B, (rtc->read(rtc, RTC_CTRL_B) & in ds1685_rtc_alarm_irq_enable()
520 rtc->read(rtc, RTC_CTRL_C); in ds1685_rtc_alarm_irq_enable()
536 ds1685_rtc_extended_irq(struct ds1685_priv *rtc, struct platform_device *pdev) in ds1685_rtc_extended_irq() argument
540 ds1685_rtc_switch_to_bank1(rtc); in ds1685_rtc_extended_irq()
541 ctrl4a = rtc->read(rtc, RTC_EXT_CTRL_4A); in ds1685_rtc_extended_irq()
542 ctrl4b = rtc->read(rtc, RTC_EXT_CTRL_4B); in ds1685_rtc_extended_irq()
551 rtc->write(rtc, RTC_EXT_CTRL_4B, in ds1685_rtc_extended_irq()
552 (rtc->read(rtc, RTC_EXT_CTRL_4B) & in ds1685_rtc_extended_irq()
556 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_rtc_extended_irq()
566 rtc->write(rtc, RTC_EXT_CTRL_4B, in ds1685_rtc_extended_irq()
567 (rtc->read(rtc, RTC_EXT_CTRL_4B) | in ds1685_rtc_extended_irq()
571 if (rtc->prepare_poweroff != NULL) in ds1685_rtc_extended_irq()
572 rtc->prepare_poweroff(); in ds1685_rtc_extended_irq()
584 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_rtc_extended_irq()
588 if (rtc->wake_alarm != NULL) in ds1685_rtc_extended_irq()
589 rtc->wake_alarm(); in ds1685_rtc_extended_irq()
606 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_rtc_extended_irq()
611 if (rtc->post_ram_clear != NULL) in ds1685_rtc_extended_irq()
612 rtc->post_ram_clear(); in ds1685_rtc_extended_irq()
617 ds1685_rtc_switch_to_bank0(rtc); in ds1685_rtc_extended_irq()
629 struct ds1685_priv *rtc = platform_get_drvdata(pdev); in ds1685_rtc_irq_handler() local
636 if (unlikely(!rtc)) in ds1685_rtc_irq_handler()
639 rtc_mutex = &rtc->dev->ops_lock; in ds1685_rtc_irq_handler()
643 ctrlb = rtc->read(rtc, RTC_CTRL_B); in ds1685_rtc_irq_handler()
644 ctrlc = rtc->read(rtc, RTC_CTRL_C); in ds1685_rtc_irq_handler()
681 ds1685_rtc_extended_irq(rtc, pdev); in ds1685_rtc_irq_handler()
684 rtc_update_irq(rtc->dev, num_irqs, events); in ds1685_rtc_irq_handler()
725 struct ds1685_priv *rtc = dev_get_drvdata(dev); in ds1685_rtc_proc() local
730 ds1685_rtc_switch_to_bank1(rtc); in ds1685_rtc_proc()
731 ds1685_rtc_get_ssn(rtc, ssn); in ds1685_rtc_proc()
732 ctrla = rtc->read(rtc, RTC_CTRL_A); in ds1685_rtc_proc()
733 ctrlb = rtc->read(rtc, RTC_CTRL_B); in ds1685_rtc_proc()
734 ctrlc = rtc->read(rtc, RTC_CTRL_C); in ds1685_rtc_proc()
735 ctrld = rtc->read(rtc, RTC_CTRL_D); in ds1685_rtc_proc()
736 ctrl4a = rtc->read(rtc, RTC_EXT_CTRL_4A); in ds1685_rtc_proc()
737 ctrl4b = rtc->read(rtc, RTC_EXT_CTRL_4B); in ds1685_rtc_proc()
738 ds1685_rtc_switch_to_bank0(rtc); in ds1685_rtc_proc()
815 struct ds1685_priv *rtc = priv; in ds1685_nvram_read() local
816 struct mutex *rtc_mutex = &rtc->dev->ops_lock; in ds1685_nvram_read()
825 ds1685_rtc_switch_to_bank0(rtc); in ds1685_nvram_read()
831 *buf++ = rtc->read(rtc, (NVRAM_TIME_BASE + pos++)); in ds1685_nvram_read()
833 *buf++ = rtc->read(rtc, (NVRAM_BANK0_BASE + pos++)); in ds1685_nvram_read()
838 ds1685_rtc_switch_to_bank1(rtc); in ds1685_nvram_read()
842 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_nvram_read()
843 (rtc->read(rtc, RTC_EXT_CTRL_4A) | in ds1685_nvram_read()
848 rtc->write(rtc, RTC_BANK1_RAM_ADDR_LSB, in ds1685_nvram_read()
858 rtc->write(rtc, RTC_BANK1_RAM_ADDR, in ds1685_nvram_read()
861 *buf++ = rtc->read(rtc, RTC_BANK1_RAM_DATA_PORT); in ds1685_nvram_read()
867 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_nvram_read()
868 (rtc->read(rtc, RTC_EXT_CTRL_4A) & in ds1685_nvram_read()
871 ds1685_rtc_switch_to_bank0(rtc); in ds1685_nvram_read()
882 struct ds1685_priv *rtc = priv; in ds1685_nvram_write() local
883 struct mutex *rtc_mutex = &rtc->dev->ops_lock; in ds1685_nvram_write()
892 ds1685_rtc_switch_to_bank0(rtc); in ds1685_nvram_write()
898 rtc->write(rtc, (NVRAM_TIME_BASE + pos++), in ds1685_nvram_write()
901 rtc->write(rtc, (NVRAM_BANK0_BASE), *buf++); in ds1685_nvram_write()
905 ds1685_rtc_switch_to_bank1(rtc); in ds1685_nvram_write()
909 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_nvram_write()
910 (rtc->read(rtc, RTC_EXT_CTRL_4A) | in ds1685_nvram_write()
915 rtc->write(rtc, RTC_BANK1_RAM_ADDR_LSB, in ds1685_nvram_write()
925 rtc->write(rtc, RTC_BANK1_RAM_ADDR, in ds1685_nvram_write()
928 rtc->write(rtc, RTC_BANK1_RAM_DATA_PORT, *buf++); in ds1685_nvram_write()
934 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_nvram_write()
935 (rtc->read(rtc, RTC_EXT_CTRL_4A) & in ds1685_nvram_write()
938 ds1685_rtc_switch_to_bank0(rtc); in ds1685_nvram_write()
959 struct ds1685_priv *rtc = dev_get_drvdata(dev->parent); in ds1685_rtc_sysfs_battery_show() local
962 ctrld = rtc->read(rtc, RTC_CTRL_D); in ds1685_rtc_sysfs_battery_show()
979 struct ds1685_priv *rtc = dev_get_drvdata(dev->parent); in ds1685_rtc_sysfs_auxbatt_show() local
982 ds1685_rtc_switch_to_bank1(rtc); in ds1685_rtc_sysfs_auxbatt_show()
983 ctrl4a = rtc->read(rtc, RTC_EXT_CTRL_4A); in ds1685_rtc_sysfs_auxbatt_show()
984 ds1685_rtc_switch_to_bank0(rtc); in ds1685_rtc_sysfs_auxbatt_show()
1001 struct ds1685_priv *rtc = dev_get_drvdata(dev->parent); in ds1685_rtc_sysfs_serial_show() local
1004 ds1685_rtc_switch_to_bank1(rtc); in ds1685_rtc_sysfs_serial_show()
1005 ds1685_rtc_get_ssn(rtc, ssn); in ds1685_rtc_sysfs_serial_show()
1006 ds1685_rtc_switch_to_bank0(rtc); in ds1685_rtc_sysfs_serial_show()
1044 struct ds1685_priv *rtc; in ds1685_rtc_probe() local
1062 rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL); in ds1685_rtc_probe()
1063 if (!rtc) in ds1685_rtc_probe()
1077 rtc->size = resource_size(res); in ds1685_rtc_probe()
1081 if (!devm_request_mem_region(&pdev->dev, res->start, rtc->size, in ds1685_rtc_probe()
1089 rtc->baseaddr = res->start; in ds1685_rtc_probe()
1090 rtc->regs = devm_ioremap(&pdev->dev, res->start, rtc->size); in ds1685_rtc_probe()
1091 if (!rtc->regs) in ds1685_rtc_probe()
1094 rtc->alloc_io_resources = pdata->alloc_io_resources; in ds1685_rtc_probe()
1098 rtc->regstep = pdata->regstep; in ds1685_rtc_probe()
1100 rtc->regstep = 1; in ds1685_rtc_probe()
1104 rtc->read = pdata->plat_read; in ds1685_rtc_probe()
1107 rtc->read = ds1685_read; in ds1685_rtc_probe()
1113 rtc->write = pdata->plat_write; in ds1685_rtc_probe()
1116 rtc->write = ds1685_write; in ds1685_rtc_probe()
1122 rtc->prepare_poweroff = pdata->plat_prepare_poweroff; in ds1685_rtc_probe()
1126 rtc->wake_alarm = pdata->plat_wake_alarm; in ds1685_rtc_probe()
1130 rtc->post_ram_clear = pdata->plat_post_ram_clear; in ds1685_rtc_probe()
1133 platform_set_drvdata(pdev, rtc); in ds1685_rtc_probe()
1136 ctrla = rtc->read(rtc, RTC_CTRL_A); in ds1685_rtc_probe()
1151 rtc->write(rtc, RTC_CTRL_A, ctrla); in ds1685_rtc_probe()
1154 rtc->write(rtc, RTC_EXT_CTRL_4B, in ds1685_rtc_probe()
1155 (rtc->read(rtc, RTC_EXT_CTRL_4B) | RTC_CTRL_4B_E32K)); in ds1685_rtc_probe()
1158 rtc->write(rtc, RTC_CTRL_B, in ds1685_rtc_probe()
1159 (rtc->read(rtc, RTC_CTRL_B) | RTC_CTRL_B_SET)); in ds1685_rtc_probe()
1162 while (rtc->read(rtc, RTC_EXT_CTRL_4A) & RTC_CTRL_4A_INCR) in ds1685_rtc_probe()
1169 ctrlb = rtc->read(rtc, RTC_CTRL_B); in ds1685_rtc_probe()
1174 rtc->bcd_mode = pdata->bcd_mode; in ds1685_rtc_probe()
1187 hours = rtc->read(rtc, RTC_HRS); in ds1685_rtc_probe()
1189 hours = ds1685_rtc_bcd2bin(rtc, hours, RTC_HRS_12_BCD_MASK, in ds1685_rtc_probe()
1197 rtc->write(rtc, RTC_CTRL_B, ctrlb); in ds1685_rtc_probe()
1200 rtc->write(rtc, RTC_HRS, in ds1685_rtc_probe()
1201 ds1685_rtc_bin2bcd(rtc, hours, in ds1685_rtc_probe()
1206 hours = rtc->read(rtc, RTC_HRS_ALARM); in ds1685_rtc_probe()
1208 hours = ds1685_rtc_bcd2bin(rtc, hours, RTC_HRS_12_BCD_MASK, in ds1685_rtc_probe()
1213 rtc->write(rtc, RTC_HRS_ALARM, in ds1685_rtc_probe()
1214 ds1685_rtc_bin2bcd(rtc, hours, in ds1685_rtc_probe()
1219 rtc->write(rtc, RTC_CTRL_B, ctrlb); in ds1685_rtc_probe()
1223 rtc->write(rtc, RTC_CTRL_B, in ds1685_rtc_probe()
1224 (rtc->read(rtc, RTC_CTRL_B) & ~(RTC_CTRL_B_SET))); in ds1685_rtc_probe()
1227 if (!(rtc->read(rtc, RTC_CTRL_D) & RTC_CTRL_D_VRT)) in ds1685_rtc_probe()
1232 if (!(rtc->read(rtc, RTC_EXT_CTRL_4A) & RTC_CTRL_4A_VRT2)) in ds1685_rtc_probe()
1237 rtc->write(rtc, RTC_CTRL_B, in ds1685_rtc_probe()
1238 (rtc->read(rtc, RTC_CTRL_B) & ~(RTC_CTRL_B_PAU_MASK))); in ds1685_rtc_probe()
1241 rtc->read(rtc, RTC_CTRL_C); in ds1685_rtc_probe()
1244 rtc->write(rtc, RTC_EXT_CTRL_4B, in ds1685_rtc_probe()
1245 (rtc->read(rtc, RTC_EXT_CTRL_4B) & ~(RTC_CTRL_4B_RWK_MASK))); in ds1685_rtc_probe()
1248 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_rtc_probe()
1249 (rtc->read(rtc, RTC_EXT_CTRL_4A) & ~(RTC_CTRL_4A_RWK_MASK))); in ds1685_rtc_probe()
1255 rtc->write(rtc, RTC_EXT_CTRL_4B, in ds1685_rtc_probe()
1256 (rtc->read(rtc, RTC_EXT_CTRL_4B) | RTC_CTRL_4B_KSE)); in ds1685_rtc_probe()
1274 rtc->uie_unsupported = pdata->uie_unsupported; in ds1685_rtc_probe()
1276 rtc->dev = rtc_dev; in ds1685_rtc_probe()
1291 rtc->irq_num = ret; in ds1685_rtc_probe()
1294 ret = devm_request_threaded_irq(&pdev->dev, rtc->irq_num, in ds1685_rtc_probe()
1303 rtc->irq_num = 0; in ds1685_rtc_probe()
1306 rtc->no_irq = pdata->no_irq; in ds1685_rtc_probe()
1309 ds1685_rtc_switch_to_bank0(rtc); in ds1685_rtc_probe()
1316 nvmem_cfg.priv = rtc; in ds1685_rtc_probe()
1331 struct ds1685_priv *rtc = platform_get_drvdata(pdev); in ds1685_rtc_remove() local
1334 rtc->write(rtc, RTC_CTRL_B, in ds1685_rtc_remove()
1335 (rtc->read(rtc, RTC_CTRL_B) & in ds1685_rtc_remove()
1339 rtc->read(rtc, RTC_CTRL_C); in ds1685_rtc_remove()
1342 rtc->write(rtc, RTC_EXT_CTRL_4B, in ds1685_rtc_remove()
1343 (rtc->read(rtc, RTC_EXT_CTRL_4B) & in ds1685_rtc_remove()
1347 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_rtc_remove()
1348 (rtc->read(rtc, RTC_EXT_CTRL_4A) & in ds1685_rtc_remove()
1379 struct ds1685_priv *rtc; in ds1685_rtc_poweroff() local
1388 rtc = platform_get_drvdata(pdev); in ds1685_rtc_poweroff()
1396 if (!rtc->no_irq) in ds1685_rtc_poweroff()
1397 disable_irq_nosync(rtc->irq_num); in ds1685_rtc_poweroff()
1400 ctrla = rtc->read(rtc, RTC_CTRL_A); in ds1685_rtc_poweroff()
1403 rtc->write(rtc, RTC_CTRL_A, ctrla); in ds1685_rtc_poweroff()
1410 ds1685_rtc_switch_to_bank1(rtc); in ds1685_rtc_poweroff()
1411 ctrl4a = rtc->read(rtc, RTC_EXT_CTRL_4A); in ds1685_rtc_poweroff()
1415 rtc->write(rtc, RTC_EXT_CTRL_4A, ctrl4a); in ds1685_rtc_poweroff()
1423 ctrl4b = rtc->read(rtc, RTC_EXT_CTRL_4B); in ds1685_rtc_poweroff()
1426 rtc->write(rtc, RTC_EXT_CTRL_4B, ctrl4b); in ds1685_rtc_poweroff()
1432 rtc->write(rtc, RTC_EXT_CTRL_4A, in ds1685_rtc_poweroff()