diff mbox

[12/12] davinci: add tnetv107x evm i2c eeprom device

Message ID 1287081535-2864-13-git-send-email-cyril@ti.com (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Cyril Chemparathy Oct. 14, 2010, 6:38 p.m. UTC
None
diff mbox

Patch

diff --git a/arch/arm/mach-davinci/board-tnetv107x-evm.c b/arch/arm/mach-davinci/board-tnetv107x-evm.c
index 0a1e9c8..2e3d842 100644
--- a/arch/arm/mach-davinci/board-tnetv107x-evm.c
+++ b/arch/arm/mach-davinci/board-tnetv107x-evm.c
@@ -29,6 +29,9 @@ 
 #include <linux/regulator/machine.h>
 #include <linux/regulator/consumer.h>
 #include <linux/regulator/driver.h>
+#include <linux/i2c.h>
+#include <linux/i2c/at24.h>
+#include <linux/i2c-gpio.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach-types.h>
@@ -45,6 +48,8 @@ 
 #define EVM_MMC_WP_GPIO		21
 #define EVM_MMC_CD_GPIO		24
 #define EVM_SPI_CS_GPIO		54
+#define EVM_I2C_SDA_GPIO	(SSP_GPIO_START + 0)
+#define EVM_I2C_SCL_GPIO	(SSP_GPIO_START + 1)
 #define EVM_BACKLIGHT_GPIO	(SSP_GPIO_START + 2)
 
 static int initialize_gpio(int gpio, char *desc)
@@ -270,11 +275,6 @@  static struct ti_ssp_gpio_data ssp_gpio_data = {
 	.port_data = {
 		.ssp_dev_name = "ti-ssp",
 		.port = 0,
-		.iosel = SSP_PIN_SEL(0, SSP_OUT)	|
-			 SSP_PIN_SEL(1, SSP_OUT)	|
-			 SSP_PIN_SEL(2, SSP_OUT)	|
-			 SSP_PIN_SEL(3, SSP_OUT)	|
-			 SSP_INPUT_SEL(3),
 	},
 	.start		= SSP_GPIO_START,
 };
@@ -382,6 +382,29 @@  static struct platform_device backlight_device = {
 	.dev.platform_data = (void *)EVM_BACKLIGHT_GPIO,
 };
 
+struct i2c_gpio_platform_data i2c_data = {
+	.sda_pin	= EVM_I2C_SDA_GPIO,
+	.scl_pin	= EVM_I2C_SCL_GPIO,
+};
+
+static struct platform_device i2c_device = {
+	.name		= "i2c-gpio",
+	.id		= 0,
+	.dev.platform_data = &i2c_data,
+};
+
+static struct at24_platform_data at24_config = {
+	.byte_len	= SZ_16K / 8,
+	.page_size	= 16,
+};
+
+static struct i2c_board_info i2c_info[] __initconst =  {
+	{
+		I2C_BOARD_INFO("24c16", 0x50),
+		.platform_data	= &at24_config,
+	},
+};
+
 static __init void tnetv107x_evm_board_init(void)
 {
 	davinci_cfg_reg_list(sdio1_pins);
@@ -393,8 +416,10 @@  static __init void tnetv107x_evm_board_init(void)
 	platform_device_register(&spi_master_device);
 	platform_device_register(&ssp_gpio_device);
 	platform_device_register(&backlight_device);
+	platform_device_register(&i2c_device);
 
 	spi_register_board_info(spi_info, ARRAY_SIZE(spi_info));
+	i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info));
 }
 
 #ifdef CONFIG_SERIAL_8250_CONSOLE