diff options
Diffstat (limited to 'drivers/rtc/rtc-twl.c')
| -rw-r--r-- | drivers/rtc/rtc-twl.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c index 9277d945bf48..ccd4ad370b32 100644 --- a/drivers/rtc/rtc-twl.c +++ b/drivers/rtc/rtc-twl.c | |||
| @@ -233,7 +233,7 @@ static int twl_rtc_alarm_irq_enable(struct device *dev, unsigned enabled) | |||
| 233 | */ | 233 | */ |
| 234 | static int twl_rtc_read_time(struct device *dev, struct rtc_time *tm) | 234 | static int twl_rtc_read_time(struct device *dev, struct rtc_time *tm) |
| 235 | { | 235 | { |
| 236 | unsigned char rtc_data[ALL_TIME_REGS + 1]; | 236 | unsigned char rtc_data[ALL_TIME_REGS]; |
| 237 | int ret; | 237 | int ret; |
| 238 | u8 save_control; | 238 | u8 save_control; |
| 239 | u8 rtc_control; | 239 | u8 rtc_control; |
| @@ -300,15 +300,15 @@ static int twl_rtc_read_time(struct device *dev, struct rtc_time *tm) | |||
| 300 | static int twl_rtc_set_time(struct device *dev, struct rtc_time *tm) | 300 | static int twl_rtc_set_time(struct device *dev, struct rtc_time *tm) |
| 301 | { | 301 | { |
| 302 | unsigned char save_control; | 302 | unsigned char save_control; |
| 303 | unsigned char rtc_data[ALL_TIME_REGS + 1]; | 303 | unsigned char rtc_data[ALL_TIME_REGS]; |
| 304 | int ret; | 304 | int ret; |
| 305 | 305 | ||
| 306 | rtc_data[1] = bin2bcd(tm->tm_sec); | 306 | rtc_data[0] = bin2bcd(tm->tm_sec); |
| 307 | rtc_data[2] = bin2bcd(tm->tm_min); | 307 | rtc_data[1] = bin2bcd(tm->tm_min); |
| 308 | rtc_data[3] = bin2bcd(tm->tm_hour); | 308 | rtc_data[2] = bin2bcd(tm->tm_hour); |
| 309 | rtc_data[4] = bin2bcd(tm->tm_mday); | 309 | rtc_data[3] = bin2bcd(tm->tm_mday); |
| 310 | rtc_data[5] = bin2bcd(tm->tm_mon + 1); | 310 | rtc_data[4] = bin2bcd(tm->tm_mon + 1); |
| 311 | rtc_data[6] = bin2bcd(tm->tm_year - 100); | 311 | rtc_data[5] = bin2bcd(tm->tm_year - 100); |
| 312 | 312 | ||
| 313 | /* Stop RTC while updating the TC registers */ | 313 | /* Stop RTC while updating the TC registers */ |
| 314 | ret = twl_rtc_read_u8(&save_control, REG_RTC_CTRL_REG); | 314 | ret = twl_rtc_read_u8(&save_control, REG_RTC_CTRL_REG); |
| @@ -341,7 +341,7 @@ out: | |||
| 341 | */ | 341 | */ |
| 342 | static int twl_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm) | 342 | static int twl_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm) |
| 343 | { | 343 | { |
| 344 | unsigned char rtc_data[ALL_TIME_REGS + 1]; | 344 | unsigned char rtc_data[ALL_TIME_REGS]; |
| 345 | int ret; | 345 | int ret; |
| 346 | 346 | ||
| 347 | ret = twl_i2c_read(TWL_MODULE_RTC, rtc_data, | 347 | ret = twl_i2c_read(TWL_MODULE_RTC, rtc_data, |
| @@ -368,19 +368,19 @@ static int twl_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm) | |||
| 368 | 368 | ||
| 369 | static int twl_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) | 369 | static int twl_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) |
| 370 | { | 370 | { |
| 371 | unsigned char alarm_data[ALL_TIME_REGS + 1]; | 371 | unsigned char alarm_data[ALL_TIME_REGS]; |
| 372 | int ret; | 372 | int ret; |
| 373 | 373 | ||
| 374 | ret = twl_rtc_alarm_irq_enable(dev, 0); | 374 | ret = twl_rtc_alarm_irq_enable(dev, 0); |
| 375 | if (ret) | 375 | if (ret) |
| 376 | goto out; | 376 | goto out; |
| 377 | 377 | ||
| 378 | alarm_data[1] = bin2bcd(alm->time.tm_sec); | 378 | alarm_data[0] = bin2bcd(alm->time.tm_sec); |
| 379 | alarm_data[2] = bin2bcd(alm->time.tm_min); | 379 | alarm_data[1] = bin2bcd(alm->time.tm_min); |
| 380 | alarm_data[3] = bin2bcd(alm->time.tm_hour); | 380 | alarm_data[2] = bin2bcd(alm->time.tm_hour); |
| 381 | alarm_data[4] = bin2bcd(alm->time.tm_mday); | 381 | alarm_data[3] = bin2bcd(alm->time.tm_mday); |
| 382 | alarm_data[5] = bin2bcd(alm->time.tm_mon + 1); | 382 | alarm_data[4] = bin2bcd(alm->time.tm_mon + 1); |
| 383 | alarm_data[6] = bin2bcd(alm->time.tm_year - 100); | 383 | alarm_data[5] = bin2bcd(alm->time.tm_year - 100); |
| 384 | 384 | ||
| 385 | /* update all the alarm registers in one shot */ | 385 | /* update all the alarm registers in one shot */ |
| 386 | ret = twl_i2c_write(TWL_MODULE_RTC, alarm_data, | 386 | ret = twl_i2c_write(TWL_MODULE_RTC, alarm_data, |
| @@ -458,7 +458,7 @@ static struct rtc_class_ops twl_rtc_ops = { | |||
| 458 | 458 | ||
| 459 | /*----------------------------------------------------------------------*/ | 459 | /*----------------------------------------------------------------------*/ |
| 460 | 460 | ||
| 461 | static int __devinit twl_rtc_probe(struct platform_device *pdev) | 461 | static int twl_rtc_probe(struct platform_device *pdev) |
| 462 | { | 462 | { |
| 463 | struct rtc_device *rtc; | 463 | struct rtc_device *rtc; |
| 464 | int ret = -EINVAL; | 464 | int ret = -EINVAL; |
| @@ -535,7 +535,7 @@ out1: | |||
| 535 | * Disable all TWL RTC module interrupts. | 535 | * Disable all TWL RTC module interrupts. |
| 536 | * Sets status flag to free. | 536 | * Sets status flag to free. |
| 537 | */ | 537 | */ |
| 538 | static int __devexit twl_rtc_remove(struct platform_device *pdev) | 538 | static int twl_rtc_remove(struct platform_device *pdev) |
| 539 | { | 539 | { |
| 540 | /* leave rtc running, but disable irqs */ | 540 | /* leave rtc running, but disable irqs */ |
| 541 | struct rtc_device *rtc = platform_get_drvdata(pdev); | 541 | struct rtc_device *rtc = platform_get_drvdata(pdev); |
| @@ -597,7 +597,7 @@ MODULE_ALIAS("platform:twl_rtc"); | |||
| 597 | 597 | ||
| 598 | static struct platform_driver twl4030rtc_driver = { | 598 | static struct platform_driver twl4030rtc_driver = { |
| 599 | .probe = twl_rtc_probe, | 599 | .probe = twl_rtc_probe, |
| 600 | .remove = __devexit_p(twl_rtc_remove), | 600 | .remove = twl_rtc_remove, |
| 601 | .shutdown = twl_rtc_shutdown, | 601 | .shutdown = twl_rtc_shutdown, |
| 602 | .suspend = twl_rtc_suspend, | 602 | .suspend = twl_rtc_suspend, |
| 603 | .resume = twl_rtc_resume, | 603 | .resume = twl_rtc_resume, |
