You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(26) |
Sep
(22) |
Oct
(55) |
Nov
(24) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(68) |
Feb
(85) |
Mar
(54) |
Apr
(12) |
May
(52) |
Jun
(75) |
Jul
(116) |
Aug
(71) |
Sep
(54) |
Oct
|
Nov
(2) |
Dec
|
From: <far...@us...> - 2006-10-18 05:28:56
|
Revision: 626 http://svn.sourceforge.net/hackndev/?rev=626&view=rev Author: farcaller Date: 2006-10-17 22:28:46 -0700 (Tue, 17 Oct 2006) Log Message: ----------- l4p: small armboot fixup Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/armboot/armboot.c Modified: linux4palm/linux/trunk/arch/arm/armboot/armboot.c =================================================================== --- linux4palm/linux/trunk/arch/arm/armboot/armboot.c 2006-10-14 07:15:41 UTC (rev 625) +++ linux4palm/linux/trunk/arch/arm/armboot/armboot.c 2006-10-18 05:28:46 UTC (rev 626) @@ -146,7 +146,7 @@ kernaddr = MEMSTART+0x8000; initrdaddr = MEMSTART+0x0400000; - DBGK("kernel PA: %x\ninitrd PA:%x", virt_to_phys(kerneladdr), virt_to_phys(initrd)); + DBGK("kernel PA: %lx\ninitrd PA:%lx", virt_to_phys(kerneladdr), virt_to_phys(initrd)); printk(KERN_EMERG "armboot: Placing new kernel %sinto temporary RAM...\n", (size_initrd?"and initrd ":"")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2006-10-14 07:15:54
|
Revision: 625 http://svn.sourceforge.net/hackndev/?rev=625&view=rev Author: marex_z71 Date: 2006-10-14 00:15:41 -0700 (Sat, 14 Oct 2006) Log Message: ----------- New PalmTC keyboard driver by Holger Bocklet Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/Kconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/Makefile linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc.c Added Paths: ----------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_keyboard.c Removed Paths: ------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_buttons.c linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_fbkeyb.c linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_tsc2101.c linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/tsc2101.h Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/Kconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/Kconfig 2006-10-13 19:51:42 UTC (rev 624) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/Kconfig 2006-10-14 07:15:41 UTC (rev 625) @@ -6,23 +6,10 @@ Palm Tungsten C. Currently there is only basic support for this PDA. -config PALMTC_BUTTONS - tristate "Palm Tungsten C buttons driver" +config PALMTC_KEYBOARD + tristate "Palm Tungsten C keyboard driver" depends on MACH_OMAP_PALMTC help This driver translates button presses on a Palm - Tungsten C to Linux input subsystem events, still non - functional. + Tungsten C to Linux input subsystem events -config PALMTC_TSC2101 - tristate "Support for TSC2101 touchscreen and audio" - depends on MACH_OMAP_PALMTC - help - Adds support for TSC2101 touchscreen and audio controller. This - code is hearly the same as soc/tsc2101 so is obsolete. - -config PALMTC_FBKEYBOARD - bool "On-screen keyboard (BROKEN)" - depends on PALMTC_TSC2101 - help - On-screen framebuffer keyboard Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/Makefile =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/Makefile 2006-10-13 19:51:42 UTC (rev 624) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/Makefile 2006-10-14 07:15:41 UTC (rev 625) @@ -3,5 +3,4 @@ # obj-$(CONFIG_MACH_OMAP_PALMTC) += palmtc.o -obj-$(CONFIG_PALMTC_BUTTONS) += palmtc_buttons.o -obj-$(CONFIG_PALMTC_TSC2101) += palmtc_tsc2101.o +obj-$(CONFIG_PALMTC_KEYBOARD) += palmtc_keyboard.o Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc.c 2006-10-13 19:51:42 UTC (rev 624) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc.c 2006-10-14 07:15:41 UTC (rev 625) @@ -7,6 +7,7 @@ #include <linux/kernel.h> #include <linux/init.h> +#include <asm/arch/audio.h> #include <asm/mach/arch.h> #include <asm/mach-types.h> #include <asm/arch/hardware.h> @@ -14,6 +15,7 @@ #include <asm/domain.h> #include <linux/device.h> +#include <linux/platform_device.h> #include <linux/fb.h> #include <asm/arch/pxa-dmabounce.h> @@ -54,9 +56,29 @@ .pxafb_backlight_power = palm_backlight_power, }; -static void __init palm_init(void) + + +static struct platform_device palmtc_audio_device = { + .name = "pxa2xx-ac97", + .id = -1, +}; + +static struct platform_device palmtc_keyboard_device = { + .name = "palmtc-kbd", + .id = -1, +}; + + +static struct platform_device *devices[] __initdata = { + &palmtc_audio_device, + &palmtc_keyboard_device, +}; + +static void __init palmtc_init(void) { set_pxa_fb_info(&palmtclcd); + GCR &= ~GCR_PRIRDY_IEN; + platform_add_devices (devices, ARRAY_SIZE (devices)); } MACHINE_START(OMAP_PALMTC, "Palm Tungsten C") @@ -67,6 +89,6 @@ .map_io = pxa_map_io, .init_irq = pxa_init_irq, .timer = &pxa_timer, - .init_machine = palm_init + .init_machine = palmtc_init MACHINE_END Deleted: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_buttons.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_buttons.c 2006-10-13 19:51:42 UTC (rev 624) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_buttons.c 2006-10-14 07:15:41 UTC (rev 625) @@ -1,113 +0,0 @@ -/* - * Palm TC hardware buttons - * - * Author: Chetan Kumar S<shi...@gm...> - * Based on Palm T3 hardware buttons - * - */ -#include <linux/module.h> -#include <linux/config.h> - -#include <linux/input.h> -#include <linux/init.h> -#include <linux/interrupt.h> -#include <asm/irq.h> -#include <asm/mach/arch.h> -#include <asm/mach/map.h> -#include <asm/mach-types.h> -#include <asm/hardware.h> -#include <asm/arch/pxa-regs.h> -#include <asm/arch/irqs.h> -#include <linux/sched.h> -#include <linux/workqueue.h> - - - -#define GET_GPIO(gpio) (GPLR(gpio) & GPIO_bit(gpio)) - - -#define MY_WORK_QUEUE_NAME "WQsched.c" - -#define CURRGPIO 18 - -static struct workqueue_struct *my_workqueue; - -static void handle_gpio(void* irq) -{ - int gpn = (int)irq; - printk(KERN_ERR "palmtc: GPIO[%d] = %d\n", gpn, GET_GPIO(gpn)); -} - -irqreturn_t gpio_irq(int irq, void *dev_id, struct pt_regs *regs) -{ - static int initialised = 0; - static struct work_struct task; - -printk(KERN_INFO "gpio_irq.\n"); - -//Not very optimized, need to check this sometime -Chetan - if (initialised == 0) { - INIT_WORK(&task, handle_gpio, dev_id); - initialised = 1; - } else { - PREPARE_WORK(&task, handle_gpio, dev_id); - } - - queue_work(my_workqueue, &task); - - return IRQ_HANDLED; -} - - -#define REG_GPIO(x) \ - ret = request_irq (IRQ_GPIO(x), gpio_irq, SA_SAMPLE_RANDOM, "Palmtc Buttons", (void*)x); \ - set_irq_type (IRQ_GPIO(x), IRQT_BOTHEDGE); \ - if(ret!=0) { \ - printk(KERN_INFO "Request GPIO: %d failed\n", x); \ - return 1; \ - } else { \ - printk(KERN_INFO "Registered GPIO %d\n", x); \ - } - -#define UNREG_GPIO(x) \ - free_irq(IRQ_GPIO(x),(void*)x); - -static int __init palmtc_btn_init(void) -{ - int ret; - printk(KERN_INFO "palmtc: init\n"); - printk(KERN_INFO "GPDR Dump:\n0: %X\n1: %X\n2: %X\n", GPDR0, GPDR1, GPDR2); - - - my_workqueue = create_workqueue(MY_WORK_QUEUE_NAME); - - REG_GPIO(0); - REG_GPIO(9); - REG_GPIO(10); - REG_GPIO(11); - - printk(KERN_INFO "palmtc: registered for irqs %d, %d, %d, %d\n", IRQ_GPIO(0), IRQ_GPIO(9), IRQ_GPIO(10), IRQ_GPIO(11)); - - -printk("Keypad register set done.........\n"); - - return 0; -} - -static void __exit palmtc_btn_cleanup(void) -{ - printk(KERN_INFO "tc buttons: unloading...\n"); - printk(KERN_INFO "Releasing irq\n"); - UNREG_GPIO(0); - UNREG_GPIO(9); - UNREG_GPIO(10); - UNREG_GPIO(11); - -} - -module_init(palmtc_btn_init); -module_exit(palmtc_btn_cleanup); - -MODULE_AUTHOR ("Chetan Kumar S <shi...@gm...>"); -MODULE_DESCRIPTION ("Button support for Palm Tungsten C"); -MODULE_LICENSE("GPL"); Deleted: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_fbkeyb.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_fbkeyb.c 2006-10-13 19:51:42 UTC (rev 624) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_fbkeyb.c 2006-10-14 07:15:41 UTC (rev 625) @@ -1,72 +0,0 @@ -/* - * On-screen keyboard in kernel space - * - * Author: Vladimir "Farcaller" Pouzanov <far...@gm...> - * - */ -#include <linux/module.h> -#include <linux/config.h> - -#include <linux/input.h> -#include <linux/init.h> -#include <linux/interrupt.h> -#include <asm/irq.h> -#include <asm/mach/arch.h> -#include <asm/mach/map.h> -#include <asm/mach-types.h> -#include <asm/hardware.h> -#include <asm/arch/pxa-regs.h> -#include <asm/arch/irqs.h> -#include <linux/sched.h> -#include <linux/workqueue.h> - -#include <linux/fb.h> -#include <linux/vt_kern.h> - -static int resized; - -void drawkeyb(void) -{ - /* - struct fb_info *p; - struct vc_data *vc; - struct fb_fillrect rect; - int i; - unsigned long fg; - - if(resized<2) { - resized++; - vc = vc_cons[0].d; - vc_resize(vc, 40, 41); - } - p = registered_fb[0]; - - rect.dx = 0; - rect.width = 320; - rect.height = 2; - rect.color = 0x00FF00FF; - rect.rop = ROP_COPY; - for(i = 150; i < 320; i+=10) { - rect.dy = i; - cfb_fillrect(p, &rect); - } - if (p->fix.visual == FB_VISUAL_TRUECOLOR || p->fix.visual == FB_VISUAL_DIRECTCOLOR ) { - fg = ((u32 *) (p->pseudo_palette))[rect.color]; - printk(KERN_INFO "Direct col %lu\n", fg); - } else { - fg = rect.color; - printk(KERN_INFO "Indir col %lu\n", fg); - } - */ -} - -static int __init palmt3_fbk_init(void) -{ - printk(KERN_INFO "fbkeyb: init\n"); - resized = 0; - - return 0; -} - -module_init(palmt3_fbk_init); - Added: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_keyboard.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_keyboard.c (rev 0) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_keyboard.c 2006-10-14 07:15:41 UTC (rev 625) @@ -0,0 +1,402 @@ +/* + * Palm TC hardware buttons + * + * Author: Holger Bocklet, Bit...@gm..., + * based on research by Chetan Kumar S<shi...@gm...> + * with bits and pieces from + * htcuniversal_kbd.c, (Milan Votava) + * palmt3_buttons.c, (Vladimir "Farcaller" Pouzanov <far...@gm...>, Martin Kupec) + * palmte2_keyboard, (Carlos Eduardo Medaglia Dyonisio <ca...@ne...>) + * + */ +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/input.h> +#include <linux/init.h> +#include <linux/interrupt.h> +#include <linux/jiffies.h> +#include <linux/platform_device.h> +#include <linux/workqueue.h> +#include <linux/delay.h> + +#include <asm/mach/arch.h> +#include <asm/mach-types.h> +#include <asm/hardware.h> +#include <asm/arch/pxa-regs.h> +#include <asm/arch/irqs.h> + +#define USE_RELEASE_TIMER +#define USE_DOUBLECLICK + +#define PALMTC_KEYBOARD_DEBUG + +#ifdef PALMTC_KEYBOARD_DEBUG +#define DBG(x...) \ + printk(KERN_INFO "Palmtc keyboard: " x) +#else +#define DBG(x...) do { } while (0) +#endif + +#define TRUE 1 +#define FALSE 0 +#define PERMANENT 2 + +#define MAX_ROW 12 +#define MAX_COL 4 + +#define SHIFT_BIT 0x80 +#define PRESSED_BIT 1 + +#define PALMTC_BLUEKEY -17 + +#define RELEASE_CHECK_TIME_MS 50 +#define DOUBLECLICK_TIME_MS 250 + +#define GET_GPIO(gpio) (GPLR(gpio) & GPIO_bit(gpio)) + +#define GET_KEY_BIT(vkey, bit) ((vkey >> (bit) ) & 0x01) +#define SET_KEY_BIT(vkey, bit) (vkey |= (1 << (bit)) ) +#define CLEAR_KEY_BIT(vkey, bit) (vkey &= ~(1 << (bit)) ) + +#ifdef USE_RELEASE_TIMER +static void release_timer_went_off (unsigned long); +static struct timer_list key_release_timer; +#endif + +/********************************************************** + * Key-matrix map german + * GPIO 0 9 10 11 + * 18 CALEND CONTACT MAIL WEB + * 19 x DOWN OPT OK + * 20 POWER + * 21 TAB d h . + * 22 a c z l + * 23 q f n o + * 24 SHIFT r j EXIT + * 25 y SPACE u CR + * 26 s v m BS + * 27 w g k p + * 79 e t i b + * 80 UP LEFT RIGHT BLUE + **********************************************************/ + +static u8 alternate_key=FALSE; +static int col_gpio[MAX_COL] = { 0, 9, 10, 11 }; +static u8 row_gpio[MAX_ROW] = {18,19,20,21,22,23,24,25,26,27,79,80}; + +static struct { // matrix for real buttons + int key; + int alt_key; + u8 flags; // for recording last status and shift_bit + unsigned long tstamp; // timestamp (jiffies) + char *desc; +} palmtc_buttons[MAX_ROW][MAX_COL] = { +// Gpio Column+IRQ +// german keymap +/*18*/{{KEY_F1,KEY_F5,FALSE,0,"CAL/F1"}, //0 + {KEY_F2,KEY_F6,FALSE,0,"CONTACT/F2"}, //9 + {KEY_F3,KEY_F7,FALSE,0,"MAIL/F3"}, //10 + {KEY_F4,KEY_F8,FALSE,0,"WEB/F4"} },//11 +/*19*/ {{KEY_X,KEY_9,SHIFT_BIT|FALSE,0,"X"}, + {KEY_DOWN,KEY_PAGEDOWN,FALSE,0,"down/pgdown"} , + {KEY_LEFTCTRL,KEY_F9,FALSE,0,"cmd/ctrl/f9"}, + {KEY_ENTER,-1,FALSE,0,"Select/enter/;"} }, //1 free +/*20*/ {{KEY_POWER,-1,FALSE,0,"power"}, //0 + {-1,-1,FALSE,0,"unused 9/20"}, //9 + {-1,-1,FALSE,0,"unused 10/20"}, //10 + {-1,-1,FALSE,0,"unused 11/20"} }, //11 +/*21*/ {{KEY_TAB,KEY_BACKSLASH,SHIFT_BIT|FALSE,0,"tab/|"}, + {KEY_D,KEY_KPPLUS,FALSE,0,"D"}, + {KEY_H,KEY_MINUS,SHIFT_BIT|FALSE,0,"H/_"}, + {KEY_DOT,KEY_SEMICOLON,SHIFT_BIT|FALSE,0,"./:"} }, +/*22*/ {{KEY_A,KEY_2,SHIFT_BIT|FALSE,0,"A/@"}, + {KEY_C,KEY_0,SHIFT_BIT|FALSE,0,"C/)"}, + {KEY_Z,KEY_6,FALSE,0,"de:Z us:Y"}, + {KEY_L,KEY_EQUAL,FALSE,0,"L/\xDF"} }, // Keyoard shows "\xDF" but better use "=" +/*23*/ {{KEY_Q,KEY_1,FALSE,0,"Q"}, //0 + {KEY_F,KEY_KPMINUS,FALSE,0,"F"}, //9 + {KEY_N,KEY_COMMA,FALSE,0,"N"}, //10 + {KEY_O,KEY_9,FALSE,0,"O"} },//11 +/*24*/ {{KEY_LEFTSHIFT,KEY_7,SHIFT_BIT|FALSE,0,"shift/&"}, + {KEY_R,KEY_4,FALSE,0,"R"}, + {KEY_J,KEY_SLASH,FALSE,0,"J"}, + {KEY_LEFTALT,KEY_F10,FALSE,0,"exit/alt"} }, +/*25*/ {{KEY_Y,KEY_4,SHIFT_BIT|FALSE,0,"de:Y us:Z / $"}, // dollar is more usefull + {KEY_SPACE,KEY_ESC,FALSE,0,"space/esc"}, + {KEY_U,KEY_7,FALSE,0,"U"}, + {KEY_ENTER,KEY_SEMICOLON,FALSE,0,"enter"} }, +/*26*/ {{KEY_S,KEY_APOSTROPHE,SHIFT_BIT|FALSE,0,"S"}, + {KEY_V,KEY_3,SHIFT_BIT|FALSE,0,"V/#"}, + {KEY_M,KEY_SLASH,SHIFT_BIT|FALSE,0,"M/?"}, + {KEY_BACKSPACE,KEY_GRAVE,SHIFT_BIT|FALSE,0,"bs/~"} }, +/*27*/ {{KEY_W,KEY_2,FALSE,0,"W"}, + {KEY_G,KEY_KPASTERISK,FALSE,0,"G"}, + {KEY_K,KEY_APOSTROPHE,FALSE,0,"K"}, + {KEY_P,KEY_0,FALSE,0,"P"} }, +/*79*/ {{KEY_E,KEY_3,FALSE,0,"E"}, + {KEY_T,KEY_5,FALSE,0,"T"}, + {KEY_I,KEY_8,FALSE,0,"I"}, + {KEY_B,KEY_1,SHIFT_BIT|FALSE,0,"B/!"} }, +/*80*/ {{KEY_UP,KEY_PAGEUP,FALSE,0,"up"}, + {KEY_LEFT,KEY_HOME,FALSE,0,"left"}, + {KEY_RIGHT,KEY_END,FALSE,0,"right"}, + {PALMTC_BLUEKEY,-1,FALSE,0,"blue"} } +}; + +struct input_dev *keyboard_dev; + +static struct workqueue_struct *palmtc_kbd_workqueue; +static struct work_struct palmtc_kbd_task; + +static spinlock_t kbd_lock = SPIN_LOCK_UNLOCKED; + +static irqreturn_t palmtc_kbd_irq_handler(int irq, void *dev_id, struct pt_regs *regs) +{ + queue_work(palmtc_kbd_workqueue, &palmtc_kbd_task); + return IRQ_HANDLED; +} + +static void palmtc_kbd_queuework(void *data) +{ + unsigned long tdiff_msec, flags; + int gpio, row, col; + + // ignore irqs + for(col=0;col<MAX_COL;col++) { + set_irq_type (IRQ_GPIO(col_gpio[col]), IRQT_NOEDGE); + } + // set row-gpios high so we can pull them low later one-by-one in loop + spin_lock_irqsave(&kbd_lock, flags); + for (row=0; row<MAX_ROW;row++) { + GPSR(row_gpio[row]) = GPIO_bit(row_gpio[row]); + } + spin_unlock_irqrestore(&kbd_lock, flags); + + // run thru rows, pull row-gpio low and see if what gpio of the colums goes low with it + for(row = MAX_ROW-1; row >=0; row--) { // counting backwards, so we get BLUE first + spin_lock_irqsave(&kbd_lock, flags); + GPCR(row_gpio[row]) = GPIO_bit(row_gpio[row]); + spin_unlock_irqrestore(&kbd_lock, flags); + + udelay(50); + + for(col = MAX_COL-1; col >= 0; col--) { + spin_lock_irqsave(&kbd_lock, flags); + gpio = GET_GPIO(col_gpio[col]); + spin_unlock_irqrestore(&kbd_lock, flags); + + tdiff_msec = jiffies_to_msecs((unsigned long)((long)jiffies - + (long)palmtc_buttons[row][col].tstamp)); + + if(!gpio) { + if (! (palmtc_buttons[row][col].flags&PRESSED_BIT)) { //is not pressed at the moment + + palmtc_buttons[row][col].flags|=PRESSED_BIT; + palmtc_buttons[row][col].tstamp=jiffies; +#ifdef USE_DOUBLECLICK + if ( (tdiff_msec<DOUBLECLICK_TIME_MS) ) { + if(palmtc_buttons[row][col].alt_key >= 0) { // report "alternate" keys + input_report_key(keyboard_dev, KEY_BACKSPACE, 1); + input_report_key(keyboard_dev, KEY_BACKSPACE, 0); + if (palmtc_buttons[row][col].flags&SHIFT_BIT) + input_report_key(keyboard_dev,KEY_LEFTSHIFT,1); + input_report_key(keyboard_dev, palmtc_buttons[row][col].alt_key, 1); + input_sync(keyboard_dev); + alternate_key=FALSE; + } + } else { +#endif + if (palmtc_buttons[row][col].key==PALMTC_BLUEKEY) { + switch(alternate_key) { + case (PERMANENT): + alternate_key=FALSE; + break; + case (TRUE): + alternate_key=PERMANENT; + break; + case (FALSE): + alternate_key=TRUE; + break; + } + } else { + if (alternate_key) { + if(palmtc_buttons[row][col].alt_key >= 0) { + if (palmtc_buttons[row][col].flags&SHIFT_BIT) + input_report_key(keyboard_dev,KEY_LEFTSHIFT,1); + input_report_key(keyboard_dev, palmtc_buttons[row][col].alt_key, 1); + //DBG("alt: ms:%0lu char: %s\n",palmtc_buttons[row][col].tstamp,palmtc_buttons[row][col].desc); + input_sync(keyboard_dev); + } + if(! (alternate_key==PERMANENT)) { + alternate_key=FALSE; + } + } else { + if(palmtc_buttons[row][col].key >= 0) { + input_report_key(keyboard_dev, palmtc_buttons[row][col].key, 1); + input_sync(keyboard_dev); + } + } + } +#ifdef USE_DOUBLECLICK + } +#endif + } +#ifdef USE_RELEASE_TIMER + spin_lock_irqsave(&kbd_lock, flags); + if (timer_pending(&key_release_timer)) { + mod_timer (&key_release_timer,jiffies + msecs_to_jiffies(RELEASE_CHECK_TIME_MS)); + } else { + key_release_timer.expires = (jiffies + msecs_to_jiffies(RELEASE_CHECK_TIME_MS)); + add_timer (&key_release_timer); + } + spin_unlock_irqrestore(&kbd_lock, flags); +#endif + } else { // not pressed branch + if (palmtc_buttons[row][col].flags&PRESSED_BIT) { + + palmtc_buttons[row][col].flags ^= PRESSED_BIT; //xor bit to 0 + if (palmtc_buttons[row][col].key >= 0) { + input_report_key(keyboard_dev, palmtc_buttons[row][col].key, 0); + if ((palmtc_buttons[row][col].alt_key >= 0) && (palmtc_buttons[row][col].flags&SHIFT_BIT) ) + input_report_key(keyboard_dev,KEY_LEFTSHIFT,0); + input_report_key(keyboard_dev, palmtc_buttons[row][col].alt_key, 0); + //DBG("rel: %s i:%d\n",palmtc_buttons[row][col].desc,i); i=0; + input_sync(keyboard_dev); + } + } + } + } + // back to high for this row + spin_lock_irqsave(&kbd_lock, flags); + GPSR(row_gpio[row]) = GPIO_bit(row_gpio[row]); + spin_unlock_irqrestore(&kbd_lock, flags); + } + + // set row-gpios low again + spin_lock_irqsave(&kbd_lock, flags); + for (row=0; row<MAX_ROW;row++) { + GPCR(row_gpio[row]) = GPIO_bit(row_gpio[row]); + } + spin_unlock_irqrestore(&kbd_lock, flags); + + // restore irqs (cols) + for(col=0;col<MAX_COL;col++) { + set_irq_type (IRQ_GPIO(col_gpio[col]), IRQT_BOTHEDGE); + } +} + + +#ifdef USE_RELEASE_TIMER +/* + * This is called when the key release timer goes off. That's the + * only time it should be called. Check for changes in what keys + * are down. + */ +static void +release_timer_went_off(unsigned long unused) +{ +unsigned long flags; + + spin_lock_irqsave(&kbd_lock,flags); + + queue_work(palmtc_kbd_workqueue, &palmtc_kbd_task); + + spin_unlock_irqrestore(&kbd_lock, flags); +} +#endif + + +static int palmtc_kbd_probe(struct device *dev) +{ + int row, col; + unsigned long ret; + DBG("Probing device\n" ); + + keyboard_dev = input_allocate_device(); + + keyboard_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP); + + keyboard_dev->name = "Palm Tungsten C Keyboard"; + keyboard_dev->id.bustype = BUS_HOST; + + for(row=0;row<MAX_ROW;row++) { + for(col=0;col<MAX_COL;col++) { + if(palmtc_buttons[row][col].key >= 0) { + keyboard_dev->keybit[LONG(palmtc_buttons[row][col].key)] |= + BIT(palmtc_buttons[row][col].key); + } + if (palmtc_buttons[row][col].alt_key >= 0) { + keyboard_dev->keybit[LONG(palmtc_buttons[row][col].alt_key)] |= + BIT(palmtc_buttons[row][col].alt_key); + } + } + } + input_register_device(keyboard_dev); + + palmtc_kbd_workqueue = create_workqueue("palmtckbdw"); + INIT_WORK(&palmtc_kbd_task, palmtc_kbd_queuework, NULL); + +#ifdef USE_RELEASE_TIMER + init_timer (&key_release_timer); + key_release_timer.function = release_timer_went_off; +#endif + + for(col=0;col<MAX_COL;col++) { + ret = request_irq(IRQ_GPIO(col_gpio[col]), palmtc_kbd_irq_handler, + SA_SAMPLE_RANDOM,"palmtc-kbd", (void*)col_gpio[col]); + set_irq_type(IRQ_GPIO(col_gpio[col]), IRQT_BOTHEDGE); + } + return 0; +} + +static int palmtc_kbd_remove (struct device *dev) +{ + int col; + + DBG("removing device...\n"); + destroy_workqueue(palmtc_kbd_workqueue); + input_unregister_device(keyboard_dev); + + /* free irqs */ + for(col=0;col<MAX_COL;col++) { + free_irq(IRQ_GPIO(col_gpio[col]), (void*) col_gpio[col]); + } + +#ifdef USE_RELEASE_TIMER + del_timer (&key_release_timer); +#endif + + return 0; +} + +static struct device_driver palmtc_keyboard_driver = { + .name = "palmtc-kbd", + .bus = &platform_bus_type, + .probe = palmtc_kbd_probe, + .remove = palmtc_kbd_remove, +#ifdef CONFIG_PM + .suspend = NULL, + .resume = NULL, +#endif +}; + +static int __init palmtc_kbd_init(void) +{ + DBG("init\n"); + + return driver_register(&palmtc_keyboard_driver); +} + +static void __exit palmtc_kbd_cleanup(void) +{ + DBG("unloading...\n"); + + driver_unregister(&palmtc_keyboard_driver); +} + +module_init(palmtc_kbd_init); +module_exit(palmtc_kbd_cleanup); + +MODULE_AUTHOR("Holger Bocklet"); +MODULE_DESCRIPTION("Support for Palm TC Keyboard"); +MODULE_LICENSE("GPL"); Deleted: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_tsc2101.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_tsc2101.c 2006-10-13 19:51:42 UTC (rev 624) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/palmtc_tsc2101.c 2006-10-14 07:15:41 UTC (rev 625) @@ -1,236 +0,0 @@ -/* - * Support for TSC2101 - * - * Author: Vladimir Pouzanov <far...@gm...> - * - * Parts of the code from tsc2101 module by Richard Purdie <ri...@o-...> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - */ - -#include <linux/init.h> -#include <linux/kernel.h> -#include <asm/mach-types.h> -#include <asm/mach/arch.h> -#include <linux/interrupt.h> -#include <asm/arch/pxa-regs.h> -#include <asm/arch/pxa_keys.h> -#include <asm/arch/ssp.h> -#include <asm/arch/irqs.h> -#include <linux/sched.h> -#include <linux/workqueue.h> -#include <asm/hardware.h> -#include "tsc2101.h" - -#define PALMT3_GPIO_TSC2101_SS 26 -#define PALMT3_GPIO_TOUCHSCREEN 37 - -#define X_AXIS_MAX 3830 -#define X_AXIS_MIN 150 -#define Y_AXIS_MAX 3830 -#define Y_AXIS_MIN 190 -#define PRESSURE_MIN 0 -#define PRESSURE_MAX 20000 - -static struct ssp_dev palmt3_ssp_dev; -static struct workqueue_struct *palmt3_touchscreen_wq; - -struct tsc2101_ts_data { - int x,y,p; -}; -struct tsc2101_ts_data palmt3_ts_data; - -/*** TSC2101 I/O ops ***/ -int palmt3_tsc2101_send(int read, int command, int *values, int numval) -{ - int i; - - GPCR0 = GPIO_bit(PALMT3_GPIO_TSC2101_SS); - - ssp_write_word(&palmt3_ssp_dev, command | read); - /* dummy read */ - ssp_read_word(&palmt3_ssp_dev); - - for (i=0; i < numval; i++) { - if (read) { - ssp_write_word(&palmt3_ssp_dev, 0); - values[i]=ssp_read_word(&palmt3_ssp_dev); - } else { - ssp_write_word(&palmt3_ssp_dev, values[i]); - ssp_read_word(&palmt3_ssp_dev); - } - } - - GPSR0 = GPIO_bit(PALMT3_GPIO_TSC2101_SS); - return 0; -} - -/* FIXME static or not? */ -void palmt3_tsc2101_readdata(void *ts_data) -{ - int vx,vy,vp,z1,z2;//,fixadc=0; - u32 values[4],status; - vx=0; vy=0; vp=0; - palmt3_tsc2101_send(TSC2101_READ, TSC2101_REG_STATUS, &status, 1); - - // printk("status: %x ", status); - - if (status & (TSC2101_STATUS_XSTAT | TSC2101_STATUS_YSTAT | TSC2101_STATUS_Z1STAT - | TSC2101_STATUS_Z2STAT)) { - - /* Read X, Y, Z1 and Z2 */ - palmt3_tsc2101_send(TSC2101_READ, TSC2101_REG_X, &values[0], 4); - - vx=values[0]; - vy=values[1]; - z1=values[2]; - z2=values[3]; - - /* Calculate Pressure */ - if ((z1 != 0) && (vx!=0) && (vy!=0)) - vp = ((vx * (z2 -z1) / z1)); - else - vp=0; - } - /*printk("Touch at %d:%d raw, pressure: %d\n", vx,vy,vp);*/ - palmt3_ts_data.x = vx; - palmt3_ts_data.y = vy; - palmt3_ts_data.p = vp; - - /* - if (status & TSC2101_STATUS_BSTAT) { - devdata->platform->send(TSC2101_READ, TSC2101_REG_BAT, &values[0], 1); - devdata->miscdata.bat=values[0]; - fixadc=1; - } - if (status & TSC2101_STATUS_AX1STAT) { - devdata->platform->send(TSC2101_READ, TSC2101_REG_AUX1, &values[0], 1); - devdata->miscdata.aux1=values[0]; - fixadc=1; - } - if (status & TSC2101_STATUS_AX2STAT) { - devdata->platform->send(TSC2101_READ, TSC2101_REG_AUX2, &values[0], 1); - devdata->miscdata.aux2=values[0]; - fixadc=1; - } - if (status & TSC2101_STATUS_T1STAT) { - devdata->platform->send(TSC2101_READ, TSC2101_REG_TEMP1, &values[0], 1); - devdata->miscdata.temp1=values[0]; - fixadc=1; - } - if (status & TSC2101_STATUS_T2STAT) { - devdata->platform->send(TSC2101_READ, TSC2101_REG_TEMP2, &values[0], 1); - devdata->miscdata.temp2=values[0]; - fixadc=1; - } - if (fixadc) { - // Switch back to touchscreen autoscan - tsc2101_regwrite(devdata, TSC2101_REG_ADC, TSC2101_ADC_DEFAULT | TSC2101_ADC_PSM | TSC2101_ADC_ADMODE(0x2)); - } - */ -} - -/*** IRQ handlers ***/ -static void palmt3_touchscreen_handle(void* unused) -{ - palmt3_tsc2101_readdata(0); - // printk(KERN_INFO "palmt3_touchscreen_handle: Screen touched...\n"); -} - -irqreturn_t palmt3_touchscreen_irq(int irq, void *dev_id, struct pt_regs *regs) -{ - static int initialised = 0; - static struct work_struct task; - - if (initialised == 0) { - INIT_WORK(&task, palmt3_touchscreen_handle, NULL); - initialised = 1; - } else { - PREPARE_WORK(&task, palmt3_touchscreen_handle, NULL); - } - - queue_work(palmt3_touchscreen_wq, &task); - - return IRQ_HANDLED; -} - -/*** INIT/CLEANUP stuff ***/ -#define TSC_REGWRITE(r, x) regval = x; palmt3_tsc2101_send(TSC2101_WRITE, r, ®val, 1); -#define TSC2101_ADC_DEFAULT (TSC2101_ADC_RES(TSC2101_ADC_RES_12BITP) | TSC2101_ADC_AVG(TSC2101_ADC_4AVG) | TSC2101_ADC_CL(TSC2101_ADC_CL_1MHZ_12BIT) | TSC2101_ADC_PV(TSC2101_ADC_PV_500us) | TSC2101_ADC_AVGFILT_MEAN) - -static int __init palmt3_tsc2101_init(void) -{ - int regval; - printk(KERN_INFO "palmt3_tsc2101: init\n"); - - printk(KERN_WARNING "FIXME: Resetting SSP, but that's bootloader job\n"); - SSCR0 &= ~SSCR0_SSE; - SSCR1 = SSCR1 & 0x3FFC; - - if (ssp_init(&palmt3_ssp_dev, 1, NULL)) - printk(KERN_ERR "palmt3_tsc2101: Unable to register SSP1 handler!\n"); - else { - // ssp_disable(&palmt3_ssp_dev); - // ssp_config(&palmt3_ssp_dev, (SSCR0_Motorola | (SSCR0_DSS & 0x0f )), SSCR1_SPH, 0, 0); - ssp_enable(&palmt3_ssp_dev); - // hx2750_set_egpio(HX2750_EGPIO_TSC_PWR); - printk(KERN_INFO "palmt3_tsc2101: SSP initialized\n"); - } - - // reset TSC2101 - TSC_REGWRITE(TSC2101_REG_ADC, 0x4000); - printk(KERN_INFO "palmt3_tsc2101: re-enabling TSC2101\n"); - /* PINTDAV is data available only */ - TSC_REGWRITE(TSC2101_REG_STATUS, 0x4000); - - /* disable buffer mode */ - TSC_REGWRITE(TSC2101_REG_BUFMODE, 0x0); - - /* use internal reference, 100 usec power-up delay, - * power down between conversions, 1.25V internal reference */ - // TSC_REGWRITE(TSC2101_REG_REF, 0x16); - - /* enable touch detection, 84usec precharge time, 32 usec sense time */ - TSC_REGWRITE(TSC2101_REG_CONFIG, 0x08); - - /* 3 msec conversion delays */ - TSC_REGWRITE(TSC2101_REG_DELAY, 0x0900); - - /* - * TSC2101-controlled conversions - * 12-bit samples - * continuous X,Y,Z1,Z2 scan mode - * average (mean) 4 samples per coordinate - * 1 MHz internal conversion clock - * 500 usec panel voltage stabilization delay - */ - TSC_REGWRITE(TSC2101_REG_ADC, TSC2101_ADC_DEFAULT | TSC2101_ADC_PSM | TSC2101_ADC_ADMODE(0x2)); - -#if 0 - palmt3_touchscreen_wq = create_workqueue("T3 Touchscreen"); - if(request_irq(IRQ_GPIO(PALMT3_GPIO_TOUCHSCREEN), palmt3_touchscreen_irq, - SA_SAMPLE_RANDOM, "T3 Touchscreen GPIO", NULL)) { - printk(KERN_ERR "palmt3_tsc2101: Unable to register GPIO handler for %d\n", PALMT3_GPIO_TSC2101_SS); - } else { - set_irq_type (IRQ_GPIO(PALMT3_GPIO_TOUCHSCREEN), IRQT_BOTHEDGE); - /* FIXME is it really bothedge? Should check PalmOS */ - - printk(KERN_INFO "palmt3_tsc2101: Touchscreen GPIO registered\n"); - } -#endif - - return 0; -} - -static void __exit palmt3_tsc2101_cleanup(void) -{ - /* FIXME Unreg stuff */ - printk(KERN_INFO "palmt3_tsc2101: cleanup\n"); -} - -module_init(palmt3_tsc2101_init); -module_exit(palmt3_tsc2101_cleanup); - Deleted: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/tsc2101.h =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/tsc2101.h 2006-10-13 19:51:42 UTC (rev 624) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtc/tsc2101.h 2006-10-14 07:15:41 UTC (rev 625) @@ -1,154 +0,0 @@ -/* - * TI TSC2101 Hardware definitions - * - * Copyright 2005 Openedhand Ltd. - * - * Author: Richard Purdie <ri...@o-...> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - */ - -/* Address constructs */ -#define TSC2101_READ (1 << 15) /* Read Register */ -#define TSC2101_WRITE (0 << 15) /* Write Register */ -#define TSC2101_PAGE(x) ((x & 0xf) << 11) /* Memory Page to access */ -#define TSC2101_ADDR(x) ((x & 0x3f) << 5) /* Memory Address to access */ - -#define TSC2101_P0_REG(x) (TSC2101_PAGE(0) | TSC2101_ADDR(x)) -#define TSC2101_P1_REG(x) (TSC2101_PAGE(1) | TSC2101_ADDR(x)) -#define TSC2101_P2_REG(x) (TSC2101_PAGE(2) | TSC2101_ADDR(x)) -#define TSC2101_P3_REG(x) (TSC2101_PAGE(3) | TSC2101_ADDR(x)) - -/* Page 0 Registers */ -#define TSC2101_REG_X TSC2101_P0_REG(0x0) -#define TSC2101_REG_Y TSC2101_P0_REG(0x1) -#define TSC2101_REG_Z1 TSC2101_P0_REG(0x2) -#define TSC2101_REG_Z2 TSC2101_P0_REG(0x3) -#define TSC2101_REG_BAT TSC2101_P0_REG(0x5) -#define TSC2101_REG_AUX1 TSC2101_P0_REG(0x7) -#define TSC2101_REG_AUX2 TSC2101_P0_REG(0x8) -#define TSC2101_REG_TEMP1 TSC2101_P0_REG(0x9) -#define TSC2101_REG_TEMP2 TSC2101_P0_REG(0xa) - -/* Page 1 Registers */ -#define TSC2101_REG_ADC TSC2101_P1_REG(0x0) -#define TSC2101_REG_STATUS TSC2101_P1_REG(0x1) -#define TSC2101_REG_BUFMODE TSC2101_P1_REG(0x2) -#define TSC2101_REG_REF TSC2101_P1_REG(0x3) -#define TSC2101_REG_RESETCTL TSC2101_P1_REG(0x4) -#define TSC2101_REG_CONFIG TSC2101_P1_REG(0x5) -#define TSC2101_REG_TEMPMAX TSC2101_P1_REG(0x6) -#define TSC2101_REG_TEMPMIN TSC2101_P1_REG(0x7) -#define TSC2101_REG_AUX1MAX TSC2101_P1_REG(0x8) -#define TSC2101_REG_AUX1MIN TSC2101_P1_REG(0x9) -#define TSC2101_REG_AUX2MAX TSC2101_P1_REG(0xa) -#define TSC2101_REG_AUX2MIN TSC2101_P1_REG(0xb) -#define TSC2101_REG_MEASURE TSC2101_P1_REG(0xc) -#define TSC2101_REG_DELAY TSC2101_P1_REG(0xd) - -/* Page 2 Registers */ -#define TSC2101_REG_AUDIOCON1 TSC2101_P2_REG(0x0) -#define TSC2101_REG_HEADSETPGA TSC2101_P2_REG(0x1) -#define TSC2101_REG_DACPGA TSC2101_P2_REG(0x2) -#define TSC2101_REG_MIXERPGA TSC2101_P2_REG(0x3) -#define TSC2101_REG_AUDIOCON2 TSC2101_P2_REG(0x4) -#define TSC2101_REG_PWRDOWN TSC2101_P2_REG(0x5) -#define TSC2101_REG_AUDIOCON3 TSC2101_P2_REG(0x6) -#define TSC2101_REG_DAEFC(x) TSC2101_P2_REG(0x7+x) -#define TSC2101_REG_PLL1 TSC2101_P2_REG(0x1b) -#define TSC2101_REG_PLL2 TSC2101_P2_REG(0x1c) -#define TSC2101_REG_AUDIOCON4 TSC2101_P2_REG(0x1d) -#define TSC2101_REG_HANDSETPGA TSC2101_P2_REG(0x1e) -#define TSC2101_REG_BUZZPGA TSC2101_P2_REG(0x1f) -#define TSC2101_REG_AUDIOCON5 TSC2101_P2_REG(0x20) -#define TSC2101_REG_AUDIOCON6 TSC2101_P2_REG(0x21) -#define TSC2101_REG_AUDIOCON7 TSC2101_P2_REG(0x22) -#define TSC2101_REG_GPIO TSC2101_P2_REG(0x23) -#define TSC2101_REG_AGCCON TSC2101_P2_REG(0x24) -#define TSC2101_REG_DRVPWRDWN TSC2101_P2_REG(0x25) -#define TSC2101_REG_MICAGC TSC2101_P2_REG(0x26) -#define TSC2101_REG_CELLAGC TSC2101_P2_REG(0x27) - -/* Page 2 Registers */ -#define TSC2101_REG_BUFLOC(x) TSC2101_P3_REG(x) - -/* Status Register Masks */ - -#define TSC2101_STATUS_T2STAT (1 << 1) -#define TSC2101_STATUS_T1STAT (1 << 2) -#define TSC2101_STATUS_AX2STAT (1 << 3) -#define TSC2101_STATUS_AX1STAT (1 << 4) -#define TSC2101_STATUS_BSTAT (1 << 6) -#define TSC2101_STATUS_Z2STAT (1 << 7) -#define TSC2101_STATUS_Z1STAT (1 << 8) -#define TSC2101_STATUS_YSTAT (1 << 9) -#define TSC2101_STATUS_XSTAT (1 << 10) -#define TSC2101_STATUS_DAVAIL (1 << 11) -#define TSC2101_STATUS_HCTLM (1 << 12) -#define TSC2101_STATUS_PWRDN (1 << 13) -#define TSC2101_STATUS_PINTDAV_SHIFT (14) -#define TSC2101_STATUS_PINTDAV_MASK (0x03) - - - - - - - -#define TSC2101_ADC_PSM (1<<15) // pen status mode on ctrlreg adc -#define TSC2101_ADC_STS (1<<14) // stop continuous scanning. -#define TSC2101_ADC_AD3 (1<<13) -#define TSC2101_ADC_AD2 (1<<12) -#define TSC2101_ADC_AD1 (1<<11) -#define TSC2101_ADC_AD0 (1<<10) -#define TSC2101_ADC_ADMODE(x) ((x<<10) & TSC2101_ADC_ADMODE_MASK) -#define TSC2101_ADC_ADMODE_MASK (0xf<<10) - -#define TSC2101_ADC_RES(x) ((x<<8) & TSC2101_ADC_RES_MASK ) -#define TSC2101_ADC_RES_MASK (0x3<<8) -#define TSC2101_ADC_RES_12BITP (0) // 12-bit ADC resolution (default) -#define TSC2101_ADC_RES_8BIT (1) // 8-bit ADC resolution -#define TSC2101_ADC_RES_10BIT (2) // 10-bit ADC resolution -#define TSC2101_ADC_RES_12BIT (3) // 12-bit ADC resolution - -#define TSC2101_ADC_AVG(x) ((x<<6) & TSC2101_ADC_AVG_MASK ) -#define TSC2101_ADC_AVG_MASK (0x3<<6) -#define TSC2101_ADC_NOAVG (0) // a-d does no averaging -#define TSC2101_ADC_4AVG (1) // a-d does averaging of 4 samples -#define TSC2101_ADC_8AVG (2) // a-d does averaging of 8 samples -#define TSC2101_ADC_16AVG (3) // a-d does averaging of 16 samples - -#define TSC2101_ADC_CL(x) ((x<<4) & TSC2101_ADC_CL_MASK ) -#define TSC2101_ADC_CL_MASK (0x3<<4) -#define TSC2101_ADC_CL_8MHZ_8BIT (0) -#define TSC2101_ADC_CL_4MHZ_10BIT (1) -#define TSC2101_ADC_CL_2MHZ_12BIT (2) -#define TSC2101_ADC_CL_1MHZ_12BIT (3) -#define TSC2101_ADC_CL0 (1<< 4) - -/* ADC - Panel Voltage Stabilisation Time */ -#define TSC2101_ADC_PV(x) ((x<<1) & TSC2101_ADC_PV_MASK ) -#define TSC2101_ADC_PV_MASK (0x7<<1) -#define TSC2101_ADC_PV_100ms (0x7) /* 100ms */ -#define TSC2101_ADC_PV_50ms (0x6) /* 50ms */ -#define TSC2101_ADC_PV_10ms (0x5) /* 10ms */ -#define TSC2101_ADC_PV_5ms (0x4) /* 5ms */ -#define TSC2101_ADC_PV_1ms (0x3) /* 1ms */ -#define TSC2101_ADC_PV_500us (0x2) /* 500us */ -#define TSC2101_ADC_PV_100us (0x1) /* 100us */ -#define TSC2101_ADC_PV_0s (0x0) /* 0s */ - -#define TSC2101_ADC_AVGFILT_MEAN (0<<0) /* Mean Average Filter */ -#define TSC2101_ADC_AVGFILT_MEDIAN (1<<0) /* Median Average Filter */ - -#define TSC2101_ADC_x (1<< 0) // don't care - -#define TSC2101_CONFIG_DAV (1<<6) - -#define TSC2101_KEY_STC (1<<15) // keypad status -#define TSC2101_KEY_SCS (1<<14) // keypad scan status - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2006-10-13 19:51:56
|
Revision: 624 http://svn.sourceforge.net/hackndev/?rev=624&view=rev Author: magon Date: 2006-10-13 12:51:42 -0700 (Fri, 13 Oct 2006) Log Message: ----------- palmt3: Sound fixed, it is general ARM DMA alloc error and this is just work-around Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mm/consistent.c linux4palm/linux/trunk/drivers/soc/tsc2101.c linux4palm/linux/trunk/sound/core/pcm_native.c Modified: linux4palm/linux/trunk/arch/arm/mm/consistent.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mm/consistent.c 2006-10-12 17:48:14 UTC (rev 623) +++ linux4palm/linux/trunk/arch/arm/mm/consistent.c 2006-10-13 19:51:42 UTC (rev 624) @@ -257,7 +257,8 @@ pte = consistent_pte[idx] + off; c->vm_pages = page; - split_page(page, order); + if(!PageCompound(page)) + split_page(page, order); /* * Set the "dma handle" Modified: linux4palm/linux/trunk/drivers/soc/tsc2101.c =================================================================== --- linux4palm/linux/trunk/drivers/soc/tsc2101.c 2006-10-12 17:48:14 UTC (rev 623) +++ linux4palm/linux/trunk/drivers/soc/tsc2101.c 2006-10-13 19:51:42 UTC (rev 624) @@ -858,8 +858,7 @@ int ret; ret = driver_register(&tsc2101_driver); /* Sound driver */ - printk(KERN_ERR "!! SOUND CODE DISABLED !! FIXME !!\n"); - /* snd_pxa2xx_i2sound_card_activate(&tsc2101_audio); */ + snd_pxa2xx_i2sound_card_activate(&tsc2101_audio); return ret; } Modified: linux4palm/linux/trunk/sound/core/pcm_native.c =================================================================== --- linux4palm/linux/trunk/sound/core/pcm_native.c 2006-10-12 17:48:14 UTC (rev 623) +++ linux4palm/linux/trunk/sound/core/pcm_native.c 2006-10-13 19:51:42 UTC (rev 624) @@ -3110,7 +3110,7 @@ return NOPAGE_OOM; } else { vaddr = runtime->dma_area + offset; - page = virt_to_page(vaddr); + page = vmalloc_to_page(vaddr); } get_page(page); if (type) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2006-10-12 17:48:30
|
Revision: 623 http://svn.sourceforge.net/hackndev/?rev=623&view=rev Author: happy-slapin Date: 2006-10-12 10:48:14 -0700 (Thu, 12 Oct 2006) Log Message: ----------- zire72: Found LED GPIO, used as debugging. zire72: Finzlly fixed support for keypad. Now it really works. zire72: updated GPIO map in SVN for proper awk parsing. ALL: semi-applied PXA27 udc-ep and overlays patches from OpenZaurus Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmz72_defconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Kconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/gpio_map.txt linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmz72-gpio.h linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa-regs.h Modified: linux4palm/linux/trunk/arch/arm/configs/palmz72_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmz72_defconfig 2006-10-06 17:50:43 UTC (rev 622) +++ linux4palm/linux/trunk/arch/arm/configs/palmz72_defconfig 2006-10-12 17:48:14 UTC (rev 623) @@ -1,13 +1,15 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.16-hnd0 -# Thu Sep 28 19:45:51 2006 +# Linux kernel version: 2.6.17-hnd0 +# Thu Oct 12 20:26:28 2006 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 # # Code maturity level options @@ -22,14 +24,16 @@ # CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y -# CONFIG_SWAP is not set -# CONFIG_SYSVIPC is not set -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_SYSCTL is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_SYSCTL=y # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set # CONFIG_MINIMAL_OOPS is not set +# CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_UID16=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y @@ -43,15 +47,11 @@ CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y -# CONFIG_SHMEM is not set +CONFIG_SHMEM=y CONFIG_USELIB=y # CONFIG_CORE_DUMP is not set -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 CONFIG_SLAB=y -CONFIG_TINY_SHMEM=y +# CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set @@ -61,7 +61,6 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y @@ -69,6 +68,7 @@ # # Block layer # +# CONFIG_BLK_DEV_IO_TRACE is not set # # IO Schedulers @@ -76,7 +76,7 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y # CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set +CONFIG_IOSCHED_CFQ=y CONFIG_DEFAULT_AS=y # CONFIG_DEFAULT_DEADLINE is not set # CONFIG_DEFAULT_CFQ is not set @@ -90,11 +90,13 @@ # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set @@ -114,6 +116,7 @@ # Intel PXA2xx Implementations # # CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set # CONFIG_MACH_MAINSTONE is not set # CONFIG_ARCH_PXA_IDP is not set # CONFIG_ARCH_ESERIES is not set @@ -127,6 +130,12 @@ # CONFIG_MACH_HX2750 is not set # CONFIG_ARCH_H5400 is not set # CONFIG_MACH_HIMALAYA is not set +# CONFIG_MACH_HTCUNIVERSAL is not set +# CONFIG_MACH_HTCALPINE is not set +# CONFIG_MACH_MAGICIAN is not set +# CONFIG_MACH_HTCAPACHE is not set +# CONFIG_MACH_BLUEANGEL is not set +# CONFIG_MACH_HTCBEETLES is not set # CONFIG_ARCH_AXIMX5 is not set # CONFIG_ARCH_AXIMX3 is not set # CONFIG_ARCH_ROVERP1 is not set @@ -137,10 +146,10 @@ # CONFIG_MACH_XSCALE_PALMTT5 is not set # CONFIG_MACH_XSCALE_PALMTX is not set CONFIG_MACH_PALMZ72=y -CONFIG_PALMZ72_BUTTONS=y # CONFIG_MACH_OMAP_PALMTC is not set # CONFIG_PXA_SHARPSL is not set CONFIG_PXA27x=y +CONFIG_PXA_RTC_EPOCH=1970 # CONFIG_SA1100_H3100 is not set # CONFIG_SA1100_H3600 is not set # CONFIG_SA1100_H3800 is not set @@ -166,6 +175,7 @@ CONFIG_ARM_THUMB=y # CONFIG_ARMBOOT_PROC is not set CONFIG_XSCALE_PMU=y +# CONFIG_KEXEC is not set # # Compaq/iPAQ Platforms @@ -194,8 +204,8 @@ # CONFIG_PREEMPT=y # CONFIG_NO_IDLE_HZ is not set -CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y +CONFIG_HZ=100 +# CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -228,7 +238,7 @@ # At least one emulation must be selected # CONFIG_FPE_NWFPE=y -CONFIG_FPE_NWFPE_XP=y +# CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set # @@ -237,6 +247,7 @@ CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set # # Power management options @@ -268,12 +279,15 @@ # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y # CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set # CONFIG_NETFILTER is not set # @@ -365,7 +379,13 @@ # # CONFIG_BT_HCIUART is not set # CONFIG_BT_HCIVHCI is not set -# CONFIG_IEEE80211 is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +# CONFIG_IEEE80211_CRYPT_WEP is not set +# CONFIG_IEEE80211_CRYPT_CCMP is not set +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +CONFIG_WIRELESS_EXT=y # # Device Drivers @@ -404,9 +424,7 @@ CONFIG_BLK_DEV_LOOP=m # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 +# CONFIG_BLK_DEV_RAM is not set CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -517,10 +535,19 @@ # # Input Device Drivers # -# CONFIG_INPUT_KEYBOARD is not set +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +CONFIG_KEYBOARD_PXA27x=y +# CONFIG_KEYBOARD_PALMIR is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_ADS7846 is not set # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set @@ -536,7 +563,10 @@ # # Hardware I/O ports # -# CONFIG_SERIO is not set +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set # CONFIG_GAMEPORT is not set # @@ -607,10 +637,20 @@ # # SPI support # -# CONFIG_SPI is not set -# CONFIG_SPI_MASTER is not set +CONFIG_SPI=y +CONFIG_SPI_MASTER=y # +# SPI Master Controller Drivers +# +# CONFIG_SPI_BITBANG is not set +CONFIG_SPI_PXA2XX=m + +# +# SPI Protocol Masters +# + +# # Dallas's 1-wire bus # # CONFIG_W1 is not set @@ -642,13 +682,23 @@ # CONFIG_MCP is not set # -# Multimedia Capabilities Port drivers +# LED devices # +# CONFIG_NEW_LEDS is not set # +# LED drivers +# + +# +# LED Triggers +# + +# # Multimedia devices # # CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_V4L2=y # # Digital Video Broadcasting Devices @@ -663,6 +713,7 @@ CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set +CONFIG_FB_FIRMWARE_EDID=y # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_IMAGEON is not set @@ -697,7 +748,7 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_DEVICE=y -CONFIG_BACKLIGHT_PALMZ72=y +# CONFIG_BACKLIGHT_CORGI is not set CONFIG_BACKLIGHT_PXAPWM=y # CONFIG_LCD_CLASS_DEVICE is not set @@ -716,8 +767,10 @@ CONFIG_SND_OSSEMUL=y # CONFIG_SND_MIXER_OSS is not set CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y CONFIG_SND_VERBOSE_PRINTK=y # CONFIG_SND_DEBUG is not set @@ -748,6 +801,7 @@ # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_EHCI is not set # CONFIG_USB is not set # @@ -769,6 +823,7 @@ # CONFIG_USB_GADGET_MQ11XX is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set # CONFIG_USB_GADGET_DUALSPEED is not set # CONFIG_USB_ZERO is not set @@ -782,7 +837,7 @@ # # MMC/SD Card support # -CONFIG_MMC=y +CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=m CONFIG_MMC_PXA=m @@ -792,11 +847,26 @@ # CONFIG_MMC_WBSD_PALMT3 is not set # -# LED devices +# Real Time Clock # -# CONFIG_CLASS_LEDS is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=m # +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_DEV=m + +# +# RTC drivers +# +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=m +# CONFIG_RTC_DRV_TEST is not set + +# # File systems # CONFIG_EXT2_FS=m @@ -841,7 +911,6 @@ CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set # CONFIG_CONFIGFS_FS is not set # @@ -902,7 +971,7 @@ # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set +CONFIG_NLS_CODEPAGE_866=m # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set @@ -924,7 +993,7 @@ # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set +CONFIG_NLS_KOI8_R=m # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=m @@ -942,7 +1011,9 @@ # CONFIG_DEBUG_KERNEL is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_FS is not set CONFIG_FRAME_POINTER=y +# CONFIG_UNWIND_INFO is not set # CONFIG_DEBUG_USER is not set # Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Kconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Kconfig 2006-10-06 17:50:43 UTC (rev 622) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Kconfig 2006-10-12 17:48:14 UTC (rev 623) @@ -1,5 +1,6 @@ menuconfig MACH_PALMZ72 bool "Palm Zire 72" select PXA27x + select KEYBOARD_PXA27x help This enables support for Palm Zire 72 handheld. Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/gpio_map.txt =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/gpio_map.txt 2006-10-06 17:50:43 UTC (rev 622) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/gpio_map.txt 2006-10-12 17:48:14 UTC (rev 623) @@ -1,104 +1,104 @@ GPIO pin Level Dir Function -GPIO 0 0 I 00 -GPIO 1 1 I 00 -GPIO 2 1 O 00 -GPIO 3 1 O 00 -GPIO 4 1 O 00 -GPIO 5 1 I 00 -GPIO 6 1 I 00 -GPIO 7 1 I 00 -GPIO 8 1 I 00 -GPIO 9 0 I 00 -GPIO 10 1 I 00 -GPIO 11 0 I 00 -GPIO 12 1 I 00 -GPIO 13 0 I 02 KP_DKIN7 // ??? -GPIO 14 0 I 00 -GPIO 15 0 I 00 -GPIO 16 1 O 02 PWM_OUT0 -GPIO 17 1 O 00 -GPIO 18 0 O 00 -GPIO 19 1 O 00 -GPIO 20 1 O 00 -GPIO 21 0 O 00 -GPIO 22 0 O 00 -GPIO 23 0 O 02 SSPSCLK -GPIO 24 1 O 02 SSPSFRM -GPIO 25 0 O 02 SSPSTXD -GPIO 26 1 I 01 -GPIO 27 0 I 00 -GPIO 28 0 I 01 AC97_BITCLK // AC97 -GPIO 29 0 I 01 AC97_SDATA_IN0 // AC97 -GPIO 30 0 O 02 AC97_SDATA_OUT // AC97 -GPIO 31 0 O 02 AC97_SYNC // AC97 -GPIO 32 0 O 00 -GPIO 33 0 O 00 -GPIO 34 1 I 00 -GPIO 35 1 I 01 FFCTS -GPIO 36 1 O 00 -GPIO 37 1 I 00 -GPIO 38 0 O 00 -GPIO 39 0 O 00 -GPIO 40 0 O 00 -GPIO 41 1 O 02 KP_MKOUT7 // ?? -GPIO 42 1 I 01 IrDA -GPIO 43 1 O 02 IrDA -GPIO 44 1 I 01 BTCTS // blutooth -GPIO 45 1 O 02 BTRTS // blutooth -GPIO 46 1 I 02 STD_RXD -GPIO 47 0 O 01 STD_TXD -GPIO 48 1 I 01 CIF_DD5 -GPIO 49 0 O 00 -GPIO 50 1 I 01 CIF_DD3 -GPIO 51 1 I 01 CIF_DD2 -GPIO 52 1 I 01 CIF_DD4 -GPIO 53 0 O 02 CIF_MCLK -GPIO 54 1 I 03 CIF_PCLK -GPIO 55 0 I 01 CIF_DD1 -GPIO 56 1 O 00 -GPIO 57 0 O 00 -GPIO 58 1 O 02 LDD0 -GPIO 59 1 O 02 LDD1 -GPIO 60 1 O 02 LDD2 -GPIO 61 1 O 02 LDD3 -GPIO 62 1 O 02 LDD4 -GPIO 63 1 O 02 LDD5 -GPIO 64 1 O 02 LDD6 -GPIO 65 1 O 02 LDD7 -GPIO 66 1 O 02 LDD8 -GPIO 67 1 O 02 LDD9 -GPIO 68 1 O 02 LDD10 -GPIO 69 1 O 02 LDD11 -GPIO 70 1 O 02 LDD12 -GPIO 71 1 O 02 LDD13 -GPIO 72 1 O 02 LDD14 -GPIO 73 1 O 02 LDD15 -GPIO 74 1 O 02 L_LCLK_RD -GPIO 75 1 O 02 L_LCLK_A0 -GPIO 76 1 O 02 L_PCLK_WR -GPIO 77 1 O 02 L_BIAS -GPIO 78 0 O 00 -GPIO 79 0 O 00 -GPIO 80 1 I 00 -GPIO 81 1 I 02 CIF_DD0 -GPIO 82 0 O 00 -GPIO 83 0 O 00 -GPIO 84 1 I 03 CIF_FV -GPIO 85 1 I 03 CIF_LV -GPIO 86 1 I 00 -GPIO 87 0 I 00 -GPIO 88 0 O 00 -GPIO 89 0 O 01 AC97_SYSCLK -GPIO 90 0 O 00 -GPIO 91 1 O 00 -GPIO 92 0 O 00 -GPIO 93 1 I 02 CIF_DD6 -GPIO 94 0 I 00 -GPIO 95 0 O 00 -GPIO 96 1 O 00 -GPIO 97 0 I 03 KP_MKIN3 -GPIO 98 1 O 00 -GPIO 99 1 I 00 +GPIO_0 0 I 00 +GPIO_1 1 I 00 +GPIO_2 1 O 00 SYS_EN +GPIO_3 1 O 00 +GPIO_4 1 O 00 +GPIO_5 1 I 00 PWR_CAP<0> +GPIO_6 1 I 00 PWR_CAP<1> +GPIO_7 1 I 00 PWR_CAP<2> +GPIO_8 1 I 00 PWR_CAP<3> +GPIO_9 0 I 00 +GPIO_10 1 I 00 +GPIO_11 0 I 00 +GPIO_12 1 I 00 +GPIO_13 0 I 02 KP_DKIN7 // ??? +GPIO_14 0 I 00 +GPIO_15 0 I 00 USB_PULLUP +GPIO_16 1 O 02 PWM_OUT0 +GPIO_17 1 O 00 +GPIO_18 0 O 00 +GPIO_19 1 O 00 +GPIO_20 1 O 00 +GPIO_21 0 O 00 +GPIO_22 0 O 00 +GPIO_23 0 O 02 SSPSCLK +GPIO_24 1 O 02 SSPSFRM +GPIO_25 0 O 02 SSPSTXD +GPIO_26 1 I 01 SSPRXD +GPIO_27 0 I 00 WM9712_IRQ +GPIO_28 0 I 01 AC97_BITCLK // AC97 +GPIO_29 0 I 01 AC97_SDATA_IN0 // AC97 +GPIO_30 0 O 02 AC97_SDATA_OUT // AC97 +GPIO_31 0 O 02 AC97_SYNC // AC97 +GPIO_32 0 O 00 +GPIO_33 0 O 00 +GPIO_34 1 I 00 +GPIO_35 1 I 01 FFCTS +GPIO_36 1 O 00 +GPIO_37 1 I 00 +GPIO_38 0 O 00 +GPIO_39 0 O 00 +GPIO_40 0 O 00 +GPIO_41 1 O 02 KP_MKOUT7 // ?? +GPIO_42 1 I 01 IrDA +GPIO_43 1 O 02 IrDA +GPIO_44 1 I 01 BTCTS // blutooth +GPIO_45 1 O 02 BTRTS // blutooth +GPIO_46 1 I 02 STD_RXD +GPIO_47 0 O 01 STD_TXD +GPIO_48 1 I 01 CIF_DD5 +GPIO_49 0 O 00 +GPIO_50 1 I 01 CIF_DD3 +GPIO_51 1 I 01 CIF_DD2 +GPIO_52 1 I 01 CIF_DD4 +GPIO_53 0 O 02 CIF_MCLK +GPIO_54 1 I 03 CIF_PCLK +GPIO_55 0 I 01 CIF_DD1 +GPIO_56 1 O 00 +GPIO_57 0 O 00 +GPIO_58 1 O 02 LDD0 +GPIO_59 1 O 02 LDD1 +GPIO_60 1 O 02 LDD2 +GPIO_61 1 O 02 LDD3 +GPIO_62 1 O 02 LDD4 +GPIO_63 1 O 02 LDD5 +GPIO_64 1 O 02 LDD6 +GPIO_65 1 O 02 LDD7 +GPIO_66 1 O 02 LDD8 +GPIO_67 1 O 02 LDD9 +GPIO_68 1 O 02 LDD10 +GPIO_69 1 O 02 LDD11 +GPIO_70 1 O 02 LDD12 +GPIO_71 1 O 02 LDD13 +GPIO_72 1 O 02 LDD14 +GPIO_73 1 O 02 LDD15 +GPIO_74 1 O 02 L_LCLK_RD +GPIO_75 1 O 02 L_LCLK_A0 +GPIO_76 1 O 02 L_PCLK_WR +GPIO_77 1 O 02 L_BIAS +GPIO_78 0 O 00 +GPIO_79 0 O 00 +GPIO_80 1 I 00 +GPIO_81 1 I 02 CIF_DD0 +GPIO_82 0 O 00 +GPIO_83 0 O 00 +GPIO_84 1 I 03 CIF_FV +GPIO_85 1 I 03 CIF_LV +GPIO_86 1 I 00 +GPIO_87 0 I 00 +GPIO_88 0 O 00 +GPIO_89 0 O 01 AC97_SYSCLK +GPIO_90 0 O 00 +GPIO_91 1 O 00 +GPIO_92 0 O 00 +GPIO_93 1 I 02 CIF_DD6 +GPIO_94 0 I 00 +GPIO_95 0 O 00 USB_POWER +GPIO_96 1 O 00 +GPIO_97 0 I 03 KP_MKIN3 +GPIO_98 1 O 00 +GPIO_99 1 I 00 GPIO100 0 I 01 KP_MKIN0 GPIO101 0 I 01 KP_MKIN1 GPIO102 0 I 01 KP_MKIN2 Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2006-10-06 17:50:43 UTC (rev 622) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2006-10-12 17:48:14 UTC (rev 623) @@ -54,6 +54,9 @@ #define IR_TRANSCEIVER_OFF \ SET_HX4700_GPIO_N(IR_ON, 0) +#define LED_ON SET_GPIO(GPIO_NR_ZIRE72_LED,1) +#define LED_OFF SET_GPIO(GPIO_NR_ZIRE72_LED,0) + static int palmz72_udc_is_connected(void) { int ret = !(GET_GPIO(GPIO_NR_PALMZ72_USB_DETECT)); @@ -293,10 +296,12 @@ pxa_gpio_mode(GPIO29_SDATA_IN_AC97_MD); pxa_gpio_mode(GPIO30_SDATA_OUT_AC97_MD); pxa_gpio_mode(GPIO31_SYNC_AC97_MD); + pxa_gpio_mode(GPIO_NR_ZIRE72_LED_MD); // testing // GPSR(91) = GPIO_bit(91); - + LED_ON; + switch(palmz72lcd.bpp) { case 8: @@ -316,6 +321,7 @@ palmlz72_irda_set_txrx (NULL, PXA_SERIAL_TX); #endif #endif + LED_OFF; } MACHINE_START(PALMZ72, "Palm Zire 72") Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmz72-gpio.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmz72-gpio.h 2006-10-06 17:50:43 UTC (rev 622) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmz72-gpio.h 2006-10-12 17:48:14 UTC (rev 623) @@ -19,6 +19,8 @@ #define GPIO_NR_ZIRE72_KP_MKOUT1 104 #define GPIO_NR_ZIRE72_KP_MKOUT2 105 +#define GPIO_NR_ZIRE72_LED 88 +#define GPIO_NR_ZIRE72_LED_MD GPIO_NR_ZIRE72_LED #define GPIO_NR_ZIRE72_KP_MKIN3_MD (GPIO_NR_ZIRE72_KP_MKIN3 | GPIO_ALT_FN_3_IN) #define GPIO_NR_ZIRE72_KP_MKIN0_MD (GPIO_NR_ZIRE72_KP_MKIN0 | GPIO_ALT_FN_1_IN) Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa-regs.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa-regs.h 2006-10-06 17:50:43 UTC (rev 622) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa-regs.h 2006-10-12 17:48:14 UTC (rev 623) @@ -101,6 +101,7 @@ #define DCSR_CLRCMPST (1 << 24) /* Clear Descriptor Compare Status */ #define DCSR_CMPST (1 << 10) /* The Descriptor Compare Status */ #define DCSR_ENRINTR (1 << 9) /* The end of Receive */ +#define DCSR_EORINTR (1 << 9) /* The end of Receive */ #endif #define DCSR_REQPEND (1 << 8) /* Request Pending (read-only) */ #define DCSR_STOPSTATE (1 << 3) /* Stop State (read-only) */ @@ -800,11 +801,18 @@ #define UDC_INT_PACKETCMP (0x1) #define UDCICR_INT(n,intr) (((intr) & 0x03) << (((n) & 0x0F) * 2)) +/* Older defines, do not use. */ #define UDCICR1_IECC (1 << 31) /* IntEn - Configuration Change */ #define UDCICR1_IESOF (1 << 30) /* IntEn - Start of Frame */ #define UDCICR1_IERU (1 << 29) /* IntEn - Resume */ #define UDCICR1_IESU (1 << 28) /* IntEn - Suspend */ #define UDCICR1_IERS (1 << 27) /* IntEn - Reset */ +/* New defines. */ +#define UDCISR1_IRCC (1 << 31) /* IntEn - Configuration Change */ +#define UDCISR1_IRSOF (1 << 30) /* IntEn - Start of Frame */ +#define UDCISR1_IRRU (1 << 29) /* IntEn - Resume */ +#define UDCISR1_IRSU (1 << 28) /* IntEn - Suspend */ +#define UDCISR1_IRRS (1 << 27) /* IntEn - Reset */ #define UDCISR0 __REG(0x4060000C) /* UDC Interrupt Status Register 0 */ #define UDCISR1 __REG(0x40600010) /* UDC Interrupt Status Register 1 */ @@ -1835,6 +1843,8 @@ #define DFBR0 __REG(0x44000020) /* DMA Channel 0 Frame Branch Register */ #define DFBR1 __REG(0x44000024) /* DMA Channel 1 Frame Branch Register */ #define LCSR __REG(0x44000038) /* LCD Controller Status Register */ +#define LCSR0 __REG(0x44000038) /* LCD Controller Status Register */ +#define LCSR1 __REG(0x44000034) /* LCD Controller Status Register */ #define LIIDR __REG(0x4400003C) /* LCD Controller Interrupt ID Register */ #define TMEDRGBR __REG(0x44000040) /* TMED RGB Seed Register */ #define TMEDCR __REG(0x44000044) /* TMED Control Register */ @@ -1844,6 +1854,10 @@ #define LCCR3_4BPP (2 << 24) #define LCCR3_8BPP (3 << 24) #define LCCR3_16BPP (4 << 24) +#define LCCR3_18BPP (6 << 24) +#define LCCR3_19BPP (8 << 24) +#define LCCR3_24BPP (9 << 24) +#define LCCR3_25BPP (10<< 24) #define FDADR0 __REG(0x44000200) /* DMA Channel 0 Frame Descriptor Address Register */ #define FSADR0 __REG(0x44000204) /* DMA Channel 0 Frame Source Address Register */ @@ -2008,6 +2022,104 @@ #define LDCMD_PAL (1 << 26) /* instructs DMA to load palette buffer */ +/* Overlay1 & Overlay2 & Hardware Cursor */ +#define LCSR1_SOF1 (1 << 0) +#define LCSR1_SOF2 (1 << 1) +#define LCSR1_SOF3 (1 << 2) +#define LCSR1_SOF4 (1 << 3) +#define LCSR1_SOF5 (1 << 4) +#define LCSR1_SOF6 (1 << 5) + +#define LCSR1_EOF1 (1 << 8) +#define LCSR1_EOF2 (1 << 9) +#define LCSR1_EOF3 (1 << 10) +#define LCSR1_EOF4 (1 << 11) +#define LCSR1_EOF5 (1 << 12) +#define LCSR1_EOF6 (1 << 13) + +#define LCSR1_BS1 (1 << 16) +#define LCSR1_BS2 (1 << 17) +#define LCSR1_BS3 (1 << 18) +#define LCSR1_BS4 (1 << 19) +#define LCSR1_BS5 (1 << 20) +#define LCSR1_BS6 (1 << 21) + +#define LCSR1_IU2 (1 << 25) +#define LCSR1_IU3 (1 << 26) +#define LCSR1_IU4 (1 << 27) +#define LCSR1_IU5 (1 << 28) +#define LCSR1_IU6 (1 << 29) + +#define LDCMD_SOFINT (1 << 22) +#define LDCMD_EOFINT (1 << 21) + + +#define LCCR5_SOFM1 (1<<0) /* Start Of Frame Mask for Overlay 1 (channel 1) */ +#define LCCR5_SOFM2 (1<<1) /* Start Of Frame Mask for Overlay 2 (channel 2) */ +#define LCCR5_SOFM3 (1<<2) /* Start Of Frame Mask for Overlay 2 (channel 3) */ +#define LCCR5_SOFM4 (1<<3) /* Start Of Frame Mask for Overlay 2 (channel 4) */ +#define LCCR5_SOFM5 (1<<4) /* Start Of Frame Mask for cursor (channel 5) */ +#define LCCR5_SOFM6 (1<<5) /* Start Of Frame Mask for command data (channel 6) */ + +#define LCCR5_EOFM1 (1<<8) /* End Of Frame Mask for Overlay 1 (channel 1) */ +#define LCCR5_EOFM2 (1<<9) /* End Of Frame Mask for Overlay 2 (channel 2) */ +#define LCCR5_EOFM3 (1<<10) /* End Of Frame Mask for Overlay 2 (channel 3) */ +#define LCCR5_EOFM4 (1<<11) /* End Of Frame Mask for Overlay 2 (channel 4) */ +#define LCCR5_EOFM5 (1<<12) /* End Of Frame Mask for cursor (channel 5) */ +#define LCCR5_EOFM6 (1<<13) /* End Of Frame Mask for command data (channel 6) */ + +#define LCCR5_BSM1 (1<<16) /* Branch mask for Overlay 1 (channel 1) */ +#define LCCR5_BSM2 (1<<17) /* Branch mask for Overlay 2 (channel 2) */ +#define LCCR5_BSM3 (1<<18) /* Branch mask for Overlay 2 (channel 3) */ +#define LCCR5_BSM4 (1<<19) /* Branch mask for Overlay 2 (channel 4) */ +#define LCCR5_BSM5 (1<<20) /* Branch mask for cursor (channel 5) */ +#define LCCR5_BSM6 (1<<21) /* Branch mask for data command (channel 6) */ + +#define LCCR5_IUM1 (1<<24) /* Input FIFO Underrun Mask for Overlay 1 */ +#define LCCR5_IUM2 (1<<25) /* Input FIFO Underrun Mask for Overlay 2 */ +#define LCCR5_IUM3 (1<<26) /* Input FIFO Underrun Mask for Overlay 2 */ +#define LCCR5_IUM4 (1<<27) /* Input FIFO Underrun Mask for Overlay 2 */ +#define LCCR5_IUM5 (1<<28) /* Input FIFO Underrun Mask for cursor */ +#define LCCR5_IUM6 (1<<29) /* Input FIFO Underrun Mask for data command */ + +#define OVL1C1_O1EN (1<<31) /* Enable bit for Overlay 1 */ +#define OVL2C1_O2EN (1<<31) /* Enable bit for Overlay 2 */ +#define CCR_CEN (1<<31) /* Enable bit for Cursor */ + +/* LCD registers */ +#define LCCR4 __REG(0x44000010) /* LCD Controller Control Register 4 */ +#define LCCR5 __REG(0x44000014) /* LCD Controller Control Register 5 */ +#define FBR0 __REG(0x44000020) /* DMA Channel 0 Frame Branch Register */ +#define FBR1 __REG(0x44000024) /* DMA Channel 1 Frame Branch Register */ +#define FBR2 __REG(0x44000028) /* DMA Channel 2 Frame Branch Register */ +#define FBR3 __REG(0x4400002C) /* DMA Channel 3 Frame Branch Register */ +#define FBR4 __REG(0x44000030) /* DMA Channel 4 Frame Branch Register */ +#define FDADR2 __REG(0x44000220) /* DMA Channel 2 Frame Descriptor Address Register */ +#define FSADR2 __REG(0x44000224) /* DMA Channel 2 Frame Source Address Register */ +#define FIDR2 __REG(0x44000228) /* DMA Channel 2 Frame ID Register */ +#define LDCMD2 __REG(0x4400022C) /* DMA Channel 2 Command Register */ +#define FDADR3 __REG(0x44000230) /* DMA Channel 3 Frame Descriptor Address Register */ +#define FSADR3 __REG(0x44000234) /* DMA Channel 3 Frame Source Address Register */ +#define FIDR3 __REG(0x44000238) /* DMA Channel 3 Frame ID Register */ +#define LDCMD3 __REG(0x4400023C) /* DMA Channel 3 Command Register */ +#define FDADR4 __REG(0x44000240) /* DMA Channel 4 Frame Descriptor Address Register */ +#define FSADR4 __REG(0x44000244) /* DMA Channel 4 Frame Source Address Register */ +#define FIDR4 __REG(0x44000248) /* DMA Channel 4 Frame ID Register */ +#define LDCMD4 __REG(0x4400024C) /* DMA Channel 4 Command Register */ +#define FDADR5 __REG(0x44000250) /* DMA Channel 5 Frame Descriptor Address Register */ +#define FSADR5 __REG(0x44000254) /* DMA Channel 5 Frame Source Address Register */ +#define FIDR5 __REG(0x44000258) /* DMA Channel 5 Frame ID Register */ +#define LDCMD5 __REG(0x4400025C) /* DMA Channel 5 Command Register */ + +#define OVL1C1 __REG(0x44000050) /* Overlay 1 Control Register 1 */ +#define OVL1C2 __REG(0x44000060) /* Overlay 1 Control Register 2 */ +#define OVL2C1 __REG(0x44000070) /* Overlay 2 Control Register 1 */ +#define OVL2C2 __REG(0x44000080) /* Overlay 2 Control Register 2 */ +#define CCR __REG(0x44000090) /* Cursor Control Register */ + +#define FBR5 __REG(0x44000110) /* DMA Channel 5 Frame Branch Register */ +#define FBR6 __REG(0x44000114) /* DMA Channel 6 Frame Branch Register */ + /* * Memory controller */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <far...@us...> - 2006-10-06 17:50:56
|
Revision: 622 http://svn.sourceforge.net/hackndev/?rev=622&view=rev Author: farcaller Date: 2006-10-06 10:50:43 -0700 (Fri, 06 Oct 2006) Log Message: ----------- palmt3: updated defconfig Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmt3_defconfig Modified: linux4palm/linux/trunk/arch/arm/configs/palmt3_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmt3_defconfig 2006-10-06 10:05:40 UTC (rev 621) +++ linux4palm/linux/trunk/arch/arm/configs/palmt3_defconfig 2006-10-06 17:50:43 UTC (rev 622) @@ -1,13 +1,15 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.16-hnd0-tt3 -# Mon Jul 31 16:03:08 2006 +# Linux kernel version: 2.6.17-hnd0-tt3 +# Thu Oct 5 08:28:53 2006 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 # # Code maturity level options @@ -30,7 +32,10 @@ CONFIG_IKCONFIG=y # CONFIG_MINIMAL_OOPS is not set CONFIG_IKCONFIG_PROC=y -CONFIG_INITRAMFS_SOURCE="" +# CONFIG_RELAY is not set +CONFIG_INITRAMFS_SOURCE="/home/farcaller/develop/linux4palm/initlive-ng/image" +CONFIG_INITRAMFS_ROOT_UID=0 +CONFIG_INITRAMFS_ROOT_GID=0 CONFIG_UID16=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_EMBEDDED is not set @@ -47,15 +52,11 @@ CONFIG_SHMEM=y CONFIG_USELIB=y CONFIG_CORE_DUMP=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 CONFIG_SLAB=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set -CONFIG_OBSOLETE_INTERMODULE=y +CONFIG_OBSOLETE_INTERMODULE=m # # Loadable module support @@ -63,7 +64,6 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y @@ -71,19 +71,20 @@ # # Block layer # +# CONFIG_BLK_DEV_IO_TRACE is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_AS is not set +CONFIG_IOSCHED_DEADLINE=y # CONFIG_IOSCHED_CFQ is not set -CONFIG_DEFAULT_AS=y -# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" +CONFIG_DEFAULT_IOSCHED="deadline" # # System Type @@ -92,11 +93,13 @@ # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set @@ -116,6 +119,7 @@ # Intel PXA2xx Implementations # # CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set # CONFIG_MACH_MAINSTONE is not set # CONFIG_ARCH_PXA_IDP is not set # CONFIG_ARCH_ESERIES is not set @@ -129,6 +133,12 @@ # CONFIG_MACH_HX2750 is not set # CONFIG_ARCH_H5400 is not set # CONFIG_MACH_HIMALAYA is not set +# CONFIG_MACH_HTCUNIVERSAL is not set +# CONFIG_MACH_HTCALPINE is not set +# CONFIG_MACH_MAGICIAN is not set +# CONFIG_MACH_HTCAPACHE is not set +# CONFIG_MACH_BLUEANGEL is not set +# CONFIG_MACH_HTCBEETLES is not set # CONFIG_ARCH_AXIMX5 is not set # CONFIG_ARCH_AXIMX3 is not set # CONFIG_ARCH_ROVERP1 is not set @@ -144,6 +154,7 @@ # CONFIG_MACH_OMAP_PALMTC is not set # CONFIG_PXA_SHARPSL is not set CONFIG_PXA25x=y +CONFIG_PXA_RTC_EPOCH=1970 # CONFIG_SA1100_H3100 is not set # CONFIG_SA1100_H3600 is not set # CONFIG_SA1100_H3800 is not set @@ -166,8 +177,10 @@ # # Processor Features # -# CONFIG_ARM_THUMB is not set +CONFIG_ARM_THUMB=y +CONFIG_ARMBOOT_PROC=y CONFIG_XSCALE_PMU=y +# CONFIG_KEXEC is not set # # Compaq/iPAQ Platforms @@ -196,7 +209,9 @@ # # CONFIG_PREEMPT is not set CONFIG_NO_IDLE_HZ=y -# CONFIG_AEABI is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -213,7 +228,7 @@ # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=64M root=/dev/ram0 init=/linuxrc initrd=0xA0400000,307200" +CONFIG_CMDLINE="mem=64M" # CONFIG_XIP_KERNEL is not set # @@ -237,8 +252,7 @@ # CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set +CONFIG_BINFMT_MISC=m # # Power management options @@ -258,7 +272,7 @@ # # CONFIG_NETDEBUG is not set # CONFIG_PACKET is not set -CONFIG_UNIX=y +CONFIG_UNIX=m # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set @@ -272,12 +286,15 @@ # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y # CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set # CONFIG_NETFILTER is not set # @@ -318,21 +335,7 @@ # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -# CONFIG_BT_RFCOMM_TTY is not set -# CONFIG_BT_BNEP is not set -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -# CONFIG_BT_HCIVHCI is not set +# CONFIG_BT is not set # CONFIG_IEEE80211 is not set # @@ -355,37 +358,33 @@ # # Memory Technology Devices (MTD) # -CONFIG_MTD=y +CONFIG_MTD=m CONFIG_MTD_DEBUG=y CONFIG_MTD_DEBUG_VERBOSE=3 -CONFIG_MTD_CONCAT=y +CONFIG_MTD_CONCAT=m CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set # # User Modules And Translation Layers # -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLOCK=y -CONFIG_FTL=y -CONFIG_NFTL=y -CONFIG_NFTL_RW=y -CONFIG_INFTL=y +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # # RAM/ROM/Flash chip drivers # -CONFIG_MTD_CFI=y +CONFIG_MTD_CFI=m # CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=y -CONFIG_MTD_CFI_ADV_OPTIONS=y -CONFIG_MTD_CFI_NOSWAP=y -# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_GEOMETRY is not set +CONFIG_MTD_GEN_PROBE=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y @@ -396,11 +395,10 @@ CONFIG_MTD_CFI_I2=y # CONFIG_MTD_CFI_I4 is not set # CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_OTP is not set -CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_INTELEXT=m # CONFIG_MTD_CFI_AMDSTD is not set # CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=y +CONFIG_MTD_CFI_UTIL=m # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set @@ -411,12 +409,9 @@ # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=y -CONFIG_MTD_PHYSMAP_START=0x0 -CONFIG_MTD_PHYSMAP_LEN=0x1000000 -CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +# CONFIG_MTD_PHYSMAP is not set # CONFIG_MTD_ARM_INTEGRATOR is not set -CONFIG_MTD_PALMT3=y +CONFIG_MTD_PALMT3=m # CONFIG_MTD_SHARP_SL is not set # CONFIG_MTD_PLATRAM is not set @@ -426,7 +421,6 @@ # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD is not set # CONFIG_MTD_BLOCK2MTD is not set # @@ -655,10 +649,8 @@ # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCA9535 is not set # CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set CONFIG_TPS65010=m # CONFIG_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -772,13 +764,23 @@ # CONFIG_MCP is not set # -# Multimedia Capabilities Port drivers +# LED devices # +# CONFIG_NEW_LEDS is not set # +# LED drivers +# + +# +# LED Triggers +# + +# # Multimedia devices # # CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_V4L2=y # # Digital Video Broadcasting Devices @@ -793,6 +795,7 @@ CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set +# CONFIG_FB_FIRMWARE_EDID is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_IMAGEON is not set @@ -807,7 +810,7 @@ # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set CONFIG_FONTS=y CONFIG_FONT_8x8=y # CONFIG_FONT_8x16 is not set @@ -827,10 +830,9 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_DEVICE=y -CONFIG_BACKLIGHT_PALMT3=y -# CONFIG_BACKLIGHT_PXAPWM is not set +# CONFIG_BACKLIGHT_CORGI is not set +CONFIG_BACKLIGHT_PXAPWM=y # CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_FB_SPLASH=y # # Sound @@ -848,9 +850,9 @@ # CONFIG_SND_PCM_OSS is not set # CONFIG_SND_DYNAMIC_MINORS is not set # CONFIG_SND_SUPPORT_OLD_API is not set -CONFIG_SND_VERBOSE_PRINTK=y -CONFIG_SND_DEBUG=y -CONFIG_SND_DEBUG_DETECT=y +# CONFIG_SND_VERBOSE_PROCFS is not set +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set # # Generic devices @@ -866,7 +868,10 @@ # CONFIG_SND_A716 is not set # CONFIG_SND_H1910 is not set # CONFIG_SND_H2200 is not set +# CONFIG_SND_H4000 is not set +# CONFIG_SND_HTCMAGICIAN is not set # CONFIG_SND_HX4700 is not set +# CONFIG_SND_HTCUNIVERSAL is not set # CONFIG_SND_H5XXX_AK4535 is not set CONFIG_SND_PXA2xx_I2SOUND=y # CONFIG_SND_PXA2XX_AC97 is not set @@ -881,6 +886,7 @@ # CONFIG_USB_ARCH_HAS_HCD=y # CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set # CONFIG_USB is not set # @@ -902,6 +908,7 @@ # CONFIG_USB_GADGET_MQ11XX is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set # CONFIG_USB_GADGET_DUALSPEED is not set # CONFIG_USB_ZERO is not set @@ -920,15 +927,16 @@ # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y # CONFIG_MMC_PXA is not set -CONFIG_MMC_WBSD_PALMT3=m # CONFIG_MMC_TMIO is not set # CONFIG_MMC_SAMCOP is not set # CONFIG_MMC_ASIC3 is not set +CONFIG_MMC_WBSD_PALMT3=m # -# LED devices +# Real Time Clock # -# CONFIG_CLASS_LEDS is not set +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set # # File systems @@ -975,7 +983,6 @@ CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set # CONFIG_CONFIGFS_FS is not set # @@ -989,17 +996,7 @@ # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS_FS is not set -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_DEBUG=2 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_SUMMARY is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_FS is not set # CONFIG_CRAMFS is not set CONFIG_SQUASHFS=y # CONFIG_SQUASHFS_EMBEDDED is not set @@ -1095,6 +1092,7 @@ # # CONFIG_PRINTK_TIME is not set # CONFIG_MAGIC_SYSRQ is not set +CONFIG_SMALLOOPS=y CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_DETECT_SOFTLOCKUP is not set @@ -1106,9 +1104,10 @@ # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y # CONFIG_DEBUG_VM is not set CONFIG_FRAME_POINTER=y +# CONFIG_UNWIND_INFO is not set # CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set @@ -1163,4 +1162,3 @@ CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2006-10-06 10:05:56
|
Revision: 621 http://svn.sourceforge.net/hackndev/?rev=621&view=rev Author: happy-slapin Date: 2006-10-06 03:05:40 -0700 (Fri, 06 Oct 2006) Log Message: ----------- z72: Finally made keypad work again Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Kconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Makefile linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c Removed Paths: ------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_buttons.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Kconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Kconfig 2006-10-06 09:27:14 UTC (rev 620) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Kconfig 2006-10-06 10:05:40 UTC (rev 621) @@ -3,12 +3,3 @@ select PXA27x help This enables support for Palm Zire 72 handheld. - -config PALMZ72_BUTTONS - tristate "Palm LifeDrive buttons driver" - depends on MACH_PALMZ72 - default y - help - This driver translates button presses on a Palm - Zire 72 to Linux input subsystem events. - Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Makefile =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Makefile 2006-10-06 09:27:14 UTC (rev 620) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/Makefile 2006-10-06 10:05:40 UTC (rev 621) @@ -3,4 +3,3 @@ # obj-$(CONFIG_MACH_PALMZ72) += palmz72.o -obj-$(CONFIG_PALMZ72_BUTTONS) += palmz72_buttons.o Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2006-10-06 09:27:14 UTC (rev 620) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2006-10-06 10:05:40 UTC (rev 621) @@ -9,6 +9,7 @@ #include <linux/kernel.h> #include <linux/init.h> +#include <linux/input.h> #include <asm/mach/arch.h> #include <asm/mach-types.h> #include <asm/arch/hardware.h> @@ -114,17 +115,17 @@ }, .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, + GPIO_NR_ZIRE72_KP_MKIN0_MD, + GPIO_NR_ZIRE72_KP_MKIN1_MD, + GPIO_NR_ZIRE72_KP_MKIN2_MD, + GPIO_NR_ZIRE72_KP_MKIN3_MD, + GPIO_NR_ZIRE72_KP_MKOUT0_MD, + GPIO_NR_ZIRE72_KP_MKOUT1_MD, + GPIO_NR_ZIRE72_KP_MKOUT2_MD, }, }; -static struct platform_device palmld_kbd = { +static struct platform_device palmz72_keypad = { .name = "pxa27x-keyboard", .id = -1, .dev = { Deleted: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_buttons.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_buttons.c 2006-10-06 09:27:14 UTC (rev 620) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_buttons.c 2006-10-06 10:05:40 UTC (rev 621) @@ -1,201 +0,0 @@ -/* - * linux/arch/arm/mach-pxa/zire72/zire72-buttons.c - * - * Button driver for Palm Zire 72 - * - * Author: Alex Osborne <bob...@gm...> - * Author: Sergey Lapin <sla...@gm...> - */ - -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/init.h> -#include <linux/interrupt.h> -#include <linux/input.h> -#include <linux/device.h> -#include <linux/platform_device.h> - -#include <asm/mach-types.h> -#include <asm/mach/arch.h> -#include <asm/mach/map.h> - -#include <asm/arch/hardware.h> -#include <asm/arch/pxa-regs.h> -#include <asm/arch/irqs.h> -#include <asm/arch/palmz72-gpio.h> - -#define KPASMKP(col) (col/2==0 ? KPASMKP0 : KPASMKP1) -#define KPASMKPx_MKC(row, col) (1 << (row + 16*(col%2))) - -#define ZIRE72_KM_ROWS 4 -#define ZIRE72_KM_COLS 3 - - -static struct { - int keycode; - char *desc; -} button_matrix[ZIRE72_KM_ROWS][ZIRE72_KM_COLS] = { - { /* row 0 */ - { -1, "(unused)" }, // suspend is here - { KEY_P, "Picture" }, - { KEY_ENTER, "Center" }, - }, { /* row 1 */ - { KEY_T, "Tasks" }, - { KEY_C, "Contacts" }, - { KEY_M, "Music" }, - }, { /* row 2 */ - { KEY_UP, "Up" }, - { -1, "(unused)" }, // not found - { KEY_DOWN, "Down" }, - }, { /* row 3 */ - { KEY_RIGHT, "Right" }, - { KEY_ENTER, "Center" }, - { KEY_LEFT, "Left" }, - } -}; - -static struct input_dev *button_dev; - -static void zire72_buttons_report_event(int row, int col, int pressed) -{ -#if 1 - if(row >= ZIRE72_KM_ROWS || col >= ZIRE72_KM_COLS) { - printk(KERN_ERR "zire72_buttons_report_event: out of bounds " - "key event row=%d col=%d pressed=%d\n", row, col, - pressed); - return; - } - - if( button_matrix[row][col].keycode >= 0 ) { - input_report_key(button_dev, button_matrix[row][col].keycode, pressed); - } -#else -printk(KERN_INFO "palmz72_buttons_report_event: " - "key event row=%d col=%d pressed=%d\n", row, col, - pressed); -#endif -} - -static irqreturn_t zire72_keypad_irq_handler(int irq, void *dev_id, struct pt_regs *regs) -{ - int mi; - int row=-1, col=-1; - - - /* - * notify controller that interrupt was handled, otherwise it'll - * constantly send interrupts and lock up the device. - */ - mi = KPC & KPC_MI; - - /* report the status of every button */ - for(row=0; row < ZIRE72_KM_ROWS; row++) { - for(col=0; col < ZIRE72_KM_COLS; col++) { - zire72_buttons_report_event(row, col, KPASMKP(col) & KPASMKPx_MKC(row, col)); - } - } - - return IRQ_HANDLED; -} - -static int __init zire72_buttons_probe(struct device *dev) -{ - int err; - int row, col; - -/* if(!machine_is_xscale_zire72()) - return -ENODEV; -*/ - button_dev = input_allocate_device(); - button_dev->evbit[0] = BIT(EV_KEY); - for(row=0; row < ZIRE72_KM_ROWS; row++) { - for(col=0; col < ZIRE72_KM_COLS; col++) { - if( button_matrix[row][col].keycode >= 0 ) { - button_dev->keybit[ LONG - (button_matrix[row][col].keycode)] |= - BIT(button_matrix[row][col].keycode); - } - } - } - - button_dev->name = "Palm Zire 72 buttons"; - button_dev->id.bustype = BUS_HOST; - input_register_device(button_dev); - - - /* - * setup GPIOs for the LifeDrive keypad matrix - */ - pxa_gpio_mode(GPIO_NR_ZIRE72_KP_MKIN0_MD); - pxa_gpio_mode(GPIO_NR_ZIRE72_KP_MKIN1_MD); - pxa_gpio_mode(GPIO_NR_ZIRE72_KP_MKIN2_MD); - pxa_gpio_mode(GPIO_NR_ZIRE72_KP_MKIN3_MD); - pxa_gpio_mode(GPIO_NR_ZIRE72_KP_MKOUT0_MD); - pxa_gpio_mode(GPIO_NR_ZIRE72_KP_MKOUT1_MD); - pxa_gpio_mode(GPIO_NR_ZIRE72_KP_MKOUT2_MD); - - - /* - * setup the PXA270 keypad controller for automatic on-activity scanning - */ - KPC |= ZIRE72_KM_ROWS << 26; /* lifedrive keypad matrix has 4 rows */ - KPC |= ZIRE72_KM_COLS << 23; /* and 3 columns */ - - KPC |= KPC_ASACT; /* enable automatic scan on activity */ - KPC &= ~KPC_AS; /* disable automatic scan */ - KPC &= ~KPC_IMKP; /* do not ignore multiple keypresses */ - - KPC &= ~KPC_DE; /* disable direct keypad */ - KPC &= ~KPC_DIE; /* disable direct keypad interrupt */ - - err = request_irq(IRQ_KEYPAD, zire72_keypad_irq_handler, SA_INTERRUPT, - "keypad", NULL); - if(err) { - printk(KERN_ERR "zire72_buttons_probe: cannot request keypad IRQ\n"); - return -1; - } - - KPC |= KPC_ME; /* matrix keypad enabled */ - KPC |= KPC_ME; /* matrix keypad interrupt enabled */ - - return 0; -} - -static int zire72_buttons_remove (struct device *dev) -{ - free_irq(IRQ_KEYPAD, NULL); - return 0; -} - -static struct device_driver zire72_buttons_driver = { - .name = "zire72-buttons", - .bus = &platform_bus_type, - .probe = zire72_buttons_probe, - .remove = zire72_buttons_remove, -#ifdef CONFIG_PM - .suspend = NULL, - .resume = NULL, -#endif -}; - -static int __init zire72_buttons_init(void) -{ -/* if(!machine_is_xscale_zire72()) - return -ENODEV; -*/ - return driver_register(&zire72_buttons_driver); -} - -static void __exit zire72_buttons_exit(void) -{ - input_unregister_device(button_dev); - driver_unregister(&zire72_buttons_driver); -} - -module_init(zire72_buttons_init); -module_exit(zire72_buttons_exit); - -MODULE_AUTHOR ("Alex Osborne <bob...@gm...>"); -MODULE_AUTHOR ("Sergey Lapin <sla...@gm...>"); -MODULE_DESCRIPTION ("Button support for Palm Zire 72"); -MODULE_LICENSE ("GPL"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2006-10-06 09:27:32
|
Revision: 620 http://svn.sourceforge.net/hackndev/?rev=620&view=rev Author: happy-slapin Date: 2006-10-06 02:27:14 -0700 (Fri, 06 Oct 2006) Log Message: ----------- z72: Fixed typo 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-06 09:25:09 UTC (rev 619) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2006-10-06 09:27:14 UTC (rev 620) @@ -24,7 +24,7 @@ #include <asm/arch/pxa-dmabounce.h> #include <asm/arch/pxafb.h> #include <asm/arch/pxa-regs.h> -#include <asm/arch/pxa27x-keyboard.h> +#include <asm/arch/pxa27x_keyboard.h> #include <asm/arch/pxa-pm_ll.h> #include <asm/arch/pxapwm-bl.h> #include <asm/arch/irda.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2006-10-06 09:25:24
|
Revision: 619 http://svn.sourceforge.net/hackndev/?rev=619&view=rev Author: happy-slapin Date: 2006-10-06 02:25:09 -0700 (Fri, 06 Oct 2006) Log Message: ----------- z72: Should fix keypad support2 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-06 06:59:12 UTC (rev 618) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2006-10-06 09:25:09 UTC (rev 619) @@ -24,7 +24,7 @@ #include <asm/arch/pxa-dmabounce.h> #include <asm/arch/pxafb.h> #include <asm/arch/pxa-regs.h> -#include <asm/arch/pxa27x-keypad.h> +#include <asm/arch/pxa27x-keyboard.h> #include <asm/arch/pxa-pm_ll.h> #include <asm/arch/pxapwm-bl.h> #include <asm/arch/irda.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
From: <far...@us...> - 2006-10-05 15:07:49
|
Revision: 617 http://svn.sourceforge.net/hackndev/?rev=617&view=rev Author: farcaller Date: 2006-10-05 08:07:41 -0700 (Thu, 05 Oct 2006) Log Message: ----------- palmt3: sound code is disabled until someone fix it Modified Paths: -------------- linux4palm/linux/trunk/drivers/soc/tsc2101.c Modified: linux4palm/linux/trunk/drivers/soc/tsc2101.c =================================================================== --- linux4palm/linux/trunk/drivers/soc/tsc2101.c 2006-10-03 16:20:07 UTC (rev 616) +++ linux4palm/linux/trunk/drivers/soc/tsc2101.c 2006-10-05 15:07:41 UTC (rev 617) @@ -858,7 +858,8 @@ int ret; ret = driver_register(&tsc2101_driver); /* Sound driver */ - snd_pxa2xx_i2sound_card_activate(&tsc2101_audio); + printk(KERN_ERR "!! SOUND CODE DISABLED !! FIXME !!\n"); + /* snd_pxa2xx_i2sound_card_activate(&tsc2101_audio); */ return ret; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <far...@us...> - 2006-10-04 05:42:14
|
Revision: 614 http://svn.sourceforge.net/hackndev/?rev=614&view=rev Author: farcaller Date: 2006-10-01 03:38:47 -0700 (Sun, 01 Oct 2006) Log Message: ----------- palmt3: Fixed WBSD compilation bug Modified Paths: -------------- linux4palm/linux/trunk/drivers/mmc/Makefile Modified: linux4palm/linux/trunk/drivers/mmc/Makefile =================================================================== --- linux4palm/linux/trunk/drivers/mmc/Makefile 2006-10-01 10:20:27 UTC (rev 613) +++ linux4palm/linux/trunk/drivers/mmc/Makefile 2006-10-01 10:38:47 UTC (rev 614) @@ -18,6 +18,7 @@ obj-$(CONFIG_MMC_ARMMMCI) += mmci.o obj-$(CONFIG_MMC_PXA) += pxamci.o obj-$(CONFIG_MMC_WBSD) += wbsd.o +obj-$(CONFIG_MMC_WBSD_PALMT3) += wbsd-palmt3.o obj-$(CONFIG_MMC_IMX) += imxmmc.o obj-$(CONFIG_MMC_SDHCI) += sdhci.o obj-$(CONFIG_MMC_AU1X) += au1xmmc.o This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2006-10-04 05:42:06
|
Revision: 598 http://svn.sourceforge.net/hackndev/?rev=598&view=rev Author: happy-slapin Date: 2006-09-29 04:16:38 -0700 (Fri, 29 Sep 2006) Log Message: ----------- ALL:pxapwm: Fixed default intensity setting Modified Paths: -------------- linux4palm/linux/trunk/drivers/video/backlight/palmz72_bl.c linux4palm/linux/trunk/drivers/video/backlight/pxapwm_bl.c Modified: linux4palm/linux/trunk/drivers/video/backlight/palmz72_bl.c =================================================================== --- linux4palm/linux/trunk/drivers/video/backlight/palmz72_bl.c 2006-09-29 10:12:47 UTC (rev 597) +++ linux4palm/linux/trunk/drivers/video/backlight/palmz72_bl.c 2006-09-29 11:16:38 UTC (rev 598) @@ -35,7 +35,7 @@ spin_lock_irqsave(&bl_lock, flags); - PWM_CTRL1 = 1; + PWM_CTRL1 = 0; if (intensity) { PWM_PWDUTY0 = intensity; Modified: linux4palm/linux/trunk/drivers/video/backlight/pxapwm_bl.c =================================================================== --- linux4palm/linux/trunk/drivers/video/backlight/pxapwm_bl.c 2006-09-29 10:12:47 UTC (rev 597) +++ linux4palm/linux/trunk/drivers/video/backlight/pxapwm_bl.c 2006-09-29 11:16:38 UTC (rev 598) @@ -41,9 +41,9 @@ period = 0; prescaler=0; } - + spin_lock_irqsave(&bl->lock, flags); - + switch (bl->pwm) { case 0: PWM_CTRL0 = prescaler; @@ -70,7 +70,7 @@ } #ifdef CONFIG_PM -static int stored_intensity; +static int stored_intensity = 0; static int pxapwmbl_suspend(struct platform_device *pdev, pm_message_t state) { struct pxapwmbl_platform_data *bl = pdev->dev.platform_data; @@ -102,7 +102,6 @@ if (intensity < 0) intensity = 0; - pxapwmbl_send_intensity(bl, intensity); bl->intensity=intensity; return 0; @@ -149,6 +148,7 @@ return PTR_ERR (bl->dev); pxapwmbl_send_intensity(bl, bl->default_intensity); + bl->intensity = bl->default_intensity; pxapwmbl_limit_intensity(pdev, 0); printk("PXA PWM backlight driver initialized.\n"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-02 01:42:27
|
Revision: 615 http://svn.sourceforge.net/hackndev/?rev=615&view=rev Author: bobofdoom Date: 2006-10-01 18:42:21 -0700 (Sun, 01 Oct 2006) Log Message: ----------- palmld: Don't wait to switch VT's on suspend, it hangs OPIE. Modified Paths: -------------- linux4palm/linux/trunk/kernel/power/console.c Modified: linux4palm/linux/trunk/kernel/power/console.c =================================================================== --- linux4palm/linux/trunk/kernel/power/console.c 2006-10-01 10:38:47 UTC (rev 614) +++ linux4palm/linux/trunk/kernel/power/console.c 2006-10-02 01:42:21 UTC (rev 615) @@ -30,10 +30,17 @@ set_console(SUSPEND_CONSOLE); release_console_sem(); + /* <Alex> + * OPIE locks the console so we can't switch vts, this means we hang when + * trying to suspend. I'm not sure how we're supposed to get around it, + * other than this. The suspend console is ugly, anyhow. ;-) + */ +#ifndef CONFIG_MACH_XSCALE_PALMLD if (vt_waitactive(SUSPEND_CONSOLE)) { pr_debug("Suspend: Can't switch VCs."); return 1; } +#endif orig_kmsg = kmsg_redirect; kmsg_redirect = SUSPEND_CONSOLE; return 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 10:20:35
|
Revision: 613 http://svn.sourceforge.net/hackndev/?rev=613&view=rev Author: bobofdoom Date: 2006-10-01 03:20:27 -0700 (Sun, 01 Oct 2006) Log Message: ----------- palmld: Standby mode now working again (in 2.6.17). Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_pm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_pm.c 2006-10-01 09:41:54 UTC (rev 612) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_pm.c 2006-10-01 10:20:27 UTC (rev 613) @@ -17,8 +17,8 @@ { /* wake up on */ - PWER |= PWER_RTC | PWER_GPIO12; - PFER |= PWER_RTC; + PWER |= PWER_GPIO12; + //PFER |= PWER_RTC; PRER |= PWER_GPIO12; /* USB, in theory this can even wake us from deep sleep */ @@ -26,10 +26,12 @@ PFER |= PWER_GPIO3; PRER |= PWER_GPIO3; - PCFR = PCFR_GPR_EN | PCFR_OPDE; + /* disable GPIO reset, palm bootloader will hang us */ + //PCFR |= PCFR_GPR_EN | PCFR_OPDE; + PCFR &= PCFR_GPR_EN; /* as set by POS */ - PGSR0 = 0x00020000; + /*PGSR0 = 0x00020000; PGSR1 = 0x00000000; PGSR2 = 0x01004000; PGSR3 = 0x00421380; @@ -38,10 +40,11 @@ PGSR3 |= (1<<7) | (1<<8) | (1<<9); PSLR = 0xff400000; - + */ //PKWR |= GPIO_bit(0) | GPIO_bit(12) | GPIO_bit(3) | (1<<17); - PKSR = 0xffffffff; // clear + //PKSR = 0xffffffff; // clear + /* addr_a0200000 = phys_to_virt(0xa0200000); addr_a0200004 = phys_to_virt(0xa0200004); addr_a0200008 = phys_to_virt(0xa0200008); @@ -49,25 +52,33 @@ save_a0200000 = *addr_a0200000; save_a0200004 = *addr_a0200004; save_a0200008 = *addr_a0200008; - + */ /* c: e3a00121 mov r0, #1073741832 ; 0x40000008 10: e280060f add r0, r0, #15728640 ; 0xf00000 14: e590f000 ldr pc, [r0] */ - + + /* *addr_a0200000 = 0xe3a00121; // mov r0, #0x40000008 *addr_a0200004 = 0xe280060f; // add r0, r0, #0xf00000 *addr_a0200008 = 0xe590f000; // ldr pc, [r0] + */ + PSPR = 0; /* should cause Palm bootloader to allow us to reboot */ return; } static void palmld_pxa_ll_pm_resume(void) { + /* *addr_a0200000 = save_a0200000; *addr_a0200004 = save_a0200004; *addr_a0200008 = save_a0200008; + */ + + /* re-enable GPIO reset */ + PCFR |= PCFR_GPR_EN; } struct pxa_ll_pm_ops palmld_ll_pm_ops = { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 09:42:05
|
Revision: 612 http://svn.sourceforge.net/hackndev/?rev=612&view=rev Author: bobofdoom Date: 2006-10-01 02:41:54 -0700 (Sun, 01 Oct 2006) Log Message: ----------- all: reapplying standby hack for LD and TX. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c 2006-10-01 09:22:58 UTC (rev 611) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c 2006-10-01 09:41:54 UTC (rev 612) @@ -139,7 +139,12 @@ { extern void pxa_cpu_standby(void); extern void pxa_cpu_suspend(unsigned int); - +#if defined(MACH_XSCALE_PALMLD) || defined(MACH_XSCALE_PALMTX) + /* For safety. suspend_mem puts the device in an unresetable state. + * On TX one needs to desolder the battery to get out of it. + */ + if (state == PM_SUSPEND_MEM) state = PM_SUSPEND_STANDBY; +#endif if (state == PM_SUSPEND_STANDBY) CKEN = CKEN22_MEMC | CKEN9_OSTIMER | CKEN16_LCD |CKEN0_PWM0; else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 09:23:06
|
Revision: 611 http://svn.sourceforge.net/hackndev/?rev=611&view=rev Author: bobofdoom Date: 2006-10-01 02:22:58 -0700 (Sun, 01 Oct 2006) Log Message: ----------- palmld: now using the same PXA27x keyboard driver as the HTC group. (missed includes) Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2006-10-01 09:21:02 UTC (rev 610) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2006-10-01 09:22:58 UTC (rev 611) @@ -12,6 +12,7 @@ #include <linux/device.h> #include <linux/platform_device.h> #include <linux/fb.h> +#include <linux/input.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> @@ -23,7 +24,7 @@ #include <asm/arch/pxafb.h> #include <asm/arch/pxa-regs.h> #include <asm/arch/palmld-gpio.h> -#include <asm/arch/pxa27x-keypad.h> +#include <asm/arch/pxa27x_keyboard.h> #include <asm/arch/pxapwm-bl.h> #include <asm/arch/pxa-pm_ll.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 09:21:10
|
Revision: 610 http://svn.sourceforge.net/hackndev/?rev=610&view=rev Author: bobofdoom Date: 2006-10-01 02:21:02 -0700 (Sun, 01 Oct 2006) Log Message: ----------- palmld: now using the same PXA27x keyboard driver as the HTC group. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig 2006-10-01 09:06:36 UTC (rev 609) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig 2006-10-01 09:21:02 UTC (rev 610) @@ -1,6 +1,7 @@ menuconfig MACH_XSCALE_PALMLD bool "Palm LifeDrive" select PXA27x + select KEYBOARD_PXA27x help Say Y here if you intend to run this kernel on a Palm LifeDrive. Currently there is only basic support for Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2006-10-01 09:06:36 UTC (rev 609) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2006-10-01 09:21:02 UTC (rev 610) @@ -214,55 +214,75 @@ }, }; -/** +/********************************************************* * Keypad - */ -static int palmld_keypad_matrix[] = { - /* row 0 */ - -1, /* unused */ - KEY_F10, /* Folder */ - KEY_UP, /* Nav up */ - /* row 1 */ - KEY_F11, /* Picture */ - KEY_F12, /* Star */ - KEY_RIGHT, /* Nav right */ - /* row 2 */ - KEY_F9, /* Home */ - KEY_F13, /* Voice memo */ - KEY_DOWN, /* Nav down */ - /* row 3 */ - KEY_F14, /* Rotate display */ - KEY_ENTER, /* Nav centre */ - KEY_LEFT, /* Nav left */ - }; + *********************************************************/ -static struct pxa27x_keypad_platform_data palmld_keypad_data = { - .matrix = palmld_keypad_matrix, - .rows = 4, - .cols = 3, +static struct pxa27x_keyboard_platform_data palmld_kbd_data = { + .nr_rows = 4, + .nr_cols = 3, + .keycodes = { + { /* row 0 */ + -1, /* unused */ + KEY_F10, /* Folder */ + KEY_UP, /* Nav up */ + }, + { /* row 1 */ + KEY_F11, /* Picture */ + KEY_F12, /* Star */ + KEY_RIGHT, /* Nav right */ + }, + { /* row 2 */ + KEY_F9, /* Home */ + KEY_F7, /* Voice memo */ + KEY_DOWN, /* Nav down */ + }, + { + /* row 3 */ + KEY_F8, /* Rotate display */ + KEY_ENTER, /* Nav centre */ + KEY_LEFT, /* Nav left */ + }, + + }, + .gpio_modes = { + GPIO_NR_PALMLD_KP_MKIN0_MD, + GPIO_NR_PALMLD_KP_MKIN1_MD, + GPIO_NR_PALMLD_KP_MKIN2_MD, + GPIO_NR_PALMLD_KP_MKIN3_MD, + GPIO_NR_PALMLD_KP_MKOUT0_MD, + GPIO_NR_PALMLD_KP_MKOUT1_MD, + GPIO_NR_PALMLD_KP_MKOUT2_MD, + }, }; -struct platform_device palmld_keypad = { - .name = "pxa27x-keypad", - .id = -1, - .dev = { - .platform_data = &palmld_keypad_data +static struct platform_device palmld_kbd = { + .name = "pxa27x-keyboard", + .id = -1, + .dev = { + .platform_data = &palmld_kbd_data, }, }; -/** + +/********************************************************* * IDE - */ + *********************************************************/ + struct platform_device palmld_ide = { .name = "palmld-ide", .id = 0, }; static struct platform_device *devices[] __initdata = { - &palmld_keypad, &palmld_ac97, &palmld_ide, &palmld_backlight, + &palmld_kbd, &palmld_ac97, &palmld_ide, &palmld_backlight, }; +/********************************************************* + * LCD + *********************************************************/ + static struct pxafb_mach_info palmld_lcd __initdata = { /* pixclock is set by lccr3 below */ .pixclock = 0, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 09:06:43
|
Revision: 609 http://svn.sourceforge.net/hackndev/?rev=609&view=rev Author: bobofdoom Date: 2006-10-01 02:06:36 -0700 (Sun, 01 Oct 2006) Log Message: ----------- all: removing pxa27x keypad driver in favour of the keyboard driver accepted upstream. Removed Paths: ------------- linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa27x-keypad.h Deleted: linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa27x-keypad.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa27x-keypad.h 2006-10-01 09:04:38 UTC (rev 608) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa27x-keypad.h 2006-10-01 09:06:36 UTC (rev 609) @@ -1,21 +0,0 @@ -/* - * linux/include/asm-arm/arch-pxa/pxa27x-keypad.h - * - * Driver for the PXA27x keypad controller. - * - * Author: Alex Osborne <bob...@gm...> - * - */ - -#include <linux/input.h> - -/* keypad controller registers */ -#define KPASMKP(col) (col/2==0 ? KPASMKP0 : KPASMKP1) -#define KPASMKPx_MKC(row, col) (1 << (row + 16*(col%2))) - -struct pxa27x_keypad_platform_data { - int *matrix; - u8 rows; - u8 cols; - struct input_dev *input; -}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 09:04:59
|
Revision: 608 http://svn.sourceforge.net/hackndev/?rev=608&view=rev Author: bobofdoom Date: 2006-10-01 02:04:38 -0700 (Sun, 01 Oct 2006) Log Message: ----------- all: removing pxa27x keypad driver in favour of the keyboard driver accepted upstream. Modified Paths: -------------- linux4palm/linux/trunk/drivers/input/keyboard/Kconfig linux4palm/linux/trunk/drivers/input/keyboard/Makefile Removed Paths: ------------- linux4palm/linux/trunk/drivers/input/keyboard/pxa27x_keypad.c Modified: linux4palm/linux/trunk/drivers/input/keyboard/Kconfig =================================================================== --- linux4palm/linux/trunk/drivers/input/keyboard/Kconfig 2006-10-01 04:59:15 UTC (rev 607) +++ linux4palm/linux/trunk/drivers/input/keyboard/Kconfig 2006-10-01 09:04:38 UTC (rev 608) @@ -213,10 +213,4 @@ This enables basic support for the 5-row Palm Universal Wireless Keyboard. -config KEYBOARD_PXA27X - tristate "Intel PXA27x keypad" - help - This enables support for the matrix keypad controller of the Intel - XScale PXA27x CPU. - endif Modified: linux4palm/linux/trunk/drivers/input/keyboard/Makefile =================================================================== --- linux4palm/linux/trunk/drivers/input/keyboard/Makefile 2006-10-01 04:59:15 UTC (rev 607) +++ linux4palm/linux/trunk/drivers/input/keyboard/Makefile 2006-10-01 09:04:38 UTC (rev 608) @@ -18,5 +18,4 @@ obj-$(CONFIG_KEYBOARD_H2200) += h2200_kbd.o obj-$(CONFIG_KEYBOARD_PXA27x) += pxa27x_keyboard.o obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o -# obj-$(CONFIG_KEYBOARD_PXA27X) += pxa27x_keypad.o obj-$(CONFIG_KEYBOARD_PALMIR) += palmirkbd.o Deleted: linux4palm/linux/trunk/drivers/input/keyboard/pxa27x_keypad.c =================================================================== --- linux4palm/linux/trunk/drivers/input/keyboard/pxa27x_keypad.c 2006-10-01 04:59:15 UTC (rev 607) +++ linux4palm/linux/trunk/drivers/input/keyboard/pxa27x_keypad.c 2006-10-01 09:04:38 UTC (rev 608) @@ -1,146 +0,0 @@ -/* - * linux/drivers/input/keyboard/pxa27x_keypad.c - * - * Driver for the PXA27x keypad controller. Currently this only supports the - * matrix keypad interface, not the direct keypad interface. - * - * Author: Alex Osborne <bob...@gm...> - */ - -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/init.h> -#include <linux/interrupt.h> -#include <linux/input.h> -#include <linux/device.h> -#include <linux/platform_device.h> - -#include <asm/mach-types.h> -#include <asm/mach/arch.h> -#include <asm/mach/map.h> - -#include <asm/arch/hardware.h> -#include <asm/arch/pxa-regs.h> -#include <asm/arch/irqs.h> -#include <asm/arch/pxa27x-keypad.h> - -static void pxa27x_keypad_report_event(struct pxa27x_keypad_platform_data *kp, - int row, int col, int pressed) -{ - if (row >= kp->rows || col >= kp->cols) { - printk(KERN_ERR "pxa27x_keypad_report_event: out of bounds " - "key event row=%d col=%d pressed=%d\n", row, col, - pressed); - return; - } - - if (kp->matrix[row*kp->cols + col] >= 0) { - input_report_key(kp->input, kp->matrix[row*kp->cols + col], - pressed); - } -} - -static irqreturn_t pxa27x_keypad_irq_handler(int irq, void *dev_id, struct pt_regs *regs) -{ - struct pxa27x_keypad_platform_data *kp = dev_id; - int mi, row, col; - - /* - * notify controller that interrupt was handled. - */ - mi = KPC & KPC_MI; - - /* report the status of every button */ - for (row=0; row < kp->rows; row++) { - for (col=0; col < kp->cols; col++) { - pxa27x_keypad_report_event(kp, row, col, KPASMKP(col) & - KPASMKPx_MKC(row, col)); - } - } - - return IRQ_HANDLED; -} - -static int __init pxa27x_keypad_probe(struct device *dev) -{ - struct pxa27x_keypad_platform_data *kp; - struct platform_device *pdev; - int err, i; - - pdev = to_platform_device(dev); - - kp = dev->platform_data; - - kp->input = input_allocate_device(); - kp->input->evbit[0] = BIT(EV_KEY); - - /* register buttons */ - for(i=0; i < kp->rows * kp->cols; i++) { - if( kp->matrix[i] >= 0 ) { - kp->input->keybit[LONG(kp->matrix[i])] |= BIT(kp->matrix[i]); - } - } - - kp->input->name = "PXA27x Keypad"; - kp->input->id.bustype = BUS_HOST; - input_register_device(kp->input); - - /* - * setup the PXA270 keypad controller for automatic on-activity scanning - */ - KPC |= kp->rows << 26; - KPC |= kp->cols << 23; - - KPC |= KPC_ASACT; /* enable automatic scan on activity */ - KPC &= ~KPC_AS; /* disable automatic scan */ - KPC &= ~KPC_IMKP; /* do not ignore multiple keypresses */ - - KPC &= ~KPC_DE; /* disable direct keypad */ - KPC &= ~KPC_DIE; /* disable direct keypad interrupt */ - - err = request_irq(IRQ_KEYPAD, pxa27x_keypad_irq_handler, SA_INTERRUPT, - "pxa27x_keypad", kp); - if(err) { - printk(KERN_ERR "pxa27x_keypad_probe: cannot request keypad IRQ\n"); - return -1; - } - - KPC |= KPC_ME; /* matrix keypad enabled */ - KPC |= KPC_MIE; /* matrix keypad interrupt enabled */ - - return 0; -} - -static int pxa27x_keypad_remove (struct device *dev) -{ - struct pxa27x_keypad_platform_data *kp = dev->platform_data; - - free_irq(IRQ_KEYPAD, NULL); - input_unregister_device(kp->input); - - return 0; -} - -static struct device_driver pxa27x_keypad_driver = { - .name = "pxa27x-keypad", - .bus = &platform_bus_type, - .probe = pxa27x_keypad_probe, - .remove = pxa27x_keypad_remove, -}; - -static int __init pxa27x_keypad_init(void) -{ - return driver_register(&pxa27x_keypad_driver); -} - -static void __exit pxa27x_keypad_exit(void) -{ - driver_unregister(&pxa27x_keypad_driver); -} - -module_init(pxa27x_keypad_init); -module_exit(pxa27x_keypad_exit); - -MODULE_AUTHOR ("Alex Osborne <bob...@gm...>"); -MODULE_DESCRIPTION ("Matrix keypad support for the PXA27x"); -MODULE_LICENSE ("GPL"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 04:59:27
|
Revision: 607 http://svn.sourceforge.net/hackndev/?rev=607&view=rev Author: bobofdoom Date: 2006-09-30 21:59:15 -0700 (Sat, 30 Sep 2006) Log Message: ----------- palmld: Reverting accidental LOCALVERSION_AUTO=y setting. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig Modified: linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2006-10-01 04:21:59 UTC (rev 606) +++ linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2006-10-01 04:59:15 UTC (rev 607) @@ -22,7 +22,7 @@ # General setup # CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y +# CONFIG_LOCALVERSION_AUTO is not set CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 04:22:06
|
Revision: 606 http://svn.sourceforge.net/hackndev/?rev=606&view=rev Author: bobofdoom Date: 2006-09-30 21:21:59 -0700 (Sat, 30 Sep 2006) Log Message: ----------- palmld: updated defconfig for 1904 epoch. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig Modified: linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2006-10-01 02:30:34 UTC (rev 605) +++ linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2006-10-01 04:21:59 UTC (rev 606) @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.17-hnd0 -# Sat Sep 30 17:13:18 2006 +# Sun Oct 1 12:34:11 2006 # CONFIG_ARM=y CONFIG_MMU=y @@ -22,7 +22,7 @@ # General setup # CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set @@ -150,6 +150,7 @@ # CONFIG_MACH_OMAP_PALMTC is not set # CONFIG_PXA_SHARPSL is not set CONFIG_PXA27x=y +CONFIG_PXA_RTC_EPOCH=1904 # CONFIG_SA1100_H3100 is not set # CONFIG_SA1100_H3600 is not set # CONFIG_SA1100_H3800 is not set @@ -441,14 +442,14 @@ # # ATA/ATAPI/MFM/RLL support # -CONFIG_IDE=m -CONFIG_BLK_DEV_IDE=m +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_BLK_DEV_IDEDISK=m +CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set # CONFIG_BLK_DEV_IDECS is not set # CONFIG_BLK_DEV_IDECD is not set @@ -459,7 +460,7 @@ # # IDE chipset support/bugfixes # -CONFIG_IDE_GENERIC=m +CONFIG_IDE_GENERIC=y # CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set @@ -777,7 +778,7 @@ CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set -# CONFIG_FB_FIRMWARE_EDID is not set +CONFIG_FB_FIRMWARE_EDID=y # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_IMAGEON is not set @@ -802,11 +803,12 @@ # # CONFIG_LOGO is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CLASS_DEVICE=m CONFIG_BACKLIGHT_DEVICE=y # CONFIG_BACKLIGHT_CORGI is not set -CONFIG_BACKLIGHT_PXAPWM=y -# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_PXAPWM=m +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y # # Sound This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 02:30:43
|
Revision: 605 http://svn.sourceforge.net/hackndev/?rev=605&view=rev Author: bobofdoom Date: 2006-09-30 19:30:34 -0700 (Sat, 30 Sep 2006) Log Message: ----------- all: time: Added CONFIG_PXA_RTC_EPOCH so that we can set hardware epoch to 1904 to coexist peacefully with POS. Modified Paths: -------------- linux4palm/linux/trunk/drivers/rtc/rtc-sa1100.c Modified: linux4palm/linux/trunk/drivers/rtc/rtc-sa1100.c =================================================================== --- linux4palm/linux/trunk/drivers/rtc/rtc-sa1100.c 2006-10-01 02:30:08 UTC (rev 604) +++ linux4palm/linux/trunk/drivers/rtc/rtc-sa1100.c 2006-10-01 02:30:34 UTC (rev 605) @@ -73,6 +73,12 @@ #define RTC_AF 0x20 #define RTC_UF 0x10 +#ifdef CONFIG_PXA_RTC_EPOCH +#define EPOCH_YEAR CONFIG_PXA_RTC_EPOCH +#else +#define EPOCH_YEAR 1970 +#endif + static unsigned long rtc_status; static unsigned long rtc_irq_data; static unsigned long rtc_freq = 1024; @@ -103,10 +109,10 @@ #define LEAPS_THRU_END_OF(y) ((y)/4 - (y)/100 + (y)/400) - year = 1970 + days / 365; - days -= ((year - 1970) * 365 + year = EPOCH_YEAR + days / 365; + days -= ((year - EPOCH_YEAR) * 365 + LEAPS_THRU_END_OF (year - 1) - - LEAPS_THRU_END_OF (1970 - 1)); + - LEAPS_THRU_END_OF (EPOCH_YEAR - 1)); if (days < 0) { year -= 1; days += 365 + is_leap(year); @@ -344,7 +350,7 @@ if (copy_from_user (&tm, (struct rtc_time*)arg, sizeof (tm))) return -EFAULT; tm.tm_year += 1900; - if (tm.tm_year < 1970 || (unsigned)tm.tm_mon >= 12 || + if (tm.tm_year < EPOCH_YEAR || (unsigned)tm.tm_mon >= 12 || tm.tm_mday < 1 || tm.tm_mday > (days_in_mo[tm.tm_mon] + (tm.tm_mon == 1 && is_leap(tm.tm_year))) || (unsigned)tm.tm_hour >= 24 || @@ -364,7 +370,7 @@ rtc_freq = arg; return 0; case RTC_EPOCH_READ: - return put_user (1970, (unsigned long *)arg); + return put_user (EPOCH_YEAR, (unsigned long *)arg); default: return -EINVAL; } @@ -399,7 +405,7 @@ "rtc_date\t: %04d-%02d-%02d\n" "rtc_epoch\t: %04d\n", tm.tm_hour, tm.tm_min, tm.tm_sec, - tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, 1970); + tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, EPOCH_YEAR); decodetime (RTAR, &tm); p += sprintf(p, "alrm_time\t: %02d:%02d:%02d\n" "alrm_date\t: %04d-%02d-%02d\n", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-10-01 02:30:17
|
Revision: 604 http://svn.sourceforge.net/hackndev/?rev=604&view=rev Author: bobofdoom Date: 2006-09-30 19:30:08 -0700 (Sat, 30 Sep 2006) Log Message: ----------- all: time: Added CONFIG_PXA_RTC_EPOCH so that we can set hardware epoch to 1904 to coexist peacefully with POS. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/Kconfig linux4palm/linux/trunk/arch/arm/mach-pxa/time.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/Kconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/Kconfig 2006-09-30 08:21:19 UTC (rev 603) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/Kconfig 2006-10-01 02:30:08 UTC (rev 604) @@ -164,4 +164,11 @@ to work around certain bootloaders overwriting them during resume. +config PXA_RTC_EPOCH + int "PXA RTC epoch year" + default "1970" + help + The default Linux epoch Jan 1st 1970, however to + operate alongside PalmOS nicely, change this to 1904. + endif Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/time.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/time.c 2006-09-30 08:21:19 UTC (rev 603) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/time.c 2006-10-01 02:30:08 UTC (rev 604) @@ -29,16 +29,19 @@ #include <asm/mach/time.h> #include <asm/arch/pxa-regs.h> +#define ONE_YEAR 31557600 /* seconds */ static inline unsigned long pxa_get_rtc_time(void) { - return RCNR; + return RCNR - (1970-CONFIG_PXA_RTC_EPOCH)*ONE_YEAR; } static int pxa_set_rtc(void) { unsigned long current_time = xtime.tv_sec; + current_time += (1970-CONFIG_PXA_RTC_EPOCH)*ONE_YEAR; + if (RTSR & RTSR_ALE) { /* make sure not to forward the clock over an alarm */ unsigned long alarm = RTAR; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-09-30 08:21:36
|
Revision: 603 http://svn.sourceforge.net/hackndev/?rev=603&view=rev Author: bobofdoom Date: 2006-09-30 01:21:19 -0700 (Sat, 30 Sep 2006) Log Message: ----------- palmld: Moved PM code to seperate file. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c Added Paths: ----------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_pm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile 2006-09-30 07:13:53 UTC (rev 602) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile 2006-09-30 08:21:19 UTC (rev 603) @@ -6,3 +6,4 @@ obj-$(CONFIG_PALMLD_PCMCIA) += palmld_pcmcia.o obj-$(CONFIG_PALMLD_USB) += palmld_usb.o obj-$(CONFIG_PALMLD_IDE) += palmld_ide.o +obj-$(CONFIG_PM) += palmld_pm.o Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2006-09-30 07:13:53 UTC (rev 602) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2006-09-30 08:21:19 UTC (rev 603) @@ -25,6 +25,7 @@ #include <asm/arch/palmld-gpio.h> #include <asm/arch/pxa27x-keypad.h> #include <asm/arch/pxapwm-bl.h> +#include <asm/arch/pxa-pm_ll.h> #include <sound/driver.h> #include <sound/core.h> @@ -62,16 +63,6 @@ int err; /** - * Setup GPIOs for MMC/SD card controller. - */ - pxa_gpio_mode(GPIO32_MMCCLK_MD); - pxa_gpio_mode(GPIO92_MMCDAT0_MD); - pxa_gpio_mode(GPIO109_MMCDAT1_MD); - pxa_gpio_mode(GPIO110_MMCDAT2_MD); - pxa_gpio_mode(GPIO111_MMCDAT3_MD); - pxa_gpio_mode(GPIO112_MMCCMD_MD); - - /** * Setup an interrupt for detecting card insert/remove events */ set_irq_type(IRQ_GPIO_PALMLD_SD_DETECT_N, IRQT_BOTHEDGE); @@ -332,100 +323,16 @@ iotable_init(palmld_io_desc, ARRAY_SIZE(palmld_io_desc)); - - /* Clear reset status */ //RCSR = RCSR_HWR | RCSR_WDR | RCSR_SMR | RCSR_GPR; } -#ifdef PM -#error It just doesn't seem to work. :-( -#include <linux/pm.h> -#include <asm/arch/pxa-pm_ll.h> -static u32 *addr_a0200000; -static u32 *addr_a0200004; -static u32 *addr_a0200008; -static u32 save_a0200000; -static u32 save_a0200004; -static u32 save_a0200008; - -static void palmld_pxa_ll_pm_suspend(unsigned long resume_addr) -{ - - SET_PALMLD_GPIO(GREEN_LED, 0); - SET_PALMLD_GPIO(ORANGE_LED, 0); - - save_a0200000 = *addr_a0200000; - save_a0200004 = *addr_a0200004; - save_a0200008 = *addr_a0200008; - - /* - c: e3a00121 mov r0, #1073741832 ; 0x40000008 - 10: e280060f add r0, r0, #15728640 ; 0xf00000 - 14: e590f000 ldr pc, [r0] - */ - - *addr_a0200000 = 0xe3a00121; // mov r0, #0x40000008 - *addr_a0200004 = 0xe280060f; // add r0, r0, #0xf00000 - *addr_a0200008 = 0xe590f000; // ldr pc, [r0] - - return; -} - -static void palmld_pxa_ll_pm_resume(void) -{ - - - SET_PALMLD_GPIO(GREEN_LED, 1); - palm_backlight_power(1); - *addr_a0200000 = save_a0200000; - *addr_a0200004 = save_a0200004; - *addr_a0200008 = save_a0200008; - SET_PALMLD_GPIO(ORANGE_LED, 1); -} - -static struct pxa_ll_pm_ops palmld_ll_pm_ops = { - .suspend = palmld_pxa_ll_pm_suspend, - .resume = palmld_pxa_ll_pm_resume, -}; -#else - -#endif - static void __init palmld_init(void) { - /* wake up on */ - PWER |= PWER_RTC | PWER_GPIO12; - PFER |= PWER_RTC; - PRER |= PWER_GPIO12; - - /* USB, in theory this can even wake us from deep sleep */ - PWER |= PWER_GPIO3; - PFER |= PWER_GPIO3; - PRER |= PWER_GPIO3; - - PCFR = PCFR_GPR_EN | PCFR_OPDE; - - /* as set by POS */ - PGSR0 = 0x00020000; - PGSR1 = 0x00000000; - PGSR2 = 0x01004000; - PGSR3 = 0x00421380; - - PGSR2 |= (1<<30); - PGSR3 |= (1<<7) | (1<<8) | (1<<9); - PSLR = 0xff400000; - - //PKWR |= GPIO_bit(0) | GPIO_bit(12) | GPIO_bit(3) | (1<<17); - PKSR = 0xffffffff; // clear - -#ifdef PM - addr_a0200000 = phys_to_virt(0xa0200000); - addr_a0200004 = phys_to_virt(0xa0200004); - addr_a0200008 = phys_to_virt(0xa0200008); - +#ifdef CONFIG_PM + extern struct pxa_ll_pm_ops palmld_ll_pm_ops; pxa_pm_set_ll_ops(&palmld_ll_pm_ops); #endif Added: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_pm.c (rev 0) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_pm.c 2006-09-30 08:21:19 UTC (rev 603) @@ -0,0 +1,76 @@ +#include <linux/kernel.h> +#include <linux/device.h> +#include <linux/pm.h> + +#include <asm/arch/pxa-pm_ll.h> +#include <asm/arch/hardware.h> +#include <asm/arch/pxa-regs.h> + +static u32 *addr_a0200000; +static u32 *addr_a0200004; +static u32 *addr_a0200008; +static u32 save_a0200000; +static u32 save_a0200004; +static u32 save_a0200008; + +static void palmld_pxa_ll_pm_suspend(unsigned long resume_addr) +{ + + /* wake up on */ + PWER |= PWER_RTC | PWER_GPIO12; + PFER |= PWER_RTC; + PRER |= PWER_GPIO12; + + /* USB, in theory this can even wake us from deep sleep */ + PWER |= PWER_GPIO3; + PFER |= PWER_GPIO3; + PRER |= PWER_GPIO3; + + PCFR = PCFR_GPR_EN | PCFR_OPDE; + + /* as set by POS */ + PGSR0 = 0x00020000; + PGSR1 = 0x00000000; + PGSR2 = 0x01004000; + PGSR3 = 0x00421380; + + PGSR2 |= (1<<30); + PGSR3 |= (1<<7) | (1<<8) | (1<<9); + + PSLR = 0xff400000; + + //PKWR |= GPIO_bit(0) | GPIO_bit(12) | GPIO_bit(3) | (1<<17); + PKSR = 0xffffffff; // clear + + addr_a0200000 = phys_to_virt(0xa0200000); + addr_a0200004 = phys_to_virt(0xa0200004); + addr_a0200008 = phys_to_virt(0xa0200008); + + save_a0200000 = *addr_a0200000; + save_a0200004 = *addr_a0200004; + save_a0200008 = *addr_a0200008; + + /* + c: e3a00121 mov r0, #1073741832 ; 0x40000008 + 10: e280060f add r0, r0, #15728640 ; 0xf00000 + 14: e590f000 ldr pc, [r0] + */ + + *addr_a0200000 = 0xe3a00121; // mov r0, #0x40000008 + *addr_a0200004 = 0xe280060f; // add r0, r0, #0xf00000 + *addr_a0200008 = 0xe590f000; // ldr pc, [r0] + + return; +} + +static void palmld_pxa_ll_pm_resume(void) +{ + *addr_a0200000 = save_a0200000; + *addr_a0200004 = save_a0200004; + *addr_a0200008 = save_a0200008; +} + +struct pxa_ll_pm_ops palmld_ll_pm_ops = { + .suspend = palmld_pxa_ll_pm_suspend, + .resume = palmld_pxa_ll_pm_resume, +}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2006-09-30 07:13:59
|
Revision: 602 http://svn.sourceforge.net/hackndev/?rev=602&view=rev Author: bobofdoom Date: 2006-09-30 00:13:53 -0700 (Sat, 30 Sep 2006) Log Message: ----------- palmld: Updated defconfig for 2.6.17. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig Modified: linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2006-09-29 18:37:11 UTC (rev 601) +++ linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2006-09-30 07:13:53 UTC (rev 602) @@ -1,13 +1,15 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.16-hnd0 -# Sun Sep 17 12:32:51 2006 +# Linux kernel version: 2.6.17-hnd0 +# Sat Sep 30 17:13:18 2006 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 # # Code maturity level options @@ -29,6 +31,7 @@ # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set # CONFIG_MINIMAL_OOPS is not set +# CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_UID16=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y @@ -45,10 +48,6 @@ CONFIG_SHMEM=y CONFIG_USELIB=y CONFIG_CORE_DUMP=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 CONFIG_SLAB=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 @@ -60,7 +59,6 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_KMOD is not set @@ -68,6 +66,7 @@ # # Block layer # +# CONFIG_BLK_DEV_IO_TRACE is not set # # IO Schedulers @@ -89,11 +88,13 @@ # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set @@ -113,6 +114,7 @@ # Intel PXA2xx Implementations # # CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set # CONFIG_MACH_MAINSTONE is not set # CONFIG_ARCH_PXA_IDP is not set # CONFIG_ARCH_ESERIES is not set @@ -126,6 +128,12 @@ # CONFIG_MACH_HX2750 is not set # CONFIG_ARCH_H5400 is not set # CONFIG_MACH_HIMALAYA is not set +# CONFIG_MACH_HTCUNIVERSAL is not set +# CONFIG_MACH_HTCALPINE is not set +# CONFIG_MACH_MAGICIAN is not set +# CONFIG_MACH_HTCAPACHE is not set +# CONFIG_MACH_BLUEANGEL is not set +# CONFIG_MACH_HTCBEETLES is not set # CONFIG_ARCH_AXIMX5 is not set # CONFIG_ARCH_AXIMX3 is not set # CONFIG_ARCH_ROVERP1 is not set @@ -167,6 +175,7 @@ CONFIG_ARM_THUMB=y # CONFIG_ARMBOOT_PROC is not set CONFIG_XSCALE_PMU=y +# CONFIG_KEXEC is not set # # Compaq/iPAQ Platforms @@ -204,6 +213,7 @@ # # CONFIG_PREEMPT is not set # CONFIG_NO_IDLE_HZ is not set +CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y @@ -283,12 +293,15 @@ # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y # CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set # CONFIG_NETFILTER is not set # @@ -378,6 +391,8 @@ CONFIG_IEEE80211_CRYPT_WEP=m # CONFIG_IEEE80211_CRYPT_CCMP is not set # CONFIG_IEEE80211_CRYPT_TKIP is not set +# CONFIG_IEEE80211_SOFTMAC is not set +CONFIG_WIRELESS_EXT=y # # Device Drivers @@ -508,6 +523,7 @@ # Wireless LAN (non-hamradio) # CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set # # Obsolete Wireless cards support (pre-802.11) @@ -536,6 +552,7 @@ CONFIG_HOSTAP_FIRMWARE=y CONFIG_HOSTAP_FIRMWARE_NVRAM=y CONFIG_HOSTAP_CS=m +# CONFIG_ACX is not set CONFIG_NET_WIRELESS=y # @@ -729,13 +746,23 @@ # CONFIG_MCP is not set # -# Multimedia Capabilities Port drivers +# LED devices # +# CONFIG_NEW_LEDS is not set # +# LED drivers +# + +# +# LED Triggers +# + +# # Multimedia devices # # CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_V4L2=y # # Digital Video Broadcasting Devices @@ -750,6 +777,7 @@ CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set +# CONFIG_FB_FIRMWARE_EDID is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_IMAGEON is not set @@ -774,11 +802,11 @@ # # CONFIG_LOGO is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_DEVICE=y -CONFIG_BACKLIGHT_PXAPWM=m -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_DEVICE=y +# CONFIG_BACKLIGHT_CORGI is not set +CONFIG_BACKLIGHT_PXAPWM=y +# CONFIG_LCD_CLASS_DEVICE is not set # # Sound @@ -796,9 +824,11 @@ CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set @@ -823,6 +853,8 @@ # # PCMCIA devices # +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set # # Open Sound System @@ -834,6 +866,7 @@ # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_EHCI is not set # CONFIG_USB is not set # @@ -858,9 +891,10 @@ # CONFIG_MMC_WBSD_PALMT3 is not set # -# LED devices +# Real Time Clock # -# CONFIG_CLASS_LEDS is not set +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set # # File systems @@ -907,7 +941,6 @@ CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set # CONFIG_CONFIGFS_FS is not set # @@ -1013,7 +1046,9 @@ # CONFIG_DEBUG_KERNEL is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_FS is not set CONFIG_FRAME_POINTER=y +# CONFIG_UNWIND_INFO is not set # CONFIG_DEBUG_USER is not set # This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |