summaryrefslogtreecommitdiff
path: root/recipes
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2009-11-10 18:22:19 +0100
committerJeremy Lainé <jeremy.laine@m4x.org>2009-11-10 18:22:19 +0100
commit9cc704b6854e094a3cf5e977a4e2fd1938d25e40 (patch)
tree7501ca7cb8b5c04479c8b595214ee9da58c5b232 /recipes
parent2a7eb1c2810769fa80dffc1e5080658e645fbb37 (diff)
linux-2.6.31: cleanup boc01 RTC driver
Diffstat (limited to 'recipes')
-rw-r--r--recipes/linux/linux-2.6.31/boc01/005-091110-isl12024.patch (renamed from recipes/linux/linux-2.6.31/boc01/005-091103-isl12024.patch)70
-rw-r--r--recipes/linux/linux_2.6.31.bb2
2 files changed, 35 insertions, 37 deletions
diff --git a/recipes/linux/linux-2.6.31/boc01/005-091103-isl12024.patch b/recipes/linux/linux-2.6.31/boc01/005-091110-isl12024.patch
index 9daab5acaa..0d0f5c42c0 100644
--- a/recipes/linux/linux-2.6.31/boc01/005-091103-isl12024.patch
+++ b/recipes/linux/linux-2.6.31/boc01/005-091110-isl12024.patch
@@ -4,8 +4,8 @@ Signed-off-by: Jeremy Laine <jeremy.laine@m4x.org>
Index: linux-2.6.31/drivers/misc/eeprom/at24.c
===================================================================
---- linux-2.6.31.orig/drivers/misc/eeprom/at24.c 2009-09-10 00:13:59.000000000 +0200
-+++ linux-2.6.31/drivers/misc/eeprom/at24.c 2009-11-03 11:17:22.000000000 +0100
+--- linux-2.6.31.orig/drivers/misc/eeprom/at24.c 2009-11-10 17:20:53.000000000 +0100
++++ linux-2.6.31/drivers/misc/eeprom/at24.c 2009-11-10 17:54:17.000000000 +0100
@@ -115,6 +115,8 @@
{ "spd", AT24_DEVICE_MAGIC(2048 / 8,
AT24_FLAG_READONLY | AT24_FLAG_IRUGO) },
@@ -17,14 +17,14 @@ Index: linux-2.6.31/drivers/misc/eeprom/at24.c
{ "24c16", AT24_DEVICE_MAGIC(16384 / 8, 0) },
Index: linux-2.6.31/drivers/rtc/Kconfig
===================================================================
---- linux-2.6.31.orig/drivers/rtc/Kconfig 2009-09-10 00:13:59.000000000 +0200
-+++ linux-2.6.31/drivers/rtc/Kconfig 2009-11-03 11:13:42.000000000 +0100
+--- linux-2.6.31.orig/drivers/rtc/Kconfig 2009-11-10 17:20:53.000000000 +0100
++++ linux-2.6.31/drivers/rtc/Kconfig 2009-11-10 17:54:17.000000000 +0100
@@ -193,6 +193,15 @@
This driver can also be built as a module. If so, the module
will be called rtc-isl1208.
+config RTC_DRV_ISL12024
-+ tristate "Intersil 12024"
++ tristate "Intersil ISL12024"
+ help
+ If you say yes here you get support for the Intersil ISL12024
+ RTC chip. This driver also exposes the chip's unique ID.
@@ -37,8 +37,8 @@ Index: linux-2.6.31/drivers/rtc/Kconfig
help
Index: linux-2.6.31/drivers/rtc/Makefile
===================================================================
---- linux-2.6.31.orig/drivers/rtc/Makefile 2009-09-10 00:13:59.000000000 +0200
-+++ linux-2.6.31/drivers/rtc/Makefile 2009-11-03 11:13:42.000000000 +0100
+--- linux-2.6.31.orig/drivers/rtc/Makefile 2009-11-10 17:20:53.000000000 +0100
++++ linux-2.6.31/drivers/rtc/Makefile 2009-11-10 17:54:17.000000000 +0100
@@ -40,6 +40,7 @@
obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o
obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o
@@ -50,8 +50,8 @@ Index: linux-2.6.31/drivers/rtc/Makefile
Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.31/drivers/rtc/rtc-isl12024.c 2009-11-03 11:14:33.000000000 +0100
-@@ -0,0 +1,457 @@
++++ linux-2.6.31/drivers/rtc/rtc-isl12024.c 2009-11-10 17:54:31.000000000 +0100
+@@ -0,0 +1,455 @@
+/*
+ * Intersil ISL12024 rtc class driver
+ *
@@ -101,7 +101,7 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+#define ISL12024_REG_HR_PM (1<<5) /* AM/PM bit in 12h mode */
+#define ISL12024_RTC_SECTION_LEN 8
+
-+/* control/status section */
++/* status section */
+#define ISL12024_REG_SR 0x3F
+#define ISL12024_REG_SR_BAT (1<<7) /* battery */
+#define ISL12024_REG_SR_AL1 (1<<6) /* alarm 0 */
@@ -110,9 +110,10 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+#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_INT_AL0E 0x20 /* Alarm 0 enable */
++/* control section */
++#define ISL12024_REG_INT 0x11
++#define ISL12024_INT_AL0E (1<<5) /* Alarm 0 enable */
+
+static struct i2c_driver isl12024_driver;
+
@@ -142,9 +143,9 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ dt_addr[1] = reg;
+
+ ret = i2c_transfer(client->adapter, msgs, 2);
-+ if (ret < 0) {
++ if (ret != 2) {
+ dev_err(&client->dev, "read error (%i)\n", ret);
-+ return ret;
++ return (ret < 0) ? ret : -EIO;
+ }
+ return 0;
+}
@@ -163,7 +164,7 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ ret = i2c_master_send(client, i2c_buf, len + 2);
+ if (ret != len + 2) {
+ dev_err(&client->dev, "write error (%d)\n", ret);
-+ return -EIO;
++ return (ret < 0) ? ret : -EIO;
+ }
+ return 0;
+}
@@ -189,24 +190,25 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ return err;
+ }
+
-+ tm->tm_sec = bcd2bin(regs[0]);
-+ tm->tm_min = bcd2bin(regs[1]);
++ tm->tm_sec = bcd2bin(regs[CCR_SEC]);
++ tm->tm_min = bcd2bin(regs[CCR_MIN]);
+
+ /* HR field has a more complex interpretation */
-+ if (regs[2] & ISL12024_REG_HR_MIL) {
++ if (regs[CCR_HOUR] & ISL12024_REG_HR_MIL) {
+ /* 24h format */
-+ tm->tm_hour = bcd2bin(regs[2] & 0x3f);
++ tm->tm_hour = bcd2bin(regs[CCR_HOUR] & 0x3f);
+ } else {
+ /* 12h format */
-+ tm->tm_hour = bcd2bin(regs[2] & 0x1f);
-+ if (regs[2] & ISL12024_REG_HR_PM) /* PM flag set */
++ tm->tm_hour = bcd2bin(regs[CCR_HOUR] & 0x1f);
++ if (regs[CCR_HOUR] & ISL12024_REG_HR_PM) /* PM flag set */
+ tm->tm_hour += 12;
+ }
+
-+ tm->tm_mday = bcd2bin(regs[3]);
-+ tm->tm_mon = bcd2bin(regs[4]);
-+ tm->tm_year = bcd2bin(regs[5]) + 100;
-+ tm->tm_wday = bcd2bin(regs[6]);
++ tm->tm_mday = bcd2bin(regs[CCR_MDAY]);
++ tm->tm_mon = bcd2bin(regs[CCR_MONTH]) - 1;
++ tm->tm_year = bcd2bin(regs[CCR_YEAR])
++ + (bcd2bin(regs[CCR_Y2K]) * 100) - 1900;
++ tm->tm_wday = bcd2bin(regs[CCR_WDAY]);
+
+ return rtc_valid_tm(tm);
+}
@@ -247,12 +249,12 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ buf[CCR_MDAY] = bin2bcd(tm->tm_mday);
+
+ /* month, 1 - 12 */
-+ buf[CCR_MONTH] = bin2bcd(tm->tm_mon);
++ buf[CCR_MONTH] = bin2bcd(tm->tm_mon + 1);
+
+ /* year, since the rtc epoch*/
+ buf[CCR_YEAR] = bin2bcd(tm->tm_year % 100);
+ buf[CCR_WDAY] = tm->tm_wday & 0x07;
-+ buf[CCR_Y2K] = bin2bcd(tm->tm_year / 100);
++ buf[CCR_Y2K] = bin2bcd(19 + tm->tm_year / 100);
+ }
+
+ /* If writing alarm registers, set compare bits on registers 0-4 */
@@ -293,10 +295,8 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ /* Need to set RWEL again as the write has cleared it */
+ xfer = i2c_master_send(client, rwel, 3);
+ if (xfer != 3) {
-+ dev_err(&client->dev,
-+ "%s: al0e rwel - %d\n",
-+ __func__,
-+ xfer);
++ dev_err(&client->dev, "%s: al0e rwel - %d\n",
++ __func__, xfer);
+ return -EIO;
+ }
+
@@ -305,10 +305,8 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+
+ xfer = i2c_master_send(client, al0e, 3);
+ if (xfer != 3) {
-+ dev_err(&client->dev,
-+ "%s: al0e - %d\n",
-+ __func__,
-+ xfer);
++ dev_err(&client->dev, "%s: al0e - %d\n",
++ __func__, xfer);
+ return -EIO;
+ }
+
@@ -403,7 +401,7 @@ Index: linux-2.6.31/drivers/rtc/rtc-isl12024.c
+ err = isl12024_i2c_read_regs(client, ISL12024_REG_ID, id_buffer,
+ sizeof(id_buffer));
+ if (err < 0) {
-+ dev_err(&client->dev, "reading RTC section failed\n");
++ dev_err(&client->dev, "reading ID section failed\n");
+ return err;
+ }
+
diff --git a/recipes/linux/linux_2.6.31.bb b/recipes/linux/linux_2.6.31.bb
index 21ebe2cc95..845909c76c 100644
--- a/recipes/linux/linux_2.6.31.bb
+++ b/recipes/linux/linux_2.6.31.bb
@@ -26,7 +26,7 @@ SRC_URI_append_boc01 = "\
file://boc01.dts \
file://boc01.dts.v1 \
file://004-081205-usb.patch;patch=1 \
- file://005-091103-isl12024.patch;patch=1 \
+ file://005-091110-isl12024.patch;patch=1 \
file://007-091005-lm73.patch;patch=1 \
file://011-091028-gpio.patch;patch=1 \
file://012-091019-capsense.patch;patch=1 \