Lines Matching refs:cmos
244 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_read_alarm() local
247 if (!is_valid_irq(cmos->irq)) in cmos_read_alarm()
260 if (cmos->day_alrm) { in cmos_read_alarm()
262 t->time.tm_mday = CMOS_READ(cmos->day_alrm) & 0x3f; in cmos_read_alarm()
266 if (cmos->mon_alrm) { in cmos_read_alarm()
267 t->time.tm_mon = CMOS_READ(cmos->mon_alrm); in cmos_read_alarm()
290 if (cmos->day_alrm) { in cmos_read_alarm()
296 if (cmos->mon_alrm) { in cmos_read_alarm()
311 static void cmos_checkintr(struct cmos_rtc *cmos, unsigned char rtc_control) in cmos_checkintr() argument
325 rtc_update_irq(cmos->rtc, 1, rtc_intr); in cmos_checkintr()
328 static void cmos_irq_enable(struct cmos_rtc *cmos, unsigned char mask) in cmos_irq_enable() argument
336 cmos_checkintr(cmos, rtc_control); in cmos_irq_enable()
344 if (cmos->wake_on) in cmos_irq_enable()
345 cmos->wake_on(cmos->dev); in cmos_irq_enable()
348 cmos_checkintr(cmos, rtc_control); in cmos_irq_enable()
351 static void cmos_irq_disable(struct cmos_rtc *cmos, unsigned char mask) in cmos_irq_disable() argument
362 if (cmos->wake_off) in cmos_irq_disable()
363 cmos->wake_off(cmos->dev); in cmos_irq_disable()
366 cmos_checkintr(cmos, rtc_control); in cmos_irq_disable()
371 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_validate_alarm() local
376 if (!cmos->day_alrm) { in cmos_validate_alarm()
388 } else if (!cmos->mon_alrm) { in cmos_validate_alarm()
438 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_set_alarm() local
442 if (!is_valid_irq(cmos->irq)) in cmos_set_alarm()
468 cmos_irq_disable(cmos, RTC_AIE); in cmos_set_alarm()
476 if (cmos->day_alrm) { in cmos_set_alarm()
477 CMOS_WRITE(mday, cmos->day_alrm); in cmos_set_alarm()
478 if (cmos->mon_alrm) in cmos_set_alarm()
479 CMOS_WRITE(mon, cmos->mon_alrm); in cmos_set_alarm()
492 cmos_irq_enable(cmos, RTC_AIE); in cmos_set_alarm()
496 cmos->alarm_expires = rtc_tm_to_time64(&t->time); in cmos_set_alarm()
503 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_alarm_irq_enable() local
506 if (!is_valid_irq(cmos->irq)) in cmos_alarm_irq_enable()
512 cmos_irq_enable(cmos, RTC_AIE); in cmos_alarm_irq_enable()
514 cmos_irq_disable(cmos, RTC_AIE); in cmos_alarm_irq_enable()
524 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_procfs() local
550 cmos->rtc->irq_freq, in cmos_procfs()
603 struct cmos_rtc *cmos = priv; in cmos_nvram_write() local
616 if (off == cmos->day_alrm in cmos_nvram_write()
617 || off == cmos->mon_alrm in cmos_nvram_write()
618 || off == cmos->century) in cmos_nvram_write()
892 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_do_remove() local
895 cmos_do_shutdown(cmos->irq); in cmos_do_remove()
897 if (is_valid_irq(cmos->irq)) { in cmos_do_remove()
898 free_irq(cmos->irq, cmos->rtc); in cmos_do_remove()
903 cmos->rtc = NULL; in cmos_do_remove()
905 ports = cmos->iomem; in cmos_do_remove()
910 cmos->iomem = NULL; in cmos_do_remove()
912 cmos->dev = NULL; in cmos_do_remove()
917 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_aie_poweroff() local
923 if (!cmos->alarm_expires) in cmos_aie_poweroff()
946 if (cmos->alarm_expires == t_now + 1) { in cmos_aie_poweroff()
953 } else if (cmos->alarm_expires > t_now + 1) { in cmos_aie_poweroff()
962 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_suspend() local
967 cmos->suspend_ctrl = tmp = CMOS_READ(RTC_CONTROL); in cmos_suspend()
979 cmos_checkintr(cmos, tmp); in cmos_suspend()
984 cmos->enabled_wake = 1; in cmos_suspend()
985 if (cmos->wake_on) in cmos_suspend()
986 cmos->wake_on(dev); in cmos_suspend()
988 enable_irq_wake(cmos->irq); in cmos_suspend()
991 cmos_read_alarm(dev, &cmos->saved_wkalrm); in cmos_suspend()
1016 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_check_wkalrm() local
1024 if (!(cmos->suspend_ctrl & RTC_AIE)) in cmos_check_wkalrm()
1034 if (t_now >= cmos->alarm_expires && use_acpi_alarm) { in cmos_check_wkalrm()
1035 cmos_interrupt(0, (void *)cmos->rtc); in cmos_check_wkalrm()
1041 t_saved_expires = rtc_tm_to_time64(&cmos->saved_wkalrm.time); in cmos_check_wkalrm()
1043 cmos->saved_wkalrm.enabled != current_alarm.enabled) { in cmos_check_wkalrm()
1044 cmos_set_alarm(dev, &cmos->saved_wkalrm); in cmos_check_wkalrm()
1053 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_resume() local
1056 if (cmos->enabled_wake && !use_acpi_alarm) { in cmos_resume()
1057 if (cmos->wake_off) in cmos_resume()
1058 cmos->wake_off(dev); in cmos_resume()
1060 disable_irq_wake(cmos->irq); in cmos_resume()
1061 cmos->enabled_wake = 0; in cmos_resume()
1068 tmp = cmos->suspend_ctrl; in cmos_resume()
1069 cmos->suspend_ctrl = 0; in cmos_resume()
1090 rtc_update_irq(cmos->rtc, 1, mask); in cmos_resume()
1124 struct cmos_rtc *cmos = dev_get_drvdata(dev); in rtc_handler() local
1136 cmos_interrupt(0, (void *)cmos->rtc); in rtc_handler()
1146 rtc_update_irq(cmos->rtc, 1, rtc_intr); in rtc_handler()
1243 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_check_acpi_rtc_status() local
1258 rtc_update_irq(cmos->rtc, 1, mask); in cmos_check_acpi_rtc_status()
1310 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_pnp_shutdown() local
1319 cmos_do_shutdown(cmos->irq); in cmos_pnp_shutdown()
1408 struct cmos_rtc *cmos = dev_get_drvdata(dev); in cmos_platform_shutdown() local
1417 cmos_do_shutdown(cmos->irq); in cmos_platform_shutdown()