]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/i2c/chips/ds1337.c
Pull ec into test branch
[linux-2.6-omap-h63xx.git] / drivers / i2c / chips / ds1337.c
index 93d483b8b77077a9a475fe8a51132ab1e18dc7ee..ec17d6b684a23bf8fb50127fd935ff2cb8322204 100644 (file)
@@ -347,13 +347,19 @@ static void ds1337_init_client(struct i2c_client *client)
 
        if ((status & 0x80) || (control & 0x80)) {
                /* RTC not running */
-               u8 buf[16];
+               u8 buf[1+16];   /* First byte is interpreted as address */
                struct i2c_msg msg[1];
 
                dev_dbg(&client->dev, "%s: RTC not running!\n", __FUNCTION__);
 
                /* Initialize all, including STATUS and CONTROL to zero */
                memset(buf, 0, sizeof(buf));
+
+               /* Write valid values in the date/time registers */
+               buf[1+DS1337_REG_DAY] = 1;
+               buf[1+DS1337_REG_DATE] = 1;
+               buf[1+DS1337_REG_MONTH] = 1;
+
                msg[0].addr = client->addr;
                msg[0].flags = 0;
                msg[0].len = sizeof(buf);