rendered paste bodyIndex: 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,
};