diff options
Diffstat (limited to 'arch/arm/mach-omap2/board-overo.c')
| -rw-r--r-- | arch/arm/mach-omap2/board-overo.c | 43 | 
1 files changed, 43 insertions, 0 deletions
| diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c index e09aa59a399c..82b3dc557c96 100644 --- a/arch/arm/mach-omap2/board-overo.c +++ b/arch/arm/mach-omap2/board-overo.c @@ -26,6 +26,7 @@  #include <linux/io.h>  #include <linux/kernel.h>  #include <linux/platform_device.h> +#include <linux/i2c/twl4030.h>  #include <linux/mtd/mtd.h>  #include <linux/mtd/nand.h> @@ -44,6 +45,8 @@  #include <mach/hardware.h>  #include <mach/nand.h> +#include "mmc-twl4030.h" +  #define NAND_BLOCK_SIZE SZ_128K  #define GPMC_CS0_BASE  0x60  #define GPMC_CS_SIZE   0x30 @@ -139,8 +142,31 @@ static struct omap_uart_config overo_uart_config __initdata = {  	.enabled_uarts	= ((1 << 0) | (1 << 1) | (1 << 2)),  }; +static struct twl4030_gpio_platform_data overo_gpio_data = { +	.gpio_base	= OMAP_MAX_GPIO_LINES, +	.irq_base	= TWL4030_GPIO_IRQ_BASE, +	.irq_end	= TWL4030_GPIO_IRQ_END, +}; + +static struct twl4030_platform_data overo_twldata = { +	.irq_base	= TWL4030_IRQ_BASE, +	.irq_end	= TWL4030_IRQ_END, +	.gpio		= &overo_gpio_data, +}; + +static struct i2c_board_info __initdata overo_i2c_boardinfo[] = { +	{ +		I2C_BOARD_INFO("twl4030", 0x48), +		.flags = I2C_CLIENT_WAKE, +		.irq = INT_34XX_SYS_NIRQ, +		.platform_data = &overo_twldata, +	}, +}; +  static int __init overo_i2c_init(void)  { +	omap_register_i2c_bus(1, 2600, overo_i2c_boardinfo, +			ARRAY_SIZE(overo_i2c_boardinfo));  	/* i2c2 pins are used for gpio */  	omap_register_i2c_bus(3, 400, NULL, 0);  	return 0; @@ -171,6 +197,22 @@ static struct platform_device *overo_devices[] __initdata = {  	&overo_lcd_device,  }; +static struct twl4030_hsmmc_info mmc[] __initdata = { +	{ +		.mmc		= 1, +		.wires		= 4, +		.gpio_cd	= -EINVAL, +		.gpio_wp	= -EINVAL, +	}, +	{ +		.mmc		= 2, +		.wires		= 4, +		.gpio_cd	= -EINVAL, +		.gpio_wp	= -EINVAL, +	}, +	{}	/* Terminator */ +}; +  static void __init overo_init(void)  {  	overo_i2c_init(); @@ -178,6 +220,7 @@ static void __init overo_init(void)  	omap_board_config = overo_config;  	omap_board_config_size = ARRAY_SIZE(overo_config);  	omap_serial_init(); +	twl4030_mmc_init(mmc);  	overo_flash_init();  	if ((gpio_request(OVERO_GPIO_W2W_NRESET, | 
