]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/arm/mach-davinci/board-da850-evm.c
davinci: da850/omap-l138 evm: account for DEFDCDC{2,3} being tied high
[net-next-2.6.git] / arch / arm / mach-davinci / board-da850-evm.c
index abd04932917b1c99b24e162fad97d2d298c24481..b280efb1fa120806b1cfe85bdea1f90d1bc0caaf 100644 (file)
@@ -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/platform_device.h>
 #include <linux/mtd/mtd.h>
@@ -24,6 +25,9 @@
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
 #include <linux/regulator/machine.h>
+#include <linux/regulator/tps6507x.h>
+#include <linux/mfd/tps6507x.h>
+#include <linux/input/tps6507x-ts.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -466,6 +470,11 @@ struct regulator_consumer_supply tps65070_ldo2_consumers[] = {
        },
 };
 
+/* We take advantage of the fact that both defdcdc{2,3} are tied high */
+static struct tps6507x_reg_platform_data tps6507x_platform_data = {
+       .defdcdc_default = true,
+};
+
 struct regulator_init_data tps65070_regulator_data[] = {
        /* dcdc1 */
        {
@@ -491,6 +500,7 @@ struct regulator_init_data tps65070_regulator_data[] = {
                },
                .num_consumer_supplies = ARRAY_SIZE(tps65070_dcdc2_consumers),
                .consumer_supplies = tps65070_dcdc2_consumers,
+               .driver_data = &tps6507x_platform_data,
        },
 
        /* dcdc3 */
@@ -504,6 +514,7 @@ struct regulator_init_data tps65070_regulator_data[] = {
                },
                .num_consumer_supplies = ARRAY_SIZE(tps65070_dcdc3_consumers),
                .consumer_supplies = tps65070_dcdc3_consumers,
+               .driver_data = &tps6507x_platform_data,
        },
 
        /* ldo1 */
@@ -533,10 +544,24 @@ struct regulator_init_data tps65070_regulator_data[] = {
        },
 };
 
+static struct touchscreen_init_data tps6507x_touchscreen_data = {
+       .poll_period =  30,     /* ms between touch samples */
+       .min_pressure = 0x30,   /* minimum pressure to trigger touch */
+       .vref = 0,              /* turn off vref when not using A/D */
+       .vendor = 0,            /* /sys/class/input/input?/id/vendor */
+       .product = 65070,       /* /sys/class/input/input?/id/product */
+       .version = 0x100,       /* /sys/class/input/input?/id/version */
+};
+
+static struct tps6507x_board tps_board = {
+       .tps6507x_pmic_init_data = &tps65070_regulator_data[0],
+       .tps6507x_ts_init_data = &tps6507x_touchscreen_data,
+};
+
 static struct i2c_board_info __initdata da850evm_tps65070_info[] = {
        {
                I2C_BOARD_INFO("tps6507x", 0x48),
-               .platform_data = &tps65070_regulator_data[0],
+               .platform_data = &tps_board,
        },
 };