The tnetv107x evm board has an I2C device connected on one of the SSP ports. This patch adds board definitions for a GPIO based I2C master, as well as definitions for the eeprom device on these boards.
Signed-off-by: Cyril Chemparathy <[email protected]> --- arch/arm/mach-davinci/board-tnetv107x-evm.c | 35 +++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 5 deletions(-) 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 -- 1.7.0.4 ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb _______________________________________________ spi-devel-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/spi-devel-general
