diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2010-05-12 21:07:54 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-05-19 23:16:30 -0400 |
commit | 85f91dd082b5569b323ca261f0242c33a25d3a12 (patch) | |
tree | 855bc04495872c38d9227ad124d36738882c9c67 /arch/arm/mach-shmobile/board-g3evm.c | |
parent | 495b3cea94135a97e919bca67d7dcfdefafc7767 (diff) |
ARM: mach-shmobile: g3evm: Add IrDA support
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile/board-g3evm.c')
-rw-r--r-- | arch/arm/mach-shmobile/board-g3evm.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-g3evm.c b/arch/arm/mach-shmobile/board-g3evm.c index 9247503296c4..19b3bf3bf566 100644 --- a/arch/arm/mach-shmobile/board-g3evm.c +++ b/arch/arm/mach-shmobile/board-g3evm.c | |||
@@ -38,6 +38,14 @@ | |||
38 | #include <asm/mach/arch.h> | 38 | #include <asm/mach/arch.h> |
39 | #include <asm/mach/map.h> | 39 | #include <asm/mach/map.h> |
40 | 40 | ||
41 | /* | ||
42 | * IrDA | ||
43 | * | ||
44 | * S67: 5bit : ON power | ||
45 | * : 6bit : ON remote control | ||
46 | * OFF IrDA | ||
47 | */ | ||
48 | |||
41 | static struct mtd_partition nor_flash_partitions[] = { | 49 | static struct mtd_partition nor_flash_partitions[] = { |
42 | { | 50 | { |
43 | .name = "loader", | 51 | .name = "loader", |
@@ -209,11 +217,30 @@ static struct platform_device nand_flash_device = { | |||
209 | }, | 217 | }, |
210 | }; | 218 | }; |
211 | 219 | ||
220 | static struct resource irda_resources[] = { | ||
221 | [0] = { | ||
222 | .start = 0xE6D00000, | ||
223 | .end = 0xE6D01FD4 - 1, | ||
224 | .flags = IORESOURCE_MEM, | ||
225 | }, | ||
226 | [1] = { | ||
227 | .start = 20, | ||
228 | .flags = IORESOURCE_IRQ, | ||
229 | }, | ||
230 | }; | ||
231 | |||
232 | static struct platform_device irda_device = { | ||
233 | .name = "sh_irda", | ||
234 | .resource = irda_resources, | ||
235 | .num_resources = ARRAY_SIZE(irda_resources), | ||
236 | }; | ||
237 | |||
212 | static struct platform_device *g3evm_devices[] __initdata = { | 238 | static struct platform_device *g3evm_devices[] __initdata = { |
213 | &nor_flash_device, | 239 | &nor_flash_device, |
214 | &usb_host_device, | 240 | &usb_host_device, |
215 | &keysc_device, | 241 | &keysc_device, |
216 | &nand_flash_device, | 242 | &nand_flash_device, |
243 | &irda_device, | ||
217 | }; | 244 | }; |
218 | 245 | ||
219 | static struct map_desc g3evm_io_desc[] __initdata = { | 246 | static struct map_desc g3evm_io_desc[] __initdata = { |
@@ -318,6 +345,12 @@ static void __init g3evm_init(void) | |||
318 | /* FOE, FCDE, FSC on dedicated pins */ | 345 | /* FOE, FCDE, FSC on dedicated pins */ |
319 | __raw_writel(__raw_readl(0xe6158048) & ~(1 << 15), 0xe6158048); | 346 | __raw_writel(__raw_readl(0xe6158048) & ~(1 << 15), 0xe6158048); |
320 | 347 | ||
348 | /* IrDA */ | ||
349 | gpio_request(GPIO_FN_IRDA_OUT, NULL); | ||
350 | gpio_request(GPIO_FN_IRDA_IN, NULL); | ||
351 | gpio_request(GPIO_FN_IRDA_FIRSEL, NULL); | ||
352 | set_irq_type(20, IRQ_TYPE_LEVEL_LOW); | ||
353 | |||
321 | sh7367_add_standard_devices(); | 354 | sh7367_add_standard_devices(); |
322 | 355 | ||
323 | platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices)); | 356 | platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices)); |