|
|
|
@ -3478,7 +3478,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
|
|
|
|
switch (offset) { |
|
|
|
case 0x00: /* SECONDS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC SEC_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->ti -= s->current_tm.tm_sec; |
|
|
|
@ -3486,7 +3486,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x04: /* MINUTES_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC MIN_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->ti -= s->current_tm.tm_min * 60; |
|
|
|
@ -3494,7 +3494,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x08: /* HOURS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC HRS_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->ti -= s->current_tm.tm_hour * 3600; |
|
|
|
@ -3506,7 +3506,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x0c: /* DAYS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC DAY_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->ti -= s->current_tm.tm_mday * 86400; |
|
|
|
@ -3514,7 +3514,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x10: /* MONTHS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC MTH_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
memcpy(&new_tm, &s->current_tm, sizeof(new_tm)); |
|
|
|
@ -3533,7 +3533,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x14: /* YEARS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC YRS_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
memcpy(&new_tm, &s->current_tm, sizeof(new_tm)); |
|
|
|
@ -3555,7 +3555,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; /* Ignored */ |
|
|
|
|
|
|
|
case 0x20: /* ALARM_SECONDS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("ALM SEC_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->alarm_tm.tm_sec = omap_rtc_bin(value); |
|
|
|
@ -3563,7 +3563,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x24: /* ALARM_MINUTES_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("ALM MIN_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->alarm_tm.tm_min = omap_rtc_bin(value); |
|
|
|
@ -3571,7 +3571,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x28: /* ALARM_HOURS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("ALM HRS_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
if (s->pm_am) |
|
|
|
@ -3584,7 +3584,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x2c: /* ALARM_DAYS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("ALM DAY_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->alarm_tm.tm_mday = omap_rtc_bin(value); |
|
|
|
@ -3592,7 +3592,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x30: /* ALARM_MONTHS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("ALM MON_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->alarm_tm.tm_mon = omap_rtc_bin(value); |
|
|
|
@ -3600,7 +3600,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x34: /* ALARM_YEARS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("ALM YRS_REG <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->alarm_tm.tm_year = omap_rtc_bin(value); |
|
|
|
@ -3608,7 +3608,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x40: /* RTC_CTRL_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC CONTROL <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->pm_am = (value >> 3) & 1; |
|
|
|
@ -3620,7 +3620,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x44: /* RTC_STATUS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC STATUSL <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->status &= ~((value & 0xc0) ^ 0x80); |
|
|
|
@ -3628,14 +3628,14 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x48: /* RTC_INTERRUPTS_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC INTRS <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->interrupts = value; |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x4c: /* RTC_COMP_LSB_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC COMPLSB <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->comp_reg &= 0xff00; |
|
|
|
@ -3643,7 +3643,7 @@ static void omap_rtc_write(void *opaque, target_phys_addr_t addr, |
|
|
|
return; |
|
|
|
|
|
|
|
case 0x50: /* RTC_COMP_MSB_REG */ |
|
|
|
#if ALMDEBUG |
|
|
|
#ifdef ALMDEBUG |
|
|
|
printf("RTC COMPMSB <-- %02x\n", value); |
|
|
|
#endif |
|
|
|
s->comp_reg &= 0x00ff; |
|
|
|
|