summaryrefslogtreecommitdiff
path: root/recipes
diff options
context:
space:
mode:
authorRoger Monk <r-monk@ti.com>2010-02-09 23:04:08 +0000
committerKoen Kooi <koen@openembedded.org>2010-04-12 19:43:18 +0200
commit3aa2b62bb50f2c6f6790c9dfdcb8924c43250ca4 (patch)
treeb4871f0ffc8ed877efe34751a2031edeccd872ae /recipes
parent2e7b6b68e4d4d74b6f83b75cfa967aae5d93b306 (diff)
linux-davinci: Update da850-omapl138 to latest staging kernel 2_6_33
* Update to latest staging kernel + use PSP defconfig * Add rebased ts patches + enable configs * Enable MMC unsafe removal (for deep-sleep support when sd/mmc mounted) * Bump PR Signed-off-by: Roger Monk <r-monk@ti.com> Signed-off-by: Koen Kooi <k-kooi@ti.com>
Diffstat (limited to 'recipes')
-rw-r--r--recipes/linux/linux-davinci/0001-tps6507x_regulator_refactor.patch18
-rw-r--r--recipes/linux/linux-davinci/0002-tps6507x_regulator_da850_integration.patch26
-rw-r--r--recipes/linux/linux-davinci/0003-tps6507x_mfd_driver.patch80
-rw-r--r--recipes/linux/linux-davinci/0004-tps6507x_regulator_naming_change.patch45
-rw-r--r--recipes/linux/linux-davinci/0005-tps6507x_regulator_mfd_integration.patch110
-rw-r--r--recipes/linux/linux-davinci/0006-tps6507x_touchscreen_driver.patch83
-rw-r--r--recipes/linux/linux-davinci/da850-omapl138-evm/defconfig625
-rw-r--r--recipes/linux/linux-davinci_git.bb18
8 files changed, 429 insertions, 576 deletions
diff --git a/recipes/linux/linux-davinci/0001-tps6507x_regulator_refactor.patch b/recipes/linux/linux-davinci/0001-tps6507x_regulator_refactor.patch
index b3050c6dfe..dfa356f682 100644
--- a/recipes/linux/linux-davinci/0001-tps6507x_regulator_refactor.patch
+++ b/recipes/linux/linux-davinci/0001-tps6507x_regulator_refactor.patch
@@ -1,7 +1,7 @@
-Index: git/drivers/regulator/tps6507x-regulator.c
+Index: kernel/drivers/regulator/tps6507x-regulator.c
===================================================================
---- git.orig/drivers/regulator/tps6507x-regulator.c 2010-01-11 02:59:57.000000000 -0700
-+++ git/drivers/regulator/tps6507x-regulator.c 2010-01-11 02:59:59.000000000 -0700
+--- kernel.orig/drivers/regulator/tps6507x-regulator.c 2010-01-26 14:28:42.000000000 -0700
++++ kernel/drivers/regulator/tps6507x-regulator.c 2010-01-26 14:32:05.000000000 -0700
@@ -24,65 +24,7 @@
#include <linux/regulator/machine.h>
#include <linux/i2c.h>
@@ -69,11 +69,11 @@ Index: git/drivers/regulator/tps6507x-regulator.c
/* DCDC's */
#define TPS6507X_DCDC_1 0
-Index: git/drivers/regulator/Kconfig
+Index: kernel/drivers/regulator/Kconfig
===================================================================
---- git.orig/drivers/regulator/Kconfig 2010-01-11 02:59:57.000000000 -0700
-+++ git/drivers/regulator/Kconfig 2010-01-11 02:59:59.000000000 -0700
-@@ -152,6 +152,7 @@
+--- kernel.orig/drivers/regulator/Kconfig 2010-01-26 14:28:42.000000000 -0700
++++ kernel/drivers/regulator/Kconfig 2010-01-26 14:32:05.000000000 -0700
+@@ -159,6 +159,7 @@
config REGULATOR_TPS6507X
tristate "TI TPS6507X Power regulators"
depends on I2C
@@ -81,10 +81,10 @@ Index: git/drivers/regulator/Kconfig
help
This driver supports TPS6507X voltage regulator chips. TPS6507X provides
three step-down converters and two general-purpose LDO voltage regulators.
-Index: git/include/linux/mfd/tps6507x.h
+Index: kernel/include/linux/mfd/tps6507x.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ git/include/linux/mfd/tps6507x.h 2010-01-11 03:00:38.000000000 -0700
++++ kernel/include/linux/mfd/tps6507x.h 2010-01-26 14:32:05.000000000 -0700
@@ -0,0 +1,134 @@
+/* linux/mfd/tps6507x.h
+ *
diff --git a/recipes/linux/linux-davinci/0002-tps6507x_regulator_da850_integration.patch b/recipes/linux/linux-davinci/0002-tps6507x_regulator_da850_integration.patch
index 0cf24d3eb4..56d697d54b 100644
--- a/recipes/linux/linux-davinci/0002-tps6507x_regulator_da850_integration.patch
+++ b/recipes/linux/linux-davinci/0002-tps6507x_regulator_da850_integration.patch
@@ -1,16 +1,16 @@
-Index: git/arch/arm/mach-davinci/board-da850-evm.c
+Index: kernel/arch/arm/mach-davinci/board-da850-evm.c
===================================================================
---- git.orig/arch/arm/mach-davinci/board-da850-evm.c 2010-01-06 16:23:17.000000000 -0600
-+++ git/arch/arm/mach-davinci/board-da850-evm.c 2010-01-12 08:54:24.921995195 -0600
+--- kernel.orig/arch/arm/mach-davinci/board-da850-evm.c 2010-01-26 14:28:12.000000000 -0700
++++ kernel/arch/arm/mach-davinci/board-da850-evm.c 2010-01-26 14:33:36.000000000 -0700
@@ -17,6 +17,7 @@
#include <linux/i2c.h>
#include <linux/i2c/at24.h>
#include <linux/i2c/pca953x.h>
+#include <linux/mfd/tps6507x.h>
#include <linux/gpio.h>
+ #include <linux/delay.h>
#include <linux/platform_device.h>
- #include <linux/mtd/mtd.h>
-@@ -643,10 +644,14 @@
+@@ -633,10 +634,14 @@
},
};
@@ -26,15 +26,15 @@ Index: git/arch/arm/mach-davinci/board-da850-evm.c
},
};
-Index: git/drivers/regulator/tps6507x-regulator.c
+Index: kernel/drivers/regulator/tps6507x-regulator.c
===================================================================
---- git.orig/drivers/regulator/tps6507x-regulator.c 2010-01-12 08:43:00.561370246 -0600
-+++ git/drivers/regulator/tps6507x-regulator.c 2010-01-12 08:53:30.261440110 -0600
+--- kernel.orig/drivers/regulator/tps6507x-regulator.c 2010-01-26 14:32:05.000000000 -0700
++++ kernel/drivers/regulator/tps6507x-regulator.c 2010-01-26 14:33:36.000000000 -0700
@@ -502,6 +502,7 @@
struct regulator_init_data *init_data;
struct regulator_dev *rdev;
struct tps_pmic *tps;
-+ struct tps6507x_board *tps_board;
++ struct tps6507x_board *tps_board;
int i;
if (!i2c_check_functionality(client->adapter,
@@ -46,7 +46,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
+ * coming from the board-evm file.
+ */
+
-+ tps_board = (struct tps6507x_board *)client->dev.platform_data;
++ tps_board = (struct tps6507x_board *)client->dev.platform_data;
+
+ if (!tps_board)
+ return -EIO;
@@ -61,10 +61,10 @@ Index: git/drivers/regulator/tps6507x-regulator.c
if (!init_data)
return -EIO;
-Index: git/include/linux/mfd/tps6507x.h
+Index: kernel/include/linux/mfd/tps6507x.h
===================================================================
---- git.orig/include/linux/mfd/tps6507x.h 2010-01-12 08:43:00.561370246 -0600
-+++ git/include/linux/mfd/tps6507x.h 2010-01-12 08:53:59.849433723 -0600
+--- kernel.orig/include/linux/mfd/tps6507x.h 2010-01-26 14:32:05.000000000 -0700
++++ kernel/include/linux/mfd/tps6507x.h 2010-01-26 14:33:36.000000000 -0700
@@ -131,4 +131,15 @@
/* VDCDC MASK */
#define TPS6507X_DEFDCDCX_DCDC_MASK 0X3F
diff --git a/recipes/linux/linux-davinci/0003-tps6507x_mfd_driver.patch b/recipes/linux/linux-davinci/0003-tps6507x_mfd_driver.patch
index 0acbf8a26b..418d867c63 100644
--- a/recipes/linux/linux-davinci/0003-tps6507x_mfd_driver.patch
+++ b/recipes/linux/linux-davinci/0003-tps6507x_mfd_driver.patch
@@ -1,8 +1,8 @@
-Index: git/drivers/mfd/Kconfig
+Index: kernel/drivers/mfd/Kconfig
===================================================================
---- git.orig/drivers/mfd/Kconfig 2010-01-06 16:23:19.000000000 -0600
-+++ git/drivers/mfd/Kconfig 2010-01-12 08:43:00.961383768 -0600
-@@ -84,6 +84,17 @@
+--- kernel.orig/drivers/mfd/Kconfig 2010-01-26 14:28:36.000000000 -0700
++++ kernel/drivers/mfd/Kconfig 2010-01-26 14:33:54.000000000 -0700
+@@ -92,6 +92,17 @@
This driver can also be built as a module. If so, the module
will be called tps65010.
@@ -20,23 +20,23 @@ Index: git/drivers/mfd/Kconfig
config MENELAUS
bool "Texas Instruments TWL92330/Menelaus PM chip"
depends on I2C=y && ARCH_OMAP24XX
-Index: git/drivers/mfd/Makefile
+Index: kernel/drivers/mfd/Makefile
===================================================================
---- git.orig/drivers/mfd/Makefile 2010-01-06 16:23:19.000000000 -0600
-+++ git/drivers/mfd/Makefile 2010-01-12 08:43:00.961383768 -0600
-@@ -22,6 +22,7 @@
+--- kernel.orig/drivers/mfd/Makefile 2010-01-26 14:28:36.000000000 -0700
++++ kernel/drivers/mfd/Makefile 2010-01-26 14:33:54.000000000 -0700
+@@ -24,6 +24,7 @@
obj-$(CONFIG_MFD_WM8350_I2C) += wm8350-i2c.o
obj-$(CONFIG_TPS65010) += tps65010.o
+obj-$(CONFIG_TPS6507x) += tps6507x.o
obj-$(CONFIG_MENELAUS) += menelaus.o
- obj-$(CONFIG_TWL4030_CORE) += twl4030-core.o twl4030-irq.o
-Index: git/drivers/mfd/tps6507x.c
+ obj-$(CONFIG_TWL4030_CORE) += twl-core.o twl4030-irq.o twl6030-irq.o
+Index: kernel/drivers/mfd/tps6507x.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ git/drivers/mfd/tps6507x.c 2010-01-12 08:53:53.009504942 -0600
-@@ -0,0 +1,139 @@
++++ kernel/drivers/mfd/tps6507x.c 2010-01-26 14:33:54.000000000 -0700
+@@ -0,0 +1,185 @@
+/*
+ * tps6507x.c -- TPS6507x chip family multi-function driver
+ *
@@ -60,6 +60,15 @@ Index: git/drivers/mfd/tps6507x.c
+#include <linux/platform_device.h>
+#include <linux/mfd/tps6507x.h>
+
++struct tps_sub_devices {
++ const char *name;
++ struct platform_device *pdev;
++};
++
++static struct tps_sub_devices tps6507x_sub_devices[] = {
++ { NULL, NULL }
++};
++
+static int tps6507x_i2c_read_device(struct tps6507x_dev *tps6507x, char reg,
+ int bytes, void *dest)
+{
@@ -96,11 +105,42 @@ Index: git/drivers/mfd/tps6507x.c
+ return 0;
+}
+
++/*
++ * Register a client device. This is non-fatal since there is no need to
++ * fail the entire device init due to a single platform device failing.
++ */
++static void tps6507x_client_dev_register(struct tps6507x_dev *tps6507x,
++ const char *name,
++ struct platform_device **pdev)
++{
++ int ret;
++
++ *pdev = platform_device_alloc(name, -1);
++ if (*pdev == NULL) {
++ dev_err(tps6507x->dev, "Failed to allocate %s\n", name);
++ return;
++ }
++
++ (*pdev)->dev.parent = tps6507x->dev;
++ platform_set_drvdata(*pdev, tps6507x);
++ ret = platform_device_add(*pdev);
++ if (ret != 0) {
++ dev_err(tps6507x->dev, "Failed to register %s: %d\n", name, ret);
++ platform_device_put(*pdev);
++ *pdev = NULL;
++ }
++}
+
+int tps6507x_device_init(struct tps6507x_dev *tps6507x, int irq,
+ struct tps6507x_board *pdata)
+{
+ int ret = 0;
++ struct tps_sub_devices *d = &tps6507x_sub_devices[0];
++
++ while (d->name) {
++ tps6507x_client_dev_register(tps6507x, d->name, &(d->pdev));
++ d++;
++ }
+
+ return ret;
+}
@@ -138,6 +178,12 @@ Index: git/drivers/mfd/tps6507x.c
+static int tps6507x_i2c_remove(struct i2c_client *i2c)
+{
+ struct tps6507x_dev *tps6507x = i2c_get_clientdata(i2c);
++ struct tps_sub_devices *d = &tps6507x_sub_devices[0];
++
++ while (d->name) {
++ platform_device_unregister(d->pdev);
++ d++;
++ }
+
+ kfree(tps6507x);
+
@@ -176,10 +222,10 @@ Index: git/drivers/mfd/tps6507x.c
+
+MODULE_DESCRIPTION("TPS6507x chip family multi-function driver")
+MODULE_LICENSE("GPL");
-Index: git/include/linux/mfd/tps6507x.h
+Index: kernel/include/linux/mfd/tps6507x.h
===================================================================
---- git.orig/include/linux/mfd/tps6507x.h 2010-01-12 08:43:00.797384396 -0600
-+++ git/include/linux/mfd/tps6507x.h 2010-01-12 08:53:28.437624848 -0600
+--- kernel.orig/include/linux/mfd/tps6507x.h 2010-01-26 14:33:36.000000000 -0700
++++ kernel/include/linux/mfd/tps6507x.h 2010-01-26 14:33:54.000000000 -0700
@@ -131,6 +131,8 @@
/* VDCDC MASK */
#define TPS6507X_DEFDCDCX_DCDC_MASK 0X3F
@@ -205,9 +251,9 @@ Index: git/include/linux/mfd/tps6507x.h
+ struct device *dev;
+ struct i2c_client *i2c_client;
+ int (*read_dev)(struct tps6507x_dev *tps6507x, char reg, int size,
-+ void *dest);
++ void *dest);
+ int (*write_dev)(struct tps6507x_dev *tps6507x, char reg, int size,
-+ void *src);
++ void *src);
+ struct mutex adc_mutex;
+};
+
diff --git a/recipes/linux/linux-davinci/0004-tps6507x_regulator_naming_change.patch b/recipes/linux/linux-davinci/0004-tps6507x_regulator_naming_change.patch
index 2bd9ac174b..dfeb67553a 100644
--- a/recipes/linux/linux-davinci/0004-tps6507x_regulator_naming_change.patch
+++ b/recipes/linux/linux-davinci/0004-tps6507x_regulator_naming_change.patch
@@ -1,7 +1,7 @@
-Index: git/drivers/regulator/tps6507x-regulator.c
+Index: kernel/drivers/regulator/tps6507x-regulator.c
===================================================================
---- git.orig/drivers/regulator/tps6507x-regulator.c 2010-01-09 17:30:10.000000000 -0700
-+++ git/drivers/regulator/tps6507x-regulator.c 2010-01-09 17:31:39.000000000 -0700
+--- kernel.orig/drivers/regulator/tps6507x-regulator.c 2010-01-26 14:33:36.000000000 -0700
++++ kernel/drivers/regulator/tps6507x-regulator.c 2010-01-26 14:34:00.000000000 -0700
@@ -113,23 +113,23 @@
struct mutex io_lock;
};
@@ -154,12 +154,13 @@ Index: git/drivers/regulator/tps6507x-regulator.c
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
int dcdc = rdev_get_id(dev);
-@@ -256,10 +256,10 @@
+@@ -256,10 +256,11 @@
return -EINVAL;
shift = TPS6507X_MAX_REG_ID - dcdc;
- return tps_6507x_clear_bits(tps, TPS6507X_REG_CON_CTRL1, 1 << shift);
-+ return tps6507x_pmic_clear_bits(tps, TPS6507X_REG_CON_CTRL1, 1 << shift);
++ return tps6507x_pmic_clear_bits(tps, TPS6507X_REG_CON_CTRL1,
++ 1 << shift);
}
-static int tps6507x_ldo_enable(struct regulator_dev *dev)
@@ -167,7 +168,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
int ldo = rdev_get_id(dev);
-@@ -269,10 +269,10 @@
+@@ -269,10 +270,10 @@
return -EINVAL;
shift = TPS6507X_MAX_REG_ID - ldo;
@@ -180,12 +181,13 @@ Index: git/drivers/regulator/tps6507x-regulator.c
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
int ldo = rdev_get_id(dev);
-@@ -282,10 +282,10 @@
+@@ -282,10 +283,11 @@
return -EINVAL;
shift = TPS6507X_MAX_REG_ID - ldo;
- return tps_6507x_clear_bits(tps, TPS6507X_REG_CON_CTRL1, 1 << shift);
-+ return tps6507x_pmic_clear_bits(tps, TPS6507X_REG_CON_CTRL1, 1 << shift);
++ return tps6507x_pmic_clear_bits(tps, TPS6507X_REG_CON_CTRL1,
++ 1 << shift);
}
-static int tps6507x_dcdc_get_voltage(struct regulator_dev *dev)
@@ -193,7 +195,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
int data, dcdc = rdev_get_id(dev);
-@@ -311,7 +311,7 @@
+@@ -311,7 +313,7 @@
return -EINVAL;
}
@@ -202,7 +204,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
if (data < 0)
return data;
-@@ -319,7 +319,7 @@
+@@ -319,7 +321,7 @@
return tps->info[dcdc]->table[data] * 1000;
}
@@ -211,7 +213,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
int min_uV, int max_uV)
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
-@@ -366,17 +366,17 @@
+@@ -366,17 +368,17 @@
if (vsel == tps->info[dcdc]->table_len)
return -EINVAL;
@@ -232,7 +234,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
int data, ldo = rdev_get_id(dev);
-@@ -392,7 +392,7 @@
+@@ -392,7 +394,7 @@
TPS6507X_REG_DEFLDO2_LDO2_MASK);
}
@@ -241,7 +243,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
if (data < 0)
return data;
-@@ -400,7 +400,7 @@
+@@ -400,7 +402,7 @@
return tps->info[ldo]->table[data] * 1000;
}
@@ -250,7 +252,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
int min_uV, int max_uV)
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
-@@ -434,17 +434,17 @@
+@@ -434,17 +436,17 @@
if (vsel == tps->info[ldo]->table_len)
return -EINVAL;
@@ -271,7 +273,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
unsigned selector)
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
-@@ -459,7 +459,7 @@
+@@ -459,7 +461,7 @@
return tps->info[dcdc]->table[selector] * 1000;
}
@@ -280,7 +282,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
unsigned selector)
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
-@@ -475,27 +475,27 @@
+@@ -475,27 +477,28 @@
}
/* Operations permitted on VDCDCx */
@@ -319,11 +321,12 @@ Index: git/drivers/regulator/tps6507x-regulator.c
static
-int tps_6507x_probe(struct i2c_client *client, const struct i2c_device_id *id)
-+int tps6507x_pmic_probe(struct i2c_client *client, const struct i2c_device_id *id)
++int tps6507x_pmic_probe(struct i2c_client *client,
++ const struct i2c_device_id *id)
{
static int desc_id;
struct tps_info *info = (void *)id->driver_data;
-@@ -546,7 +546,7 @@
+@@ -546,7 +549,7 @@
tps->desc[i].id = desc_id++;
tps->desc[i].n_voltages = num_voltages[i];
tps->desc[i].ops = (i > TPS6507X_DCDC_3 ?
@@ -332,7 +335,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
tps->desc[i].type = REGULATOR_VOLTAGE;
tps->desc[i].owner = THIS_MODULE;
-@@ -579,12 +579,12 @@
+@@ -579,12 +582,12 @@
}
/**
@@ -347,7 +350,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
{
struct tps_pmic *tps = i2c_get_clientdata(client);
int i;
-@@ -601,7 +601,7 @@
+@@ -601,7 +604,7 @@
return 0;
}
@@ -356,7 +359,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
{
.name = "VDCDC1",
.min_uV = 725000,
-@@ -639,44 +639,44 @@
+@@ -639,44 +642,44 @@
},
};
diff --git a/recipes/linux/linux-davinci/0005-tps6507x_regulator_mfd_integration.patch b/recipes/linux/linux-davinci/0005-tps6507x_regulator_mfd_integration.patch
index d962e82b6d..f6f3423207 100644
--- a/recipes/linux/linux-davinci/0005-tps6507x_regulator_mfd_integration.patch
+++ b/recipes/linux/linux-davinci/0005-tps6507x_regulator_mfd_integration.patch
@@ -1,60 +1,7 @@
-Index: git/drivers/mfd/tps6507x.c
+Index: kernel/drivers/regulator/tps6507x-regulator.c
===================================================================
---- git.orig/drivers/mfd/tps6507x.c 2010-01-12 08:43:00.961383768 -0600
-+++ git/drivers/mfd/tps6507x.c 2010-01-12 08:52:41.725819096 -0600
-@@ -57,12 +57,40 @@
- return 0;
- }
-
-+/*
-+ * Register a client device. This is non-fatal since there is no need to
-+ * fail the entire device init due to a single platform device failing.
-+ */
-+static void tps6507x_client_dev_register(struct tps6507x_dev *tps6507x,
-+ const char *name,
-+ struct platform_device **pdev)
-+{
-+ int ret;
-+
-+ *pdev = platform_device_alloc(name, -1);
-+ if (*pdev == NULL) {
-+ dev_err(tps6507x->dev, "Failed to allocate %s\n", name);
-+ return;
-+ }
-+
-+ (*pdev)->dev.parent = tps6507x->dev;
-+ platform_set_drvdata(*pdev, tps6507x);
-+ ret = platform_device_add(*pdev);
-+ if (ret != 0) {
-+ dev_err(tps6507x->dev, "Failed to register %s: %d\n", name, ret);
-+ platform_device_put(*pdev);
-+ *pdev = NULL;
-+ }
-+}
-
- int tps6507x_device_init(struct tps6507x_dev *tps6507x, int irq,
- struct tps6507x_board *pdata)
- {
- int ret = 0;
-+ struct platform_device *pdev;
-
-+ tps6507x_client_dev_register(tps6507x, "tps6507x-pmic",
-+ &pdev);
- return ret;
- }
-
-@@ -71,7 +99,6 @@
- {
- struct tps6507x_dev *tps6507x;
- int ret = 0;
--
- tps6507x = kzalloc(sizeof(struct tps6507x_dev), GFP_KERNEL);
- if (tps6507x == NULL) {
- kfree(i2c);
-Index: git/drivers/regulator/tps6507x-regulator.c
-===================================================================
---- git.orig/drivers/regulator/tps6507x-regulator.c 2010-01-12 08:43:01.125399079 -0600
-+++ git/drivers/regulator/tps6507x-regulator.c 2010-01-12 08:53:16.586248235 -0600
+--- kernel.orig/drivers/regulator/tps6507x-regulator.c 2010-01-26 14:34:00.000000000 -0700
++++ kernel/drivers/regulator/tps6507x-regulator.c 2010-01-26 14:39:22.000000000 -0700
@@ -22,7 +22,6 @@
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
@@ -190,24 +137,24 @@ Index: git/drivers/regulator/tps6507x-regulator.c
mutex_unlock(&tps->io_lock);
return err;
-@@ -494,27 +540,24 @@
+@@ -496,29 +542,24 @@
.list_voltage = tps6507x_pmic_ldo_list_voltage,
};
-static
--int tps6507x_pmic_probe(struct i2c_client *client, const struct i2c_device_id *id)
+-int tps6507x_pmic_probe(struct i2c_client *client,
+- const struct i2c_device_id *id)
+static __devinit
+int tps6507x_pmic_probe(struct platform_device *pdev)
{
+ struct tps6507x_dev *tps6507x_dev = platform_get_drvdata(pdev);
static int desc_id;
- struct tps_info *info = (void *)id->driver_data;
-+ struct tps_info *info = &tps6507x_pmic_regs[0];
++ const struct tps_info *info = &tps6507x_pmic_regs[0];
struct regulator_init_data *init_data;
struct regulator_dev *rdev;
struct tps_pmic *tps;
-- struct tps6507x_board *tps_board;
-+ struct tps6507x_board *tps_board;
+ struct tps6507x_board *tps_board;
int i;
- if (!i2c_check_functionality(client->adapter,
@@ -220,12 +167,13 @@ Index: git/drivers/regulator/tps6507x-regulator.c
* coming from the board-evm file.
*/
-- tps_board = (struct tps6507x_board *)client->dev.platform_data;
+- tps_board = (struct tps6507x_board *)client->dev.platform_data;
+-
+ tps_board = (struct tps6507x_board *)tps6507x_dev->dev->platform_data;
-
if (!tps_board)
return -EIO;
-@@ -536,7 +579,7 @@
+
+@@ -539,7 +580,7 @@
mutex_init(&tps->io_lock);
/* common for all regulators */
@@ -234,7 +182,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
for (i = 0; i < TPS6507X_NUM_REGULATOR; i++, info++, init_data++) {
/* Register the regulators */
-@@ -551,19 +594,16 @@
+@@ -554,19 +595,16 @@
tps->desc[i].owner = THIS_MODULE;
rdev = regulator_register(&tps->desc[i],
@@ -258,7 +206,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
kfree(tps);
return PTR_ERR(rdev);
-@@ -573,87 +613,34 @@
+@@ -576,87 +614,34 @@
tps->rdev[i] = rdev;
}
@@ -353,7 +301,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
};
/**
-@@ -663,7 +650,7 @@
+@@ -666,7 +651,7 @@
*/
static int __init tps6507x_pmic_init(void)
{
@@ -362,7 +310,7 @@ Index: git/drivers/regulator/tps6507x-regulator.c
}
subsys_initcall(tps6507x_pmic_init);
-@@ -674,10 +661,11 @@
+@@ -677,10 +662,11 @@
*/
static void __exit tps6507x_pmic_cleanup(void)
{
@@ -375,23 +323,15 @@ Index: git/drivers/regulator/tps6507x-regulator.c
MODULE_DESCRIPTION("TPS6507x voltage regulator driver");
MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:tps6507x-pmic");
-Index: git/include/linux/mfd/tps6507x.h
+Index: kernel/drivers/mfd/tps6507x.c
===================================================================
---- git.orig/include/linux/mfd/tps6507x.h 2010-01-12 08:43:00.961383768 -0600
-+++ git/include/linux/mfd/tps6507x.h 2010-01-12 08:52:41.753688570 -0600
-@@ -156,10 +156,13 @@
- struct device *dev;
- struct i2c_client *i2c_client;
- int (*read_dev)(struct tps6507x_dev *tps6507x, char reg, int size,
-- void *dest);
-+ void *dest);
- int (*write_dev)(struct tps6507x_dev *tps6507x, char reg, int size,
-- void *src);
-+ void *src);
- struct mutex adc_mutex;
-+
-+ /* Client devices */
-+ struct tps6507x_pmic *pmic;
+--- kernel.orig/drivers/mfd/tps6507x.c 2010-01-26 14:33:54.000000000 -0700
++++ kernel/drivers/mfd/tps6507x.c 2010-01-26 14:35:00.000000000 -0700
+@@ -27,6 +27,7 @@
+ };
+
+ static struct tps_sub_devices tps6507x_sub_devices[] = {
++ { "tps6507x-pmic", NULL },
+ { NULL, NULL }
};
- #endif /* __LINUX_MFD_TPS6507X_H */
diff --git a/recipes/linux/linux-davinci/0006-tps6507x_touchscreen_driver.patch b/recipes/linux/linux-davinci/0006-tps6507x_touchscreen_driver.patch
index adfa7bb24b..cf16787ef4 100644
--- a/recipes/linux/linux-davinci/0006-tps6507x_touchscreen_driver.patch
+++ b/recipes/linux/linux-davinci/0006-tps6507x_touchscreen_driver.patch
@@ -1,8 +1,8 @@
-Index: git/drivers/input/touchscreen/Kconfig
+Index: kernel/drivers/input/touchscreen/Kconfig
===================================================================
---- git.orig/drivers/input/touchscreen/Kconfig 2010-01-06 16:23:19.000000000 -0600
-+++ git/drivers/input/touchscreen/Kconfig 2010-01-12 08:46:20.229418722 -0600
-@@ -530,4 +530,17 @@
+--- kernel.orig/drivers/input/touchscreen/Kconfig 2010-01-26 14:28:33.000000000 -0700
++++ kernel/drivers/input/touchscreen/Kconfig 2010-01-26 14:45:26.000000000 -0700
+@@ -577,4 +577,17 @@
To compile this driver as a module, choose M here: the
module will be called pcap_ts.
@@ -20,19 +20,19 @@ Index: git/drivers/input/touchscreen/Kconfig
+ module will be called tps6507x_ts.
+
endif
-Index: git/drivers/input/touchscreen/Makefile
+Index: kernel/drivers/input/touchscreen/Makefile
===================================================================
---- git.orig/drivers/input/touchscreen/Makefile 2010-01-06 16:23:19.000000000 -0600
-+++ git/drivers/input/touchscreen/Makefile 2010-01-12 08:46:57.705432438 -0600
-@@ -42,3 +42,4 @@
+--- kernel.orig/drivers/input/touchscreen/Makefile 2010-01-26 14:28:33.000000000 -0700
++++ kernel/drivers/input/touchscreen/Makefile 2010-01-26 14:46:38.000000000 -0700
+@@ -45,3 +45,4 @@
+ obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o
obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE) += zylonite-wm97xx.o
obj-$(CONFIG_TOUCHSCREEN_W90X900) += w90p910_ts.o
- obj-$(CONFIG_TOUCHSCREEN_PCAP) += pcap_ts.o
+obj-$(CONFIG_TOUCHSCREEN_TPS6507X) += tps6507x-ts.o
-Index: git/drivers/input/touchscreen/tps6507x-ts.c
+Index: kernel/drivers/input/touchscreen/tps6507x-ts.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ git/drivers/input/touchscreen/tps6507x-ts.c 2010-01-12 08:51:49.781765078 -0600
++++ kernel/drivers/input/touchscreen/tps6507x-ts.c 2010-01-26 14:45:26.000000000 -0700
@@ -0,0 +1,403 @@
+/*
+ * drivers/input/touchscreen/tps6507x_ts.c
@@ -254,6 +254,7 @@ Index: git/drivers/input/touchscreen/tps6507x-ts.c
+ poll = 1;
+ }
+
++done:
+ /* always poll if not using interrupts */
+ poll = 1;
+
@@ -269,7 +270,6 @@ Index: git/drivers/input/touchscreen/tps6507x-ts.c
+ } else
+ tsc->polling = 0;
+
-+done:
+ ret = tps6507x_adc_standby(tsc);
+}
+
@@ -437,10 +437,10 @@ Index: git/drivers/input/touchscreen/tps6507x-ts.c
+MODULE_DESCRIPTION("TPS6507x - TouchScreen driver");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:tps6507x-tsc");
-Index: git/include/linux/i2c/tps6507x-ts.h
+Index: kernel/include/linux/i2c/tps6507x-ts.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ git/include/linux/i2c/tps6507x-ts.h 2010-01-12 08:46:00.745554017 -0600
++++ kernel/include/linux/i2c/tps6507x-ts.h 2010-01-26 14:45:26.000000000 -0700
@@ -0,0 +1,24 @@
+/* linux/i2c/tps6507x-ts.h
+ *
@@ -466,10 +466,10 @@ Index: git/include/linux/i2c/tps6507x-ts.h
+};
+
+#endif /* __LINUX_I2C_TPS6507X_TS_H */
-Index: git/include/linux/mfd/tps6507x.h
+Index: kernel/include/linux/mfd/tps6507x.h
===================================================================
---- git.orig/include/linux/mfd/tps6507x.h 2010-01-12 08:43:01.000000000 -0600
-+++ git/include/linux/mfd/tps6507x.h 2010-01-12 08:46:00.745554017 -0600
+--- kernel.orig/include/linux/mfd/tps6507x.h 2010-01-26 14:33:54.000000000 -0700
++++ kernel/include/linux/mfd/tps6507x.h 2010-01-26 14:45:26.000000000 -0700
@@ -142,6 +142,7 @@
struct tps6507x_board {
@@ -478,28 +478,30 @@ Index: git/include/linux/mfd/tps6507x.h
};
/**
-@@ -163,6 +164,7 @@
-
- /* Client devices */
- struct tps6507x_pmic *pmic;
+@@ -160,6 +161,9 @@
+ int (*write_dev)(struct tps6507x_dev *tps6507x, char reg, int size,
+ void *src);
+ struct mutex adc_mutex;
++
++ /* Client devices */
+ struct tps6507x_ts *ts;
};
#endif /* __LINUX_MFD_TPS6507X_H */
-Index: git/arch/arm/mach-davinci/board-da850-evm.c
+Index: kernel/arch/arm/mach-davinci/board-da850-evm.c
===================================================================
---- git.orig/arch/arm/mach-davinci/board-da850-evm.c 2010-01-12 08:43:00.000000000 -0600
-+++ git/arch/arm/mach-davinci/board-da850-evm.c 2010-01-12 08:47:55.901370217 -0600
+--- kernel.orig/arch/arm/mach-davinci/board-da850-evm.c 2010-01-26 14:33:36.000000000 -0700
++++ kernel/arch/arm/mach-davinci/board-da850-evm.c 2010-01-26 14:45:26.000000000 -0700
@@ -25,6 +25,8 @@
+ #include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
- #include <linux/mtd/physmap.h>
#include <linux/regulator/machine.h>
+#include <linux/mfd/tps6507x.h>
+#include <linux/i2c/tps6507x-ts.h>
#include <linux/spi/spi.h>
#include <linux/spi/flash.h>
- #include <linux/spi/davinci_spi_master.h>
-@@ -644,8 +646,18 @@
+
+@@ -634,8 +636,18 @@
},
};
@@ -518,24 +520,15 @@ Index: git/arch/arm/mach-davinci/board-da850-evm.c
};
static struct i2c_board_info __initdata da850evm_tps65070_info[] = {
-Index: git/drivers/mfd/tps6507x.c
+Index: kernel/drivers/mfd/tps6507x.c
===================================================================
---- git.orig/drivers/mfd/tps6507x.c 2010-01-12 08:43:01.000000000 -0600
-+++ git/drivers/mfd/tps6507x.c 2010-01-12 08:51:03.997870214 -0600
-@@ -91,6 +91,8 @@
+--- kernel.orig/drivers/mfd/tps6507x.c 2010-01-26 14:35:00.000000000 -0700
++++ kernel/drivers/mfd/tps6507x.c 2010-01-26 14:45:26.000000000 -0700
+@@ -28,6 +28,7 @@
- tps6507x_client_dev_register(tps6507x, "tps6507x-pmic",
- &pdev);
-+ tps6507x_client_dev_register(tps6507x, "tps6507x-ts",
-+ &pdev);
- return ret;
- }
+ static struct tps_sub_devices tps6507x_sub_devices[] = {
+ { "tps6507x-pmic", NULL },
++ { "tps6507x-ts", NULL },
+ { NULL, NULL }
+ };
-@@ -99,6 +101,7 @@
- {
- struct tps6507x_dev *tps6507x;
- int ret = 0;
-+
- tps6507x = kzalloc(sizeof(struct tps6507x_dev), GFP_KERNEL);
- if (tps6507x == NULL) {
- kfree(i2c);
diff --git a/recipes/linux/linux-davinci/da850-omapl138-evm/defconfig b/recipes/linux/linux-davinci/da850-omapl138-evm/defconfig
index 3532e2c7a5..bd232e25e4 100644
--- a/recipes/linux/linux-davinci/da850-omapl138-evm/defconfig
+++ b/recipes/linux/linux-davinci/da850-omapl138-evm/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32-rc6
-# Tue Jan 26 14:03:33 2010
+# Linux kernel version: 2.6.33-rc4
+# Tue Feb 9 19:24:00 2010
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -34,6 +34,12 @@ CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
@@ -48,6 +54,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
CONFIG_TREE_RCU=y
# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_TINY_RCU is not set
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
@@ -69,6 +76,7 @@ CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
+# CONFIG_RD_LZO is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
@@ -129,15 +137,42 @@ CONFIG_LBDAF=y
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="anticipatory"
-# CONFIG_FREEZER is not set
+CONFIG_DEFAULT_NOOP=y
+CONFIG_DEFAULT_IOSCHED="noop"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
#
# System Type
@@ -165,6 +200,7 @@ CONFIG_MMU=y
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_DOVE is not set
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_LOKI is not set
# CONFIG_ARCH_MV78XX0 is not set
@@ -187,6 +223,7 @@ CONFIG_MMU=y
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_U8500 is not set
CONFIG_CP_INTC=y
#
@@ -201,9 +238,12 @@ CONFIG_CP_INTC=y
# CONFIG_ARCH_DAVINCI_DM646x is not set
# CONFIG_ARCH_DAVINCI_DA830 is not set
CONFIG_ARCH_DAVINCI_DA850=y
+# CONFIG_DA8XX_MAX_SPEED_300 is not set
+# CONFIG_DA8XX_MAX_SPEED_372 is not set
+# CONFIG_DA8XX_MAX_SPEED_408 is not set
+CONFIG_DA8XX_MAX_SPEED_456=y
CONFIG_ARCH_DAVINCI_DA8XX=y
# CONFIG_ARCH_DAVINCI_DM365 is not set
-CONFIG_CPPI41=y
#
# DaVinci Board Type
@@ -212,6 +252,7 @@ CONFIG_MACH_DAVINCI_DA850_EVM=y
CONFIG_DA850_UI_NONE=y
# CONFIG_DA850_UI_RMII is not set
# CONFIG_DA850_UI_CLCD is not set
+# CONFIG_DA850_UI_VIDEO_PORT is not set
CONFIG_DAVINCI_MUX=y
# CONFIG_DAVINCI_MUX_DEBUG is not set
# CONFIG_DAVINCI_MUX_WARNINGS is not set
@@ -223,7 +264,6 @@ CONFIG_DAVINCI_MCBSP1=y
#
# Processor Type
#
-CONFIG_CPU_32=y
CONFIG_CPU_ARM926T=y
CONFIG_CPU_32v5=y