From: David Brownell Date: Sat, 8 Nov 2008 03:14:59 +0000 (-0800) Subject: osk5912: Mistral eeprom support X-Git-Tag: v2.6.28-omap1~162 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=434011534b9a655c74fb0e4be26636af02aeb1d8;p=linux-2.6-omap-h63xx.git osk5912: Mistral eeprom support List the 4 Kbit I2C EEPROM included on the Mistral board. Also add a comment about the hardware workaround needed to properly support the WAKE button. More info at http://elinux.org/OSK_Mistral_wakeup_button_mod Still no support for the (optional) camera sensor. Signed-off-by: David Brownell Signed-off-by: Tony Lindgren --- diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c index d78ce821c4e..9312de198b6 100644 --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c @@ -261,10 +261,6 @@ static struct i2c_board_info __initdata osk_i2c_board_info[] = { { I2C_BOARD_INFO("tlv320aic23", 0x1B), }, - /* TODO when driver support is ready: - * - on Mistral, 24c04 eeprom at 0x50 - * - optionally on Mistral, ov9640 camera sensor at 0x30 - */ }; static void __init osk_init_smc91x(void) @@ -339,11 +335,28 @@ static struct omap_board_config_kernel osk_config[] __initdata = { #ifdef CONFIG_OMAP_OSK_MISTRAL #include +#include #include #include #include +static struct at24_platform_data at24c04 = { + .byte_len = SZ_4K / 8, + .page_size = 16, +}; + +static struct i2c_board_info __initdata mistral_i2c_board_info[] = { + { + /* NOTE: powered from LCD supply */ + I2C_BOARD_INFO("24c04", 0x50), + .platform_data = &at24c04, + }, + /* TODO when driver support is ready: + * - optionally ov9640 camera sensor at 0x30 + */ +}; + static const int osk_keymap[] = { /* KEY(col, row, code) */ KEY(0, 0, KEY_F1), /* SW4 */ @@ -490,7 +503,13 @@ static void __init osk_mistral_init(void) spi_register_board_info(mistral_boardinfo, ARRAY_SIZE(mistral_boardinfo)); - /* the sideways button (SW1) is for use as a "wakeup" button */ + /* the sideways button (SW1) is for use as a "wakeup" button + * + * NOTE: The Mistral board has the wakeup button (SW1) wired + * to the LCD 3.3V rail, which is powered down during suspend. + * To allow this button to wake up the omap, work around this + * HW bug by rewiring SW1 to use the main 3.3V rail. + */ omap_cfg_reg(N15_1610_MPUIO2); if (gpio_request(OMAP_MPUIO(2), "wakeup") == 0) { int ret = 0; @@ -523,6 +542,9 @@ static void __init osk_mistral_init(void) if (gpio_request(2, "lcd_pwr") == 0) gpio_direction_output(2, 1); + i2c_register_board_info(1, mistral_i2c_board_info, + ARRAY_SIZE(mistral_i2c_board_info)); + platform_add_devices(mistral_devices, ARRAY_SIZE(mistral_devices)); } #else