aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2011-01-14 06:00:41 -0500
committerPaul Mundt <lethal@linux-sh.org>2011-01-17 23:51:46 -0500
commita33bb8a2cf7a686564df170dd94b1daa766c58bd (patch)
tree6f58addeb62620f4b52444ae3fea286b3a9a6cf0 /arch/arm/mach-shmobile
parentff9531ec1caf0e062da132933e33878f94449274 (diff)
ARM: mach-shmobile: ag5evm: 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')
-rw-r--r--arch/arm/mach-shmobile/board-ag5evm.c26
-rw-r--r--arch/arm/mach-shmobile/clock-sh73a0.c4
2 files changed, 29 insertions, 1 deletions
diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c
index c18a740a4159..fb94162382e2 100644
--- a/arch/arm/mach-shmobile/board-ag5evm.c
+++ b/arch/arm/mach-shmobile/board-ag5evm.c
@@ -183,11 +183,32 @@ static struct platform_device mmc_device = {
183 .resource = sh_mmcif_resources, 183 .resource = sh_mmcif_resources,
184}; 184};
185 185
186/* IrDA */
187static struct resource irda_resources[] = {
188 [0] = {
189 .start = 0xE6D00000,
190 .end = 0xE6D01FD4 - 1,
191 .flags = IORESOURCE_MEM,
192 },
193 [1] = {
194 .start = gic_spi(95),
195 .flags = IORESOURCE_IRQ,
196 },
197};
198
199static struct platform_device irda_device = {
200 .name = "sh_irda",
201 .id = 0,
202 .resource = irda_resources,
203 .num_resources = ARRAY_SIZE(irda_resources),
204};
205
186static struct platform_device *ag5evm_devices[] __initdata = { 206static struct platform_device *ag5evm_devices[] __initdata = {
187 &eth_device, 207 &eth_device,
188 &keysc_device, 208 &keysc_device,
189 &fsi_device, 209 &fsi_device,
190 &mmc_device, 210 &mmc_device,
211 &irda_device,
191}; 212};
192 213
193static struct map_desc ag5evm_io_desc[] __initdata = { 214static struct map_desc ag5evm_io_desc[] __initdata = {
@@ -287,6 +308,11 @@ static void __init ag5evm_init(void)
287 gpio_request(GPIO_FN_FSIAISLD, NULL); 308 gpio_request(GPIO_FN_FSIAISLD, NULL);
288 gpio_request(GPIO_FN_FSIAOSLD, NULL); 309 gpio_request(GPIO_FN_FSIAOSLD, NULL);
289 310
311 /* IrDA */
312 gpio_request(GPIO_FN_PORT241_IRDA_OUT, NULL);
313 gpio_request(GPIO_FN_PORT242_IRDA_IN, NULL);
314 gpio_request(GPIO_FN_PORT243_IRDA_FIRSEL, NULL);
315
290#ifdef CONFIG_CACHE_L2X0 316#ifdef CONFIG_CACHE_L2X0
291 /* Shared attribute override enable, 64K*8way */ 317 /* Shared attribute override enable, 64K*8way */
292 l2x0_init(__io(0xf0100000), 0x00460000, 0xc2000fff); 318 l2x0_init(__io(0xf0100000), 0x00460000, 0xc2000fff);
diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c
index 720a71433be6..aa1c51dc6d77 100644
--- a/arch/arm/mach-shmobile/clock-sh73a0.c
+++ b/arch/arm/mach-shmobile/clock-sh73a0.c
@@ -258,7 +258,7 @@ enum { MSTP001,
258 MSTP125, MSTP116, 258 MSTP125, MSTP116,
259 MSTP219, 259 MSTP219,
260 MSTP207, MSTP206, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200, 260 MSTP207, MSTP206, MSTP204, MSTP203, MSTP202, MSTP201, MSTP200,
261 MSTP331, MSTP329, MSTP323, MSTP312, 261 MSTP331, MSTP329, MSTP325, MSTP323, MSTP312,
262 MSTP411, MSTP410, MSTP403, 262 MSTP411, MSTP410, MSTP403,
263 MSTP_NR }; 263 MSTP_NR };
264 264
@@ -279,6 +279,7 @@ static struct clk mstp_clks[MSTP_NR] = {
279 [MSTP200] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 0, 0), /* SCIFA4 */ 279 [MSTP200] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR2, 0, 0), /* SCIFA4 */
280 [MSTP331] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR3, 31, 0), /* SCIFA6 */ 280 [MSTP331] = MSTP(&div6_clks[DIV6_SUB], SMSTPCR3, 31, 0), /* SCIFA6 */
281 [MSTP329] = MSTP(&r_clk, SMSTPCR3, 29, 0), /* CMT10 */ 281 [MSTP329] = MSTP(&r_clk, SMSTPCR3, 29, 0), /* CMT10 */
282 [MSTP325] = MSTP(&div4_clks[DIV6_SUB], SMSTPCR3, 25, 0), /* IrDA */
282 [MSTP323] = MSTP(&div4_clks[DIV4_HP], SMSTPCR3, 23, 0), /* IIC1 */ 283 [MSTP323] = MSTP(&div4_clks[DIV4_HP], SMSTPCR3, 23, 0), /* IIC1 */
283 [MSTP312] = MSTP(&div4_clks[DIV4_HP], SMSTPCR3, 12, 0), /* MMCIF0 */ 284 [MSTP312] = MSTP(&div4_clks[DIV4_HP], SMSTPCR3, 12, 0), /* MMCIF0 */
284 [MSTP411] = MSTP(&div4_clks[DIV4_HP], SMSTPCR4, 11, 0), /* IIC3 */ 285 [MSTP411] = MSTP(&div4_clks[DIV4_HP], SMSTPCR4, 11, 0), /* IIC3 */
@@ -308,6 +309,7 @@ static struct clk_lookup lookups[] = {
308 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP200]), /* SCIFA4 */ 309 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP200]), /* SCIFA4 */
309 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */ 310 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */
310 CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]), /* CMT10 */ 311 CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]), /* CMT10 */
312 CLKDEV_DEV_ID("sh_irda.0", &mstp_clks[MSTP325]), /* IrDA */
311 CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]), /* I2C1 */ 313 CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]), /* I2C1 */
312 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP312]), /* MMCIF0 */ 314 CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP312]), /* MMCIF0 */
313 CLKDEV_DEV_ID("i2c-sh_mobile.3", &mstp_clks[MSTP411]), /* I2C3 */ 315 CLKDEV_DEV_ID("i2c-sh_mobile.3", &mstp_clks[MSTP411]), /* I2C3 */