diff options
| author | Roger Monk <r-monk@ti.com> | 2010-02-09 23:04:08 +0000 |
|---|---|---|
| committer | Koen Kooi <koen@openembedded.org> | 2010-04-12 19:43:18 +0200 |
| commit | 3aa2b62bb50f2c6f6790c9dfdcb8924c43250ca4 (patch) | |
| tree | b4871f0ffc8ed877efe34751a2031edeccd872ae /recipes | |
| parent | 2e7b6b68e4d4d74b6f83b75cfa967aae5d93b306 (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')
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 |
