osk5912: Mistral eeprom support
Subsystems (3)
PATCH 1/1 osk5912: Mistral eeprom support
From: David Brownell <[email protected]>
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.
--- arch/arm/mach-omap1/board-osk.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-)
arch/arm/mach-omap1/board-osk.c +27 -5
@@ -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(voidspi_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(voidif (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
Tony Lindgren
reviewerQuoted 10 lines · David Brownell
From: David Brownell <[email protected]>
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.
Pushing today and adding to omap1-upstream queue.
Tony
Quoted 76 lines
Signed-off-by David Brownell <[email protected]>--- arch/arm/mach-omap1/board-osk.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-)arch/arm/mach-omap1/board-osk.c +27
-6@@ -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(voidspi_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(voidif (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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html