From: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> 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 <dbrownell@xxxxxxxxxxxxxxxxxxxxx> --- arch/arm/mach-omap1/board-osk.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c @@ -262,10 +262,6 @@ static struct i2c_board_info __initdata { 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) @@ -340,11 +336,28 @@ static struct omap_board_config_kernel o #ifdef CONFIG_OMAP_OSK_MISTRAL #include <linux/input.h> +#include <linux/i2c/at24.h> #include <linux/spi/spi.h> #include <linux/spi/ads7846.h> #include <mach/keypad.h> +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 */ @@ -491,7 +504,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 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html