diff options
| author | bjh21 <bjh21@NetBSD.org> | 2006-08-23 21:21:34 +0000 |
|---|---|---|
| committer | bjh21 <bjh21@NetBSD.org> | 2006-08-23 21:21:34 +0000 |
| commit | b223d41e997ec1d5e924124b69dcdd4926db3760 (patch) | |
| tree | 4a7074adddc717fd8bb778e3c7d7848b3a50935a /sys/dev | |
| parent | 51faed03f968674e6fb6d86e930f5971fe71f23a (diff) | |
gettime and settime functions are meant to return errno values. Make
the pcf8583 ones do so.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/i2c/pcf8583.c | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/sys/dev/i2c/pcf8583.c b/sys/dev/i2c/pcf8583.c index d8b4174e37b..a2b015d970f 100644 --- a/sys/dev/i2c/pcf8583.c +++ b/sys/dev/i2c/pcf8583.c @@ -1,4 +1,4 @@ -/* $NetBSD: pcf8583.c,v 1.4 2006/03/29 06:41:24 thorpej Exp $ */ +/* $NetBSD: pcf8583.c,v 1.5 2006/08/23 21:21:34 bjh21 Exp $ */ /* * Copyright (c) 2003 Wasabi Systems, Inc. @@ -269,10 +269,11 @@ pcfrtc_gettime(struct todr_chip_handle *ch, volatile struct timeval *tv) { struct pcfrtc_softc *sc = ch->cookie; struct clock_ymdhms dt; + int err; uint8_t centi; - if (pcfrtc_clock_read(sc, &dt, ¢i) == 0) - return (-1); + if ((err = pcfrtc_clock_read(sc, &dt, ¢i))) + return err; tv->tv_sec = clock_ymdhms_to_secs(&dt); tv->tv_usec = centi * 10000; @@ -285,11 +286,12 @@ pcfrtc_settime(struct todr_chip_handle *ch, volatile struct timeval *tv) { struct pcfrtc_softc *sc = ch->cookie; struct clock_ymdhms dt; + int err; clock_secs_to_ymdhms(tv->tv_sec, &dt); - if (pcfrtc_clock_write(sc, &dt, tv->tv_usec / 10000) == 0) - return (-1); + if ((err = pcfrtc_clock_write(sc, &dt, tv->tv_usec / 10000) == 0)) + return err; return (0); } @@ -326,26 +328,26 @@ pcfrtc_clock_read(struct pcfrtc_softc *sc, struct clock_ymdhms *dt, uint8_t *centi) { u_int8_t bcd[10], cmdbuf[1]; - int i; + int i, err; - if (iic_acquire_bus(sc->sc_tag, I2C_F_POLL)) { + if ((err = iic_acquire_bus(sc->sc_tag, I2C_F_POLL))) { printf("%s: pcfrtc_clock_read: failed to acquire I2C bus\n", sc->sc_dev.dv_xname); - return (0); + return err; } /* Read each timekeeping register in order. */ for (i = 0; i < 10; i++) { cmdbuf[0] = pcf8583_rtc_offset[i]; - if (iic_exec(sc->sc_tag, I2C_OP_READ_WITH_STOP, + if ((err = iic_exec(sc->sc_tag, I2C_OP_READ_WITH_STOP, sc->sc_address, cmdbuf, 1, - &bcd[i], 1, I2C_F_POLL)) { + &bcd[i], 1, I2C_F_POLL))) { iic_release_bus(sc->sc_tag, I2C_F_POLL); printf("%s: pcfrtc_clock_read: failed to read rtc " "at 0x%x\n", sc->sc_dev.dv_xname, pcf8583_rtc_offset[i]); - return (0); + return err; } } @@ -380,7 +382,7 @@ pcfrtc_clock_read(struct pcfrtc_softc *sc, struct clock_ymdhms *dt, dt->dt_year++; } - return (1); + return 0; } static int @@ -388,7 +390,7 @@ pcfrtc_clock_write(struct pcfrtc_softc *sc, struct clock_ymdhms *dt, uint8_t centi) { uint8_t bcd[10], cmdbuf[2]; - int i; + int i, err; /* * Convert our time representation into something the PCF8583 @@ -405,29 +407,29 @@ pcfrtc_clock_write(struct pcfrtc_softc *sc, struct clock_ymdhms *dt, bcd[8] = dt->dt_year % 100; bcd[9] = dt->dt_year / 100; - if (iic_acquire_bus(sc->sc_tag, I2C_F_POLL)) { + if ((err = iic_acquire_bus(sc->sc_tag, I2C_F_POLL))) { printf("%s: pcfrtc_clock_write: failed to acquire I2C bus\n", sc->sc_dev.dv_xname); - return (0); + return err; } for (i = 1; i < 10; i++) { cmdbuf[0] = pcf8583_rtc_offset[i]; - if (iic_exec(sc->sc_tag, + if ((err = iic_exec(sc->sc_tag, i != 9 ? I2C_OP_WRITE : I2C_OP_WRITE_WITH_STOP, sc->sc_address, cmdbuf, 1, - &bcd[i], 1, I2C_F_POLL)) { + &bcd[i], 1, I2C_F_POLL))) { iic_release_bus(sc->sc_tag, I2C_F_POLL); printf("%s: pcfrtc_clock_write: failed to write rtc " " at 0x%x\n", sc->sc_dev.dv_xname, pcf8583_rtc_offset[i]); - return (0); + return err; } } iic_release_bus(sc->sc_tag, I2C_F_POLL); - return (1); + return 0; } int |
