All pastes #839448 Raw Edit

Stuff

public text v1 · immutable
#839448 ·published 2007-12-31 00:53 UTC
rendered paste body
Index: blueangel.c
===================================================================
RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/htcblueangel/blueangel.c,v
retrieving revision 1.39
diff -u -r1.39 blueangel.c
--- blueangel.c	26 Jul 2007 00:17:16 -0000	1.39
+++ blueangel.c	31 Dec 2007 00:52:21 -0000
@@ -39,6 +39,7 @@
 #include <asm/arch/irq.h>
 #include <asm/arch/pxafb.h>
 #include <asm/arch/udc.h>
+#include <asm/arch/irda.h>
 
 #include <asm/hardware/ipaq-asic3.h>
 #include <asm/hardware/asic3_leds.h>
@@ -183,14 +184,29 @@
 	pxa_init_irq();
 }
 
-static void ser_stuart_gpio_config(int enable)
+/* IrDA */
+static void blueangel_irda_transceiver_mode(struct device *dev, int mode)
 {
-	printk("ser_stuart_gpio_config %d\n", enable);
-	if (enable == PXA_UART_CFG_PRE_STARTUP) {
-    STISR=0;
-  }
+        unsigned long flags;
+
+        local_irq_save(flags);
+
+        if (mode & IR_OFF) {
+                DPM_DEBUG("htcblueangel_irda: Turning off port\n");
+    		STISR=1;
+        } else {
+                DPM_DEBUG("htcblueangel_irda: Turning on port\n");
+    		STISR=0;
+        }
+
+        local_irq_restore(flags);
 }
 
+static struct pxaficp_platform_data blueangel_ficp_platform_data = {
+        .transceiver_cap  = IR_SIRMODE | IR_OFF,
+        .transceiver_mode = blueangel_irda_transceiver_mode,
+};
+
 static void ser_hwuart_gpio_config(int enable)
 {
 	printk("ser_hwuart_gpio_config %d\n", enable);
@@ -263,10 +279,11 @@
 	GFER2   = 0x00000000;
 #endif
 
+	pxa_set_ficp_info(&blueangel_ficp_platform_data);
 
-	pxa_serial_funcs[2].configure = ser_stuart_gpio_config;
+	//pxa_serial_funcs[2].configure = ser_stuart_gpio_config;
 	pxa_serial_funcs[3].configure = ser_hwuart_gpio_config;
-	pxa_set_stuart_info(&pxa_serial_funcs[2]);
+	//pxa_set_stuart_info(&pxa_serial_funcs[2]);
 	pxa_set_hwuart_info(&pxa_serial_funcs[3]);
 }
 
@@ -277,8 +294,10 @@
 extern struct platform_device blueangel_bl;
 static struct platform_device blueangel_lcd = { .name = "blueangel-lcd", };
 static struct platform_device blueangel_leds = { .name = "blueangel-leds", };
-static struct platform_device blueangel_pcmcia    = { .name =
-                                            "blueangel-pcmcia", };
+static struct platform_device blueangel_irda = { .name = "blueangel-irda", };
+static struct platform_device blueangel_bt = { .name = "blueangel-bt", };
+static struct platform_device blueangel_pcmcia = { .name = "blueangel-pcmcia", };
+
 
 /*
  *  ASIC3 buttons
@@ -338,6 +357,8 @@
 	&blueangel_leds,
 	&blueangel_pcmcia,
 	&blueangel_leds_pdev,
+	&blueangel_bt,
+	&blueangel_irda,
 };