diff options
Diffstat (limited to 'arch/arm/mach-pxa/lubbock.c')
-rw-r--r-- | arch/arm/mach-pxa/lubbock.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c index 1f38033921e9..beccf455f796 100644 --- a/arch/arm/mach-pxa/lubbock.c +++ b/arch/arm/mach-pxa/lubbock.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <asm/arch/pxa-regs.h> | 35 | #include <asm/arch/pxa-regs.h> |
36 | #include <asm/arch/lubbock.h> | 36 | #include <asm/arch/lubbock.h> |
37 | #include <asm/arch/udc.h> | 37 | #include <asm/arch/udc.h> |
38 | #include <asm/arch/irda.h> | ||
38 | #include <asm/arch/pxafb.h> | 39 | #include <asm/arch/pxafb.h> |
39 | #include <asm/arch/mmc.h> | 40 | #include <asm/arch/mmc.h> |
40 | 41 | ||
@@ -237,16 +238,40 @@ static struct pxamci_platform_data lubbock_mci_platform_data = { | |||
237 | .init = lubbock_mci_init, | 238 | .init = lubbock_mci_init, |
238 | }; | 239 | }; |
239 | 240 | ||
241 | static void lubbock_irda_transceiver_mode(struct device *dev, int mode) | ||
242 | { | ||
243 | unsigned long flags; | ||
244 | |||
245 | local_irq_save(flags); | ||
246 | if (mode & IR_SIRMODE) { | ||
247 | LUB_MISC_WR &= ~(1 << 4); | ||
248 | } else if (mode & IR_FIRMODE) { | ||
249 | LUB_MISC_WR |= 1 << 4; | ||
250 | } | ||
251 | local_irq_restore(flags); | ||
252 | } | ||
253 | |||
254 | static struct pxaficp_platform_data lubbock_ficp_platform_data = { | ||
255 | .transceiver_cap = IR_SIRMODE | IR_FIRMODE, | ||
256 | .transceiver_mode = lubbock_irda_transceiver_mode, | ||
257 | }; | ||
258 | |||
240 | static void __init lubbock_init(void) | 259 | static void __init lubbock_init(void) |
241 | { | 260 | { |
242 | pxa_set_udc_info(&udc_info); | 261 | pxa_set_udc_info(&udc_info); |
243 | set_pxa_fb_info(&sharp_lm8v31); | 262 | set_pxa_fb_info(&sharp_lm8v31); |
244 | pxa_set_mci_info(&lubbock_mci_platform_data); | 263 | pxa_set_mci_info(&lubbock_mci_platform_data); |
264 | pxa_set_ficp_info(&lubbock_ficp_platform_data); | ||
245 | (void) platform_add_devices(devices, ARRAY_SIZE(devices)); | 265 | (void) platform_add_devices(devices, ARRAY_SIZE(devices)); |
246 | } | 266 | } |
247 | 267 | ||
248 | static struct map_desc lubbock_io_desc[] __initdata = { | 268 | static struct map_desc lubbock_io_desc[] __initdata = { |
249 | { LUBBOCK_FPGA_VIRT, LUBBOCK_FPGA_PHYS, 0x00100000, MT_DEVICE }, /* CPLD */ | 269 | { /* CPLD */ |
270 | .virtual = LUBBOCK_FPGA_VIRT, | ||
271 | .pfn = __phys_to_pfn(LUBBOCK_FPGA_PHYS), | ||
272 | .length = 0x00100000, | ||
273 | .type = MT_DEVICE | ||
274 | } | ||
250 | }; | 275 | }; |
251 | 276 | ||
252 | static void __init lubbock_map_io(void) | 277 | static void __init lubbock_map_io(void) |