From: <z7...@us...> - 2007-03-19 00:35:46
|
Revision: 920 http://svn.sourceforge.net/hackndev/?rev=920&view=rev Author: z72ka Date: 2007-03-18 12:35:13 -0700 (Sun, 18 Mar 2007) Log Message: ----------- palmz72: Make irda to work - found IR SD GPIO and rewritten IRDA init to pxafcpi - power management, found GPIO for blank screen, blank screen is used for better and nice resume LCD Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/gpio_map.txt linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmz72-gpio.h Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/gpio_map.txt =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/gpio_map.txt 2007-03-18 19:18:56 UTC (rev 919) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/gpio_map.txt 2007-03-18 19:35:13 UTC (rev 920) @@ -1,5 +1,5 @@ GPIO pin Level Dir Function -GPIO_0 0 I 00 POWER detect +GPIO_0 0 I 00 Low POWER detect? GPIO_1 1 I 00 GPIO_2 1 O 00 SYS_EN GPIO_3 1 O 00 @@ -13,12 +13,12 @@ GPIO_11 0 I 00 GPIO_12 1 I 00 USB_PULLUP GPIO_13 0 I 02 KP_DKIN7 // Voice Memo button -GPIO_14 0 I 00 +GPIO_14 0 I 00 SD card inserted GPIO_15 0 I 00 USB_DETECT GPIO_16 1 O 02 PWM_OUT0 GPIO_17 1 O 00 Bluetooth: 1 when enabled in POS GPIO_18 0 O 00 -GPIO_19 1 O 00 +GPIO_19 1 O 00 Screen goes white when 0 GPIO_20 1 O 00 GPIO_21 0 O 00 GPIO_22 0 O 00 @@ -48,7 +48,7 @@ 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_49 0 O 00 IR_SD GPIO_50 1 I 01 CIF_DD3 GPIO_51 1 I 01 CIF_DD2 GPIO_52 1 I 01 CIF_DD4 Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2007-03-18 19:18:56 UTC (rev 919) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2007-03-18 19:35:13 UTC (rev 920) @@ -21,6 +21,7 @@ #include <linux/platform_device.h> #include <linux/fb.h> #include <linux/irq.h> +#include <linux/delay.h> #include <asm/arch/audio.h> #include <asm/arch/hardware.h> @@ -30,7 +31,6 @@ #include <asm/arch/pxa27x_keyboard.h> #include <asm/arch/pxa-pm_ll.h> #include <asm/arch/pxapwm-bl.h> -#include <asm/arch/irda.h> #include <asm/arch/serial.h> #include <linux/gpio_keys.h> @@ -208,64 +208,40 @@ /******** * IRDA * ********/ -/* -static void -palmz72_irda_configure (struct uart_pxa_port *up, int enable) -{ - // Switch STUART RX/TX pins to SIR - pxa_gpio_mode( GPIO_NR_PALMZ72_STD_RXD_MD ); - pxa_gpio_mode( GPIO_NR_PALMZ72_STD_TXD_MD ); - // make sure FIR ICP is off - ICCR0 = 0; - if (enable) { - // configure STUART to for SIR - STISR = STISR_XMODE | STISR_RCVEIR | STISR_RXPL; - GPSR(91) = GPIO_bit(91); - } else { - STISR = 0; - } -} - -static void -palmz72_irda_set_txrx (struct uart_pxa_port *up, int txrx) +static void palmz72_irda_transceiver_mode(struct device *dev, int mode) { - unsigned old_stisr = STISR; - unsigned new_stisr = old_stisr; + unsigned long flags; + + local_irq_save(flags); - if (txrx & PXA_SERIAL_TX) { - // Ignore RX if TX is set - txrx &= PXA_SERIAL_TX; - new_stisr |= STISR_XMITIR; - } else - new_stisr &= ~STISR_XMITIR; + if (mode & IR_SIRMODE){ + printk (KERN_INFO "IRDA: setting mode to SIR\n"); + } + else if (mode & IR_FIRMODE){ + printk (KERN_INFO "IRDA: setting mode to FIR\n"); + } + if (mode & IR_OFF){ + printk (KERN_INFO "IRDA: turning OFF\n"); + SET_PALMZ72_GPIO(IR_SD, 1); + } + else { + printk (KERN_INFO "IRDA: turning ON\n"); + SET_PALMZ72_GPIO(IR_SD, 0); + SET_PALMZ72_GPIO(ICP_TXD_MD, 1); + mdelay(30); + SET_PALMZ72_GPIO(ICP_TXD_MD, 0); + } - if (txrx & PXA_SERIAL_RX) - new_stisr |= STISR_RCVEIR; - else - new_stisr &= ~STISR_RCVEIR; - - if (new_stisr != old_stisr) { - while (!(STLSR & LSR_TEMT)) - ; - STISR = new_stisr; - } + local_irq_restore(flags); } -static int -palmz72_irda_get_txrx (struct uart_pxa_port *up) -{ - return ((STISR & STISR_XMITIR) ? PXA_SERIAL_TX : 0) | - ((STISR & STISR_RCVEIR) ? PXA_SERIAL_RX : 0); -} - -static struct platform_pxa_serial_funcs palmz72_pxa_irda_funcs = { - .configure = palmz72_irda_configure, - .set_txrx = palmz72_irda_set_txrx, - .get_txrx = palmz72_irda_get_txrx, +static struct pxaficp_platform_data palmz72_ficp_platform_data = { + .transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF, + .transceiver_mode = palmz72_irda_transceiver_mode, }; -*/ + /************************* * AC97 audio controller * *************************/ @@ -373,7 +349,6 @@ &palmz72_pm, &palmz72_backlight, &palmz72_keypad, - //&palmz72_pxa_irda_funcs #ifdef CONFIG_GPIO_KEYS &palmz72_pxa_keys, #endif @@ -408,8 +383,8 @@ set_pxa_fb_info( &palmz72_lcd_screen ); pxa_set_mci_info( &palmz72_mci_platform_data ); - pxa_set_udc_info(&palmz72_udc_mach_info ); - //stuart_device.dev.platform_data = &palmz72_pxa_irda_funcs; + pxa_set_udc_info( &palmz72_udc_mach_info ); + pxa_set_ficp_info( &palmz72_ficp_platform_data ); platform_add_devices( devices, ARRAY_SIZE(devices) ); } Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c 2007-03-18 19:18:56 UTC (rev 919) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c 2007-03-18 19:35:13 UTC (rev 920) @@ -46,7 +46,7 @@ /* Wakeup by keyboard :) */ PKWR = 0xe0001; - /* Enabled Deep-Sleep mode ?? */ + /* Enabled Deep-Sleep mode */ PCFR |= PCFR_DS; /* Low power mode */ @@ -61,6 +61,8 @@ /* Turn off LCD power */ SET_PALMZ72_GPIO(LCD_POWER,0); + /* Turn screen off */ + SET_PALMZ72_GPIO(SCREEN,0); /* Turn off USB power */ SET_PALMZ72_GPIO(USB_POWER,0); @@ -85,6 +87,8 @@ /* Turn on LCD power */ SET_PALMZ72_GPIO(LCD_POWER,1); + /* Turn screen on */ + SET_PALMZ72_GPIO(SCREEN,1); /* Turn on USB power */ SET_PALMZ72_GPIO(USB_POWER,1); Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmz72-gpio.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmz72-gpio.h 2007-03-18 19:18:56 UTC (rev 919) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmz72-gpio.h 2007-03-18 19:35:13 UTC (rev 920) @@ -40,14 +40,16 @@ #define GPIO_NR_PALMZ72_LED_MD (GPIO_NR_PALMZ72_LED | GPIO_ALT_FN_1_OUT) -/* Serial */ +/* IRDA */ -#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) +#define GPIO_NR_PALMZ72_IR_SD 49 +#define GPIO_NR_PALMZ72_ICP_RXD 46 +#define GPIO_NR_PALMZ72_ICP_TXD 47 +#define GPIO_NR_PALMZ72_ICP_RXD_MD (GPIO_NR_PALMZ72_ICP_RXD | GPIO_ALT_FN_1_IN) +#define GPIO_NR_PALMZ72_ICP_TXD_MD (GPIO_NR_PALMZ72_ICP_TXD | GPIO_ALT_FN_2_OUT) + /* Wolfson WM9712 */ #define GPIO_NR_PALMZ72_WM9712_IRQ 27 @@ -75,6 +77,7 @@ #define GPIO_NR_PALMZ72_GPIO_RESET 1 #define IRQ_GPIO_PALMZ72_GPIO_RESET IRQ_GPIO(GPIO_NR_PALMZ72_GPIO_RESET) +#define GPIO_NR_PALMZ72_SCREEN 19 //screen on when this GPIO is 1 /* Utility macros */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |