From: <hap...@us...> - 2006-10-06 06:59:27
|
Revision: 618 http://svn.sourceforge.net/hackndev/?rev=618&view=rev Author: happy-slapin Date: 2006-10-05 23:59:12 -0700 (Thu, 05 Oct 2006) Log Message: ----------- Should fix keypad support Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2006-10-05 15:07:41 UTC (rev 617) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2006-10-06 06:59:12 UTC (rev 618) @@ -45,16 +45,6 @@ #include "../generic.h" #include "../drivers/serial/pxa-serial.h" -//#define GPIO_NR_PALMZ72_STD_RXD 46 -//#define GPIO_NR_PALMZ72_STD_TXD 47 -//#define GPIO_NR_PALMZ72_STD_RXD_MD (GPIO_NR_PALMZ72_STD_RXD | GPIO_ALT_FN_2_IN) -//#define GPIO_NR_PALMZ72_STD_TXD_MD (GPIO_NR_PALMZ72_STD_TXD | GPIO_ALT_FN_1_OUT) - -/* IRDA code is taken from LifeDrive code, modified -Actually, I'm not sure, that these GPIO's are correct. But it works, anyway. -*/ - - #define DEBUG #define IR_TRANSCEIVER_ON \ @@ -62,63 +52,7 @@ #define IR_TRANSCEIVER_OFF \ SET_HX4700_GPIO_N(IR_ON, 0) -#if 0 -static void palm_backlight_power(int on) -{ - if(on) { - /* setup backlight PWM settings */ -// PWM_CTRL0 = 0x7; - PWM_PWDUTY0 = 0x11a; - PWM_PWDUTY0 = 0; - PWM_PERVAL0 = 0x16c; - - /* turn on PWMs */ - CKEN |= CKEN0_PWM0 | CKEN1_PWM1; - } else { - /* turn off PWMs */ - CKEN &= ~(CKEN0_PWM0 | CKEN1_PWM1); - } -} -#endif - -#if 0 -/* USB Device Controller */ - -static int -udc_detect(void) -{ - if (core_funcs.udc_detect != NULL) - return core_funcs.udc_detect(); - else - return 0; -} - -static void -udc_enable(int cmd) -{ - switch (cmd) - { - case PXA2XX_UDC_CMD_DISCONNECT: - printk (KERN_NOTICE "USB cmd disconnect\n"); - SET_HX4700_GPIO(USB_PUEN, 0); - break; - - case PXA2XX_UDC_CMD_CONNECT: - printk (KERN_NOTICE "USB cmd connect\n"); - SET_HX4700_GPIO(USB_PUEN, 1); - break; - } -} - -static struct pxa2xx_udc_mach_info zire72_udc_mach_info = { - .udc_is_connected = udc_detect, - .udc_command = udc_enable, -}; - -#endif - - static int palmz72_udc_is_connected(void) { int ret = !(GET_GPIO(GPIO_NR_PALMZ72_USB_DETECT)); @@ -152,40 +86,52 @@ * Keypad */ -static int palmz72_keypad_matrix[] = { - /* row 0 */ - -1, /* Power */ - KEY_P, /* Picture */ - KEY_ENTER, /* Center */ - /* row 1 */ - KEY_T, /* Tasks */ - KEY_C, /* Contact */ - KEY_M, /* Music */ - /* row 2 */ - KEY_UP, /* UP */ - -1, /* unused */ - KEY_DOWN, /* Nav down */ - /* row 3 */ - KEY_RIGHT, /* Right */ - KEY_ENTER, /* Centre */ - KEY_LEFT, /* Nav left */ - }; +static struct pxa27x_keyboard_platform_data palmld_kbd_data = { + .nr_rows = 4, + .nr_cols = 3, + .keycodes = { + { /* row 0 */ + -1, /* unused */ + KEY_P, /* Folder */ + KEY_ENTER, /* Nav up */ + }, + { /* row 1 */ + KEY_T, /* Picture */ + KEY_C, /* Star */ + KEY_M, /* Nav right */ + }, + { /* row 2 */ + KEY_UP, /* Home */ + -1, /* Voice memo */ + KEY_DOWN, /* Nav down */ + }, + { + /* row 3 */ + KEY_RIGHT, /* Rotate display */ + KEY_ENTER, /* Nav centre */ + KEY_LEFT, /* Nav left */ + }, -static struct pxa27x_keypad_platform_data palmz72_keypad_data = { - .matrix = palmz72_keypad_matrix, - .rows = 4, - .cols = 3, + }, + .gpio_modes = { + GPIO_NR_PALMZ72_KP_MKIN0_MD, + GPIO_NR_PALMZ72_KP_MKIN1_MD, + GPIO_NR_PALMZ72_KP_MKIN2_MD, + GPIO_NR_PALMZ72_KP_MKIN3_MD, + GPIO_NR_PALMZ72_KP_MKOUT0_MD, + GPIO_NR_PALMZ72_KP_MKOUT1_MD, + GPIO_NR_PALMZ72_KP_MKOUT2_MD, + }, }; -struct platform_device palmz72_keypad = { - .name = "pxa27x-keypad", - .id = -1, - .dev = { - .platform_data = &palmz72_keypad_data - }, +static struct platform_device palmld_kbd = { + .name = "pxa27x-keyboard", + .id = -1, + .dev = { + .platform_data = &palmld_kbd_data, + }, }; - static void palmz72_irda_configure (struct uart_pxa_port *up, int enable) { @@ -253,6 +199,7 @@ .get_txrx = palmz72_irda_get_txrx, }; +#if 0 /** * AC97 audio controller */ @@ -272,6 +219,7 @@ .dev = { .platform_data = &palmz72_audio_ops }, }; +#endif /* touchscreen */ static struct platform_device palmz72_touch = { @@ -280,41 +228,20 @@ }; -/* IrDA */ -#if 0 -static void palmz72_irda_transceiver_mode(struct device *dev, int mode) -{ -} - -static struct pxaficp_platform_data palmz72_ficp_platform_data = { - .transceiver_cap = IR_SIRMODE, - .transceiver_mode = palmz72_irda_transceiver_mode, -}; - -static struct platform_device palmz72_ir = { - .name = "pxa2xx-ir", - .id = -1, -}; -#endif - - /** * Backlight */ #define PALMZ72_MAX_INTENSITY 0x100 -#define PALMZ72_DEFAULT_INTENSITY 0x050 +#define PALMZ72_DEFAULT_INTENSITY 0x7E #define PALMZ72_LIMIT_MASK 0x7F -#if 0 static struct pxapwmbl_platform_data palmld_backlight_data = { .pwm = 0, .max_intensity = PALMZ72_MAX_INTENSITY, .default_intensity = PALMZ72_DEFAULT_INTENSITY, .limit_mask = PALMZ72_LIMIT_MASK, -// .prescaler = 7, .prescaler = 1, -// .period = 0x16c, .period = 0x12c, }; @@ -324,13 +251,9 @@ .platform_data = &palmld_backlight_data, }, }; -#endif static struct platform_device *devices[] __initdata = { -#if 0 - &palmz72_ir, -#endif - &palmz72_ac97, +// &palmz72_ac97, &palmz72_touch, &palmz72_backlight, &palmz72_keypad, @@ -381,32 +304,23 @@ case 16: palmz72lcd.lccr3=0x04700007; break; -/* LED seems to not support 24bpp. - case 24: - palmz72lcd.lccr3=0x21700007; - break; -*/ } set_pxa_fb_info(&palmz72lcd); pxa_set_udc_info(&palmz72_udc_mach_info ); stuart_device.dev.platform_data = &palmz72_pxa_irda_funcs; platform_add_devices( devices, ARRAY_SIZE(devices) ); #if 0 - pxa_set_ficp_info(&palmz72_ficp_platform_data); -#endif #ifdef EARLY_SIR_CONSOLE palmlz72_irda_configure (NULL, 1); palmlz72_irda_set_txrx (NULL, PXA_SERIAL_TX); #endif - +#endif } MACHINE_START(PALMZ72, "Palm Zire 72") /* Maintainer: Vladimir Pouzanov <far...@gm...> */ /* Maintainer: Sergey Lapin <sla...@gm...> */ -#if 0 - .phys_ram = 0xa0000000, -#endif + .boot_params = 0xa0000100, .phys_io = 0x40000000, .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, .map_io = pxa_map_io, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |