diff options
Diffstat (limited to 'arch/arm/mach-omap1/board-ams-delta.c')
| -rw-r--r-- | arch/arm/mach-omap1/board-ams-delta.c | 133 | 
1 files changed, 68 insertions, 65 deletions
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index 1d4163b9f0b..bd0495a9ac3 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c @@ -28,6 +28,7 @@  #include <asm/mach/arch.h>  #include <asm/mach/map.h> +#include <plat/io.h>  #include <plat/board-ams-delta.h>  #include <mach/gpio.h>  #include <plat/keypad.h> @@ -42,84 +43,82 @@  static u8 ams_delta_latch1_reg;  static u16 ams_delta_latch2_reg; -static int ams_delta_keymap[] = { +static const unsigned int ams_delta_keymap[] = {  	KEY(0, 0, KEY_F1),		/* Advert    */ -	KEY(3, 0, KEY_COFFEE),		/* Games     */ -	KEY(2, 0, KEY_QUESTION),	/* Directory */ -	KEY(3, 2, KEY_CONNECT),		/* Internet  */ -	KEY(2, 1, KEY_SHOP),		/* Services  */ +	KEY(0, 3, KEY_COFFEE),		/* Games     */ +	KEY(0, 2, KEY_QUESTION),	/* Directory */ +	KEY(2, 3, KEY_CONNECT),		/* Internet  */ +	KEY(1, 2, KEY_SHOP),		/* Services  */  	KEY(1, 1, KEY_PHONE),		/* VoiceMail */ -	KEY(1, 0, KEY_DELETE),		/* Delete    */ +	KEY(0, 1, KEY_DELETE),		/* Delete    */  	KEY(2, 2, KEY_PLAY),		/* Play      */ -	KEY(0, 1, KEY_PAGEUP),		/* Up        */ -	KEY(3, 1, KEY_PAGEDOWN),	/* Down      */ -	KEY(0, 2, KEY_EMAIL),		/* ReadEmail */ -	KEY(1, 2, KEY_STOP),		/* Stop      */ +	KEY(1, 0, KEY_PAGEUP),		/* Up        */ +	KEY(1, 3, KEY_PAGEDOWN),	/* Down      */ +	KEY(2, 0, KEY_EMAIL),		/* ReadEmail */ +	KEY(2, 1, KEY_STOP),		/* Stop      */  	/* Numeric keypad portion */ -	KEY(7, 0, KEY_KP1), -	KEY(6, 0, KEY_KP2), -	KEY(5, 0, KEY_KP3), -	KEY(7, 1, KEY_KP4), -	KEY(6, 1, KEY_KP5), -	KEY(5, 1, KEY_KP6), -	KEY(7, 2, KEY_KP7), -	KEY(6, 2, KEY_KP8), -	KEY(5, 2, KEY_KP9), -	KEY(6, 3, KEY_KP0), -	KEY(7, 3, KEY_KPASTERISK), -	KEY(5, 3, KEY_KPDOT),		/* # key     */ -	KEY(2, 7, KEY_NUMLOCK),		/* Mute      */ -	KEY(1, 7, KEY_KPMINUS),		/* Recall    */ -	KEY(1, 6, KEY_KPPLUS),		/* Redial    */ -	KEY(6, 7, KEY_KPSLASH),		/* Handsfree */ -	KEY(0, 6, KEY_ENTER),		/* Video     */ +	KEY(0, 7, KEY_KP1), +	KEY(0, 6, KEY_KP2), +	KEY(0, 5, KEY_KP3), +	KEY(1, 7, KEY_KP4), +	KEY(1, 6, KEY_KP5), +	KEY(1, 5, KEY_KP6), +	KEY(2, 7, KEY_KP7), +	KEY(2, 6, KEY_KP8), +	KEY(2, 5, KEY_KP9), +	KEY(3, 6, KEY_KP0), +	KEY(3, 7, KEY_KPASTERISK), +	KEY(3, 5, KEY_KPDOT),		/* # key     */ +	KEY(7, 2, KEY_NUMLOCK),		/* Mute      */ +	KEY(7, 1, KEY_KPMINUS),		/* Recall    */ +	KEY(6, 1, KEY_KPPLUS),		/* Redial    */ +	KEY(7, 6, KEY_KPSLASH),		/* Handsfree */ +	KEY(6, 0, KEY_ENTER),		/* Video     */ -	KEY(4, 7, KEY_CAMERA),		/* Photo     */ +	KEY(7, 4, KEY_CAMERA),		/* Photo     */ -	KEY(4, 0, KEY_F2),		/* Home      */ -	KEY(4, 1, KEY_F3),		/* Office    */ -	KEY(4, 2, KEY_F4),		/* Mobile    */ +	KEY(0, 4, KEY_F2),		/* Home      */ +	KEY(1, 4, KEY_F3),		/* Office    */ +	KEY(2, 4, KEY_F4),		/* Mobile    */  	KEY(7, 7, KEY_F5),		/* SMS       */ -	KEY(5, 7, KEY_F6),		/* Email     */ +	KEY(7, 5, KEY_F6),		/* Email     */  	/* QWERTY portion of keypad */ -	KEY(4, 3, KEY_Q), +	KEY(3, 4, KEY_Q),  	KEY(3, 3, KEY_W), -	KEY(2, 3, KEY_E), -	KEY(1, 3, KEY_R), -	KEY(0, 3, KEY_T), -	KEY(7, 4, KEY_Y), -	KEY(6, 4, KEY_U), -	KEY(5, 4, KEY_I), +	KEY(3, 2, KEY_E), +	KEY(3, 1, KEY_R), +	KEY(3, 0, KEY_T), +	KEY(4, 7, KEY_Y), +	KEY(4, 6, KEY_U), +	KEY(4, 5, KEY_I),  	KEY(4, 4, KEY_O), -	KEY(3, 4, KEY_P), +	KEY(4, 3, KEY_P), -	KEY(2, 4, KEY_A), -	KEY(1, 4, KEY_S), -	KEY(0, 4, KEY_D), -	KEY(7, 5, KEY_F), -	KEY(6, 5, KEY_G), +	KEY(4, 2, KEY_A), +	KEY(4, 1, KEY_S), +	KEY(4, 0, KEY_D), +	KEY(5, 7, KEY_F), +	KEY(5, 6, KEY_G),  	KEY(5, 5, KEY_H), -	KEY(4, 5, KEY_J), -	KEY(3, 5, KEY_K), -	KEY(2, 5, KEY_L), +	KEY(5, 4, KEY_J), +	KEY(5, 3, KEY_K), +	KEY(5, 2, KEY_L), -	KEY(1, 5, KEY_Z), -	KEY(0, 5, KEY_X), -	KEY(7, 6, KEY_C), +	KEY(5, 1, KEY_Z), +	KEY(5, 0, KEY_X), +	KEY(6, 7, KEY_C),  	KEY(6, 6, KEY_V), -	KEY(5, 6, KEY_B), -	KEY(4, 6, KEY_N), -	KEY(3, 6, KEY_M), -	KEY(2, 6, KEY_SPACE), +	KEY(6, 5, KEY_B), +	KEY(6, 4, KEY_N), +	KEY(6, 3, KEY_M), +	KEY(6, 2, KEY_SPACE), -	KEY(0, 7, KEY_LEFTSHIFT),	/* Vol up    */ -	KEY(3, 7, KEY_LEFTCTRL),	/* Vol down  */ - -	0 +	KEY(7, 0, KEY_LEFTSHIFT),	/* Vol up    */ +	KEY(7, 3, KEY_LEFTCTRL),	/* Vol down  */  };  void ams_delta_latch1_write(u8 mask, u8 value) @@ -140,7 +139,6 @@ static void __init ams_delta_init_irq(void)  {  	omap1_init_common_hw();  	omap_init_irq(); -	omap_gpio_init();  }  static struct map_desc ams_delta_io_desc[] __initdata = { @@ -189,11 +187,15 @@ static struct resource ams_delta_kp_resources[] = {  	},  }; +static const struct matrix_keymap_data ams_delta_keymap_data = { +	.keymap		= ams_delta_keymap, +	.keymap_size	= ARRAY_SIZE(ams_delta_keymap), +}; +  static struct omap_kp_platform_data ams_delta_kp_data = {  	.rows		= 8,  	.cols		= 8, -	.keymap 	= ams_delta_keymap, -	.keymapsize	= ARRAY_SIZE(ams_delta_keymap), +	.keymap_data	= &ams_delta_keymap_data,  	.delay		= 9,  }; @@ -307,16 +309,14 @@ static void __init ams_delta_init(void)  #endif  	platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices)); -#ifdef CONFIG_AMS_DELTA_FIQ  	ams_delta_init_fiq(); -#endif  	omap_writew(omap_readw(ARM_RSTCT1) | 0x0004, ARM_RSTCT1);  }  static struct plat_serial8250_port ams_delta_modem_ports[] = {  	{ -		.membase	= (void *) AMS_DELTA_MODEM_VIRT, +		.membase	= IOMEM(AMS_DELTA_MODEM_VIRT),  		.mapbase	= AMS_DELTA_MODEM_PHYS,  		.irq		= -EINVAL, /* changed later */  		.flags		= UPF_BOOT_AUTOCONF, @@ -340,6 +340,9 @@ static int __init ams_delta_modem_init(void)  {  	int err; +	if (!machine_is_ams_delta()) +		return -ENODEV; +  	omap_cfg_reg(M14_1510_GPIO2);  	ams_delta_modem_ports[0].irq =  			gpio_to_irq(AMS_DELTA_GPIO_PIN_MODEM_IRQ);  |