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