linux-2.6.29: update boc01 isl12024 driver to new style i2c
authorJeremy Lainé <jeremy.laine@m4x.org>
Fri, 9 Oct 2009 16:34:53 +0000 (18:34 +0200)
committerJeremy Lainé <jeremy.laine@m4x.org>
Fri, 9 Oct 2009 16:34:53 +0000 (18:34 +0200)
recipes/linux/linux-2.6.29/boc01/005-091008-isl12024.patch [moved from recipes/linux/linux-2.6.29/boc01/005-090226-isl12024.patch with 63% similarity]
recipes/linux/linux-2.6.29/boc01/boc01.dts
recipes/linux/linux-2.6.29/boc01/boc01.dts.v1
recipes/linux/linux_2.6.29.bb

@@ -1,26 +1,26 @@
 Index: linux-2.6.29/drivers/misc/eeprom/at24.c
 ===================================================================
 --- linux-2.6.29.orig/drivers/misc/eeprom/at24.c       2009-03-24 00:12:14.000000000 +0100
-+++ linux-2.6.29/drivers/misc/eeprom/at24.c    2009-04-01 17:37:45.000000000 +0200
++++ linux-2.6.29/drivers/misc/eeprom/at24.c    2009-10-08 16:30:58.000000000 +0200
 @@ -114,6 +114,8 @@
        { "spd", AT24_DEVICE_MAGIC(2048 / 8,
                AT24_FLAG_READONLY | AT24_FLAG_IRUGO) },
        { "24c04", AT24_DEVICE_MAGIC(4096 / 8, 0) },
 +      /* Intersil RTC/Unique-ID isl12024 eeprom handled here */
-+      { "isl12024",AT24_DEVICE_MAGIC(4096 / 8, AT24_FLAG_ADDR16) },
++      { "isl12024-eeprom", AT24_DEVICE_MAGIC(4096 / 8, AT24_FLAG_ADDR16) },
        /* 24rf08 quirk is handled at i2c-core */
        { "24c08", AT24_DEVICE_MAGIC(8192 / 8, 0) },
        { "24c16", AT24_DEVICE_MAGIC(16384 / 8, 0) },
 Index: linux-2.6.29/drivers/rtc/Kconfig
 ===================================================================
 --- linux-2.6.29.orig/drivers/rtc/Kconfig      2009-03-24 00:12:14.000000000 +0100
-+++ linux-2.6.29/drivers/rtc/Kconfig   2009-04-01 17:37:45.000000000 +0200
++++ linux-2.6.29/drivers/rtc/Kconfig   2009-10-08 16:30:58.000000000 +0200
 @@ -128,6 +128,12 @@
  
  if I2C
  
 +config RTC_DRV_ISL12024
-+      tristate "Intersil 12024 RTC/ UniqueID"
++      tristate "Intersil 12024 RTC/Unique-ID"
 +      help
 +        If you say yes ....
 +        This driver can also be built as a module.
@@ -31,7 +31,7 @@ Index: linux-2.6.29/drivers/rtc/Kconfig
 Index: linux-2.6.29/drivers/rtc/Makefile
 ===================================================================
 --- linux-2.6.29.orig/drivers/rtc/Makefile     2009-03-24 00:12:14.000000000 +0100
-+++ linux-2.6.29/drivers/rtc/Makefile  2009-04-01 17:37:45.000000000 +0200
++++ linux-2.6.29/drivers/rtc/Makefile  2009-10-08 16:30:58.000000000 +0200
 @@ -39,6 +39,7 @@
  obj-$(CONFIG_RTC_DRV_EP93XX)  += rtc-ep93xx.o
  obj-$(CONFIG_RTC_DRV_FM3130)  += rtc-fm3130.o
@@ -40,100 +40,64 @@ Index: linux-2.6.29/drivers/rtc/Makefile
  obj-$(CONFIG_RTC_DRV_M41T80)  += rtc-m41t80.o
  obj-$(CONFIG_RTC_DRV_M41T94)  += rtc-m41t94.o
  obj-$(CONFIG_RTC_DRV_M48T35)  += rtc-m48t35.o
-Index: linux-2.6.29/drivers/rtc/isl12024.h
+Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.29/drivers/rtc/isl12024.h        2009-04-01 17:37:45.000000000 +0200
-@@ -0,0 +1,100 @@
++++ linux-2.6.29/drivers/rtc/rtc-isl12024.c    2009-10-09 15:50:08.000000000 +0200
+@@ -0,0 +1,509 @@
 +/*
-+ * Intersil ISL12024 chip registers definitions
++ * Intersil ISL12024 class driver
 + *
 + *
-+ * Copyright (C) 2008, CenoSYS (www.cenosys.com).
-+ * Guillaume Ligneul
-+ * Guillaume.ligneul@gmail.com
++ * Copyright (C) 2007, CenoSYS (www.cenosys.com).
++ * 
++ * Guillaume Ligneul <guillaume.ligneul@gmail.com>
++ * Sylvain Giroudon <sylvain.giroudon@goobie.fr>
++ * Jeremy Laine <jeremy.laine@bolloretelecom.eu>
 + *
 + * This software program is licensed subject to the GNU General Public License
 + * (GPL).Version 2,June 1991, available at http://www.fsf.org/copyleft/gpl.html
 + */
 +
-+#ifndef ISL12024_H_
-+#define ISL12024_H_
-+
-+#define ISL12024_REG_SR               0x3F    /* status register */
-+#define ISL12024_REG_Y2K              0x37
-+#define ISL12024_REG_DW               0x36
-+#define ISL12024_REG_YR               0x35
-+#define ISL12024_REG_MO               0x34
-+#define ISL12024_REG_DT               0x33
-+#define ISL12024_REG_HR               0x32
-+#define ISL12024_REG_MN               0x31
-+#define ISL12024_REG_SC               0x30
-+#define ISL12024_REG_DTR              0x13
-+#define ISL12024_REG_ATR              0x12
-+#define ISL12024_REG_INT              0x11
-+#define ISL12024_REG_0                0x10
-+#define ISL12024_REG_Y2K1             0x0F
-+#define ISL12024_REG_DWA1             0x0E
-+#define ISL12024_REG_YRA1             0x0D
-+#define ISL12024_REG_MOA1             0x0C
-+#define ISL12024_REG_DTA1             0x0B
-+#define ISL12024_REG_HRA1             0x0A
-+#define ISL12024_REG_MNA1             0x09
-+#define ISL12024_REG_SCA1             0x08
-+#define ISL12024_REG_Y2K0             0x07
-+#define ISL12024_REG_DWA0             0x06
-+#define ISL12024_REG_YRA0             0x05
-+#define ISL12024_REG_MOA0             0x04
-+#define ISL12024_REG_DTA0             0x03
-+#define ISL12024_REG_HRA0             0x02
-+#define ISL12024_REG_MNA0             0x01
-+#define ISL12024_REG_SCA0             0x00
++#include <linux/module.h>
++#include <linux/i2c.h>
++#include <linux/bcd.h>
++#include <linux/rtc.h>
++#include <linux/proc_fs.h>
++#include <linux/delay.h>
++
++#define DRV_VERSION "0.3"
 +
 +#define ISL12024_CCR_BASE             0x30    /* Base address of CCR */
 +#define ISL12024_ALM0_BASE            0x00    /* Base address of ALARM0 */
-+
-+#define ISL12024_SR_RTCF              0x01    /* Clock failure */
-+#define ISL12024_SR_WEL               0x02    /* Write Enable Latch */
-+#define ISL12024_SR_RWEL              0x04    /* Register Write Enable */
-+#define ISL12024_SR_AL0               0x20    /* Alarm 0 match */
-+
-+#define ISL12024_DTR_DTR0             0x01
-+#define ISL12024_DTR_DTR1             0x02
-+#define ISL12024_DTR_DTR2             0x04
-+
-+#define ISL12024_HR_MIL               0x80    /* Set in ccr.hour for 24 hr mode */
-+
 +#define ISL12024_INT_AL0E             0x20    /* Alarm 0 enable */
 +
-+/* I2C ADDRESS */
-+#define ISL12024_I2C_ADDR 0xDE
-+#define ISL12024_I2C_EEPROM_ADDR 0x57
++/* Register map */
 +
 +/* device id section */
 +#define ISL12024_REG_ID 0x20
 +
-+/* Register map */
 +/* rtc section */
 +#define ISL12024_REG_HR_MIL     (1<<7) /* 24h/12h mode */
 +#define ISL12024_REG_HR_PM      (1<<5) /* PM/AM bit in 12h mode */
-+//#define ISL12024_REG_DT  0x33  /* Date */
-+//#define ISL12024_REG_MO  0x34  /* Month */
-+//#define ISL12024_REG_YR  0x35  /* Year */
-+//#define ISL12024_REG_DW  0x36
-+//#define ISL12024_REG_Y2K 0x37
++#define ISL12024_REG_SC        0x30
++#define ISL12024_REG_DT  0x33  /* Date */
++#define ISL12024_REG_MO  0x34  /* Month */
++#define ISL12024_REG_YR  0x35  /* Year */
++#define ISL12024_REG_DW  0x36
++#define ISL12024_REG_Y2K 0x37
 +#define ISL12024_RTC_SECTION_LEN 8
 +
 +/* control/status section */
-+//#define ISL12024_REG_SR  0x3F
-+//#define ISL12024_REG_SR_BAT    (1<<7) /* battery */
-+//#define ISL12024_REG_SR_AL1    (1<<6) /* alarm 0 */
-+//#define ISL12024_REG_SR_AL0    (1<<5) /* alarm 1 */
-+//#define ISL12024_REG_SR_OSCF   (1<<4) /* oscillator fail */
-+//#define ISL12024_REG_SR_RWEL   (1<<2) /* register write enable latch */
-+//#define ISL12024_REG_SR_WEL    (1<<1) /* write enable latch */
-+//#define ISL12024_REG_SR_RTCF    (1<<0) /* rtc fail */
-+//#define ISL12024_REG_INT 0x11
++#define ISL12024_REG_SR  0x3F
++#define ISL12024_REG_SR_BAT    (1<<7) /* battery */
++#define ISL12024_REG_SR_AL1    (1<<6) /* alarm 0 */
++#define ISL12024_REG_SR_AL0    (1<<5) /* alarm 1 */
++#define ISL12024_REG_SR_OSCF   (1<<4) /* oscillator fail */
++#define ISL12024_REG_SR_RWEL   (1<<2) /* register write enable latch */
++#define ISL12024_REG_SR_WEL    (1<<1) /* write enable latch */
++#define ISL12024_REG_SR_RTCF   (1<<0) /* rtc fail */
++#define ISL12024_REG_INT 0x11
 +
 +#define CCR_SEC                       0
 +#define CCR_MIN                       1
@@ -144,73 +108,15 @@ Index: linux-2.6.29/drivers/rtc/isl12024.h
 +#define CCR_WDAY              6
 +#define CCR_Y2K                       7
 +
-+#endif /*ISL12024_H_*/
-Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.29/drivers/rtc/rtc-isl12024.c    2009-04-01 17:37:45.000000000 +0200
-@@ -0,0 +1,541 @@
-+/*
-+ * Intersil ISL12024 class driver
-+ *
-+ *
-+ * Copyright (C) 2007, CenoSYS (www.cenosys.com).
-+ * 
-+ * Guillaume Ligneul <guillaume.ligneul@gmail.com>
-+ * Sylvain Giroudon <sylvain.giroudon@goobie.fr>
-+ *
-+ * This software program is licensed subject to the GNU General Public License
-+ * (GPL).Version 2,June 1991, available at http://www.fsf.org/copyleft/gpl.html
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/i2c.h>
-+#include <linux/bcd.h>
-+#include <linux/rtc.h>
-+#include <linux/proc_fs.h>
-+#include <linux/delay.h>
-+
-+#include "isl12024.h"
-+
-+
-+#define DBG 1
-+#undef DBG
-+
-+#define DRV_NAME "isl12024"
-+#define DRV_VERSION "0.2"
-+
-+/* i2c configuration */
-+static const unsigned short normal_i2c[] = {
-+      ISL12024_I2C_ADDR >>1, I2C_CLIENT_END
-+};
-+I2C_CLIENT_INSMOD;
-+
 +static int isl12024_get_status(struct i2c_client *client, unsigned char *sr);
 +static int isl12024_fix_osc(struct i2c_client *client);
 +
-+static int isl12024_attach_adapter(struct i2c_adapter *adapter);
-+static int isl12024_detach_client(struct i2c_client *client);
-+
-+
 +/* Bufer to store unique identifier in */
 +static u8 buf_id[ISL12024_RTC_SECTION_LEN] = { 0 };
 +
++static struct i2c_driver isl12024_driver;
 +
-+// To debug (may be added in include/linux/i2c-id.h)
-+#define I2C_DRIVERID_ISL12024   97
-+
-+
-+static struct i2c_driver isl12024_driver = {
-+      .driver         = {
-+              .name   = DRV_NAME,
-+      },
-+      .id             = I2C_DRIVERID_ISL12024,
-+      .attach_adapter = &isl12024_attach_adapter,
-+      .detach_client  = &isl12024_detach_client,
-+};
-+
-+
-+int
++static int
 +isl12024_i2c_read_regs(struct i2c_client *client, u8 reg, u8 buf[],
 +                     unsigned len)
 +{
@@ -243,10 +149,8 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +      return ret;
 +}
 +
-+EXPORT_SYMBOL(isl12024_i2c_read_regs);
 +
-+
-+int
++static int
 +isl12024_i2c_set_regs(struct i2c_client *client, u8 reg, u8 const buf[],
 +                     unsigned len)
 +{
@@ -270,13 +174,11 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +
 +      ret = i2c_transfer(client->adapter, msgs, 1);
 +      if ( ret < 0 )
-+              printk(KERN_ERR DRV_NAME ": i2c_transfer failed (%d)\n", ret);
++              dev_err(&client->dev, "i2c_transfer failed (%d)\n", ret);
 +
 +      return ret;
 +}
 +
-+EXPORT_SYMBOL(isl12024_i2c_set_regs);
-+
 +
 +static int isl12024_i2c_validate_client(struct i2c_client *client)
 +{
@@ -296,13 +198,11 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +      for (i = 0; i < ISL12024_RTC_SECTION_LEN; ++i) {
 +              if (regs[i] & zero_mask[i]) /* check if bits are cleared */
 +                      return -ENODEV;
-+
 +      }
 +
 +      return 0;
 +}
 +
-+
 +static int isl12024_read_time(struct i2c_client *client,
 +                               struct rtc_time *tm)
 +{
@@ -310,25 +210,16 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +      int err;
 +      u8 regs[ISL12024_RTC_SECTION_LEN] = { 0, };
 +
-+      //printk(KERN_INFO DRV_NAME "%s\n ",__FUNCTION__ );
-+
 +      if (isl12024_get_status(client, &sr) < 0) {
-+              dev_err(&client->dev, "%s: reading SR failed\n", __func__);
++              dev_err(&client->dev, "reading SR failed\n");
 +              return -EIO;
 +      }
 +
 +      err = isl12024_i2c_read_regs(client, ISL12024_REG_SC, regs, ISL12024_RTC_SECTION_LEN);
 +
-+#ifdef DBG
-+      int i;
-+      for(i=0; i<ISL12024_RTC_SECTION_LEN; i++)
-+              printk(KERN_INFO DRV_NAME "0x%2X\n", regs[i]);
-+#endif
-+
 +      if (err < 0) {
-+              dev_err(&client->dev, "%s: reading RTC section failed\n",
-+                              __func__);
-+              return sr;
++              dev_err(&client->dev, "reading RTC section failed\n");
++              return err;
 +      }
 +
 +      tm->tm_sec = bcd2bin(regs[0]);
@@ -353,7 +244,6 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +      return rtc_valid_tm(tm);
 +}
 +
-+
 +static int isl12024_get_status(struct i2c_client *client, unsigned char *sr)
 +{
 +      static unsigned char sr_addr[2] = { 0, ISL12024_REG_SR };
@@ -381,10 +271,10 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +      unsigned char rdata[10] = { 0, reg_base };
 +
 +      static const unsigned char wel[3] = { 0, ISL12024_REG_SR,
-+                                              ISL12024_SR_WEL };
++                                              ISL12024_REG_SR_WEL };
 +
 +      static const unsigned char rwel[3] = { 0, ISL12024_REG_SR,
-+                                              ISL12024_SR_WEL | ISL12024_SR_RWEL };
++                                              ISL12024_REG_SR_WEL | ISL12024_REG_SR_RWEL };
 +
 +      static const unsigned char diswe[3] = { 0, ISL12024_REG_SR, 0 };
 +
@@ -397,7 +287,7 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +      buf[CCR_MIN] = bin2bcd(tm->tm_min);
 +
 +      /* set hour and 24hr bit */
-+      buf[CCR_HOUR] = bin2bcd(tm->tm_hour) | ISL12024_HR_MIL;
++      buf[CCR_HOUR] = bin2bcd(tm->tm_hour) | ISL12024_REG_HR_MIL;
 +
 +      /* should we also set the date? */
 +      if (datetoo) {
@@ -494,7 +384,6 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +      return 0;
 +}
 +
-+
 +static int isl12024_fix_osc(struct i2c_client *client)
 +{
 +      int err;
@@ -504,26 +393,23 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +
 +      err = isl12024_set_datetime(client, &tm, 0, ISL12024_CCR_BASE, 0);
 +      if ( err < 0 )
-+              printk(KERN_ERR DRV_NAME ": Unable to restart the oscillator (%d)\n", err);
++              dev_err(&client->dev, "unable to restart the oscillator (%d)\n", err);
 +
 +      return err;
 +}
 +
-+
 +static int isl12024_rtc_read_time(struct device *dev, struct rtc_time *tm)
 +{
 +      return isl12024_read_time(to_i2c_client(dev), tm);
 +
 +}
 +
-+
 +static int isl12024_rtc_set_time(struct device *dev, struct rtc_time *tm)
 +{
 +      return isl12024_set_datetime(to_i2c_client(dev),
 +                      tm, 1, ISL12024_CCR_BASE, 0);
 +}
 +
-+
 +static int
 +isl12024_rtc_proc(struct device *dev, struct seq_file *seq)
 +{
@@ -533,7 +419,6 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +      return 0;
 +}
 +
-+
 +static const struct rtc_class_ops isl12024_rtc_ops = {
 +      .proc           = isl12024_rtc_proc,
 +      .read_time      = isl12024_rtc_read_time,
@@ -564,113 +449,91 @@ Index: linux-2.6.29/drivers/rtc/rtc-isl12024.c
 +      return len;
 +}
 +
-+
 +static int
-+isl12024_probe(struct i2c_adapter *adapter, int addr, int kind)
++isl12024_probe(struct i2c_client *client, const struct i2c_device_id *id)
 +{
 +      int rc = 0;
-+      int err = 0;
 +      unsigned char sr;
-+      struct i2c_client *new_client = NULL;
 +      struct rtc_device *rtc = NULL;
 +      struct proc_dir_entry *proc_root;
 +      struct proc_dir_entry *proc_entry;
 +
-+      if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) {
-+              rc = -ENODEV;
-+              goto failout;
-+      }
-+
-+      new_client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
-+      if (new_client == NULL) {
-+              rc = -ENOMEM;
-+              goto failout;
-+      }
++      if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
++              return -ENODEV;
 +
-+      new_client->addr = addr;
-+      new_client->adapter = adapter;
-+      new_client->driver = &isl12024_driver;
-+      new_client->flags = 0;
-+      strcpy(new_client->name, DRV_NAME);
++      if (isl12024_i2c_validate_client(client) < 0)
++              return -ENODEV;
 +
-+      if (kind < 0) {
-+              rc = isl12024_i2c_validate_client(new_client);
-+              if (rc < 0)
-+                      goto failout;
-+      }
-+
-+      rc = i2c_attach_client(new_client);
-+      if (rc < 0)
-+              goto failout;
++        dev_info(&client->dev,
++                 "chip found, driver version " DRV_VERSION "\n");
 +
 +      rtc = rtc_device_register(isl12024_driver.driver.name,
-+                                &new_client->dev,
-+                                &isl12024_rtc_ops, THIS_MODULE);
-+
-+      if (IS_ERR(rtc)) {
-+              printk(KERN_ERR DRV_NAME ": Error during rtc registration\n");
-+              rc = PTR_ERR(rtc);
-+              goto failout;
++                                &client->dev, &isl12024_rtc_ops,
++                                THIS_MODULE);
++
++      if (IS_ERR(rtc))
++              return PTR_ERR(rtc);
++
++      i2c_set_clientdata(client, rtc);
++
++      rc = isl12024_get_status(client, &sr);
++        if (rc < 0) {
++                dev_err(&client->dev, "reading status failed\n");
++                goto exit_unregister;
++        }
++
++      /* Check for power failures and enable the osc */
++      if (sr & ISL12024_REG_SR_RTCF) {
++              dev_warn(&client->dev, "rtc power failure detected, "
++                       "please set clock.\n");
++              udelay(50);
++              isl12024_fix_osc(client);
 +      }
 +
-+      i2c_set_clientdata(new_client, rtc);
-+
-+      /* Check for power failures and eventualy enable the osc */
-+      if ((err = isl12024_get_status(new_client, &sr)) == 0) {
-+              if (sr & ISL12024_SR_RTCF) {
-+                      printk(KERN_INFO DRV_NAME ": Power failure detected, please set the clock\n");
-+                      udelay(50);
-+                      isl12024_fix_osc(new_client);
-+              }
-+      }
-+      else {
-+              printk(KERN_ERR DRV_NAME ": Couldn't read status\n");
-+      }
-+
-+      proc_root = proc_mkdir(DRV_NAME, 0);
++      proc_root = proc_mkdir("isl12024", 0);
 +      proc_entry = create_proc_entry("id",  S_IFREG | S_IRUGO, proc_root);
 +      if (proc_entry == NULL)
-+              return -1;
++              goto exit_unregister;
 +
 +      proc_entry->owner = THIS_MODULE;
 +      proc_entry->read_proc = read_proc;
 +
 +      /* Read unique id from eeprom */
-+      isl12024_i2c_read_regs(new_client, ISL12024_REG_ID, buf_id, sizeof(buf_id));
++      isl12024_i2c_read_regs(client, ISL12024_REG_ID, buf_id, sizeof(buf_id));
 +
 +      return 0;
 +
-+ failout:
-+      kfree(new_client);
-+      return rc;
-+}
-+
++exit_unregister:
++      rtc_device_unregister(rtc);
 +
-+static int
-+isl12024_attach_adapter (struct i2c_adapter *adapter)
-+{
-+      return i2c_probe(adapter, &addr_data, isl12024_probe);
++      return rc;
 +}
 +
-+
 +static int
-+isl12024_detach_client(struct i2c_client *client)
++isl12024_remove(struct i2c_client *client)
 +{
-+      int rc;
-+      struct rtc_device *const rtc = i2c_get_clientdata(client);
++      struct rtc_device *rtc = i2c_get_clientdata(client);
 +
-+      if (rtc)
-+              rtc_device_unregister(rtc);
-+
-+      rc = i2c_detach_client(client);
-+      if (rc)
-+              return rc;
-+
-+      kfree(client);
++      /* FIXME : unregister from procfs */
++      rtc_device_unregister(rtc);
 +
 +      return 0;
 +}
 +
++static const struct i2c_device_id isl12024_id[] = {
++        { "isl12024", 0 },
++        { }
++};
++MODULE_DEVICE_TABLE(i2c, isl12024_id);
++
++static struct i2c_driver isl12024_driver = {
++        .driver = {
++                   .name = "rtc-isl12024",
++                   },
++        .probe = isl12024_probe,
++        .remove = isl12024_remove,
++        .id_table = isl12024_id,
++};
 +
 +/* module init/exit */
 +
index fb0b5fb..1abe296 100644 (file)
                                interrupt-parent = <&ipic>;
                                dfsrr;
                                rtc@6f {
-                                       compatible = "isl12024";
+                                       compatible = "intersil,isl12024";
                                        reg = <0x6f>;
                                };
                                dtt@49 {
                                        reg = <0x50>;
                                };
                                at24@57 {
-                                       compatible = "at24,isl12024";
+                                       compatible = "at24,isl12024-eeprom";
                                        reg = <0x57>;
                                };
                        };
index 2066652..b71373a 100644 (file)
                                interrupt-parent = <&ipic>;
                                dfsrr;
                                rtc@6f {
-                                       compatible = "isl12024";
+                                       compatible = "intersil,isl12024";
                                        reg = <0x6f>;
                                };
                                dtt@49 {
                                        reg = <0x50>;
                                };
                                at24@57 {
-                                       compatible = "at24,isl12024";
+                                       compatible = "at24,isl12024-eeprom";
                                        reg = <0x57>;
                                };
                        };
index a172b6d..b4c7aca 100644 (file)
@@ -25,7 +25,7 @@ SRC_URI_append_boc01 = "\
        file://boc01.dts \
        file://boc01.dts.v1 \
        file://004-081205-usb.patch;patch=1 \
-       file://005-090226-isl12024.patch;patch=1 \
+       file://005-091008-isl12024.patch;patch=1 \
        file://007-091005-lm73.patch;patch=1 \
        file://008-091005-spi.patch;patch=1 \
        file://011-090115-gpio.patch;patch=1 \