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 #include #include +#include #include #include @@ -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, };