|
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.
|