diff options
-rw-r--r-- | arch/arm/mach-shmobile/board-ag5evm.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c index 7336a00c34e7..d4c82bd42524 100644 --- a/arch/arm/mach-shmobile/board-ag5evm.c +++ b/arch/arm/mach-shmobile/board-ag5evm.c | |||
@@ -33,6 +33,8 @@ | |||
33 | #include <linux/input.h> | 33 | #include <linux/input.h> |
34 | #include <linux/input/sh_keysc.h> | 34 | #include <linux/input/sh_keysc.h> |
35 | 35 | ||
36 | #include <sound/sh_fsi.h> | ||
37 | |||
36 | #include <mach/hardware.h> | 38 | #include <mach/hardware.h> |
37 | #include <mach/sh73a0.h> | 39 | #include <mach/sh73a0.h> |
38 | #include <mach/common.h> | 40 | #include <mach/common.h> |
@@ -113,9 +115,41 @@ static struct platform_device keysc_device = { | |||
113 | }, | 115 | }, |
114 | }; | 116 | }; |
115 | 117 | ||
118 | /* FSI A */ | ||
119 | static struct sh_fsi_platform_info fsi_info = { | ||
120 | .porta_flags = SH_FSI_OUT_SLAVE_MODE | | ||
121 | SH_FSI_IN_SLAVE_MODE | | ||
122 | SH_FSI_OFMT(I2S) | | ||
123 | SH_FSI_IFMT(I2S), | ||
124 | }; | ||
125 | |||
126 | static struct resource fsi_resources[] = { | ||
127 | [0] = { | ||
128 | .name = "FSI", | ||
129 | .start = 0xEC230000, | ||
130 | .end = 0xEC230400 - 1, | ||
131 | .flags = IORESOURCE_MEM, | ||
132 | }, | ||
133 | [1] = { | ||
134 | .start = gic_spi(146), | ||
135 | .flags = IORESOURCE_IRQ, | ||
136 | }, | ||
137 | }; | ||
138 | |||
139 | static struct platform_device fsi_device = { | ||
140 | .name = "sh_fsi2", | ||
141 | .id = -1, | ||
142 | .num_resources = ARRAY_SIZE(fsi_resources), | ||
143 | .resource = fsi_resources, | ||
144 | .dev = { | ||
145 | .platform_data = &fsi_info, | ||
146 | }, | ||
147 | }; | ||
148 | |||
116 | static struct platform_device *ag5evm_devices[] __initdata = { | 149 | static struct platform_device *ag5evm_devices[] __initdata = { |
117 | ð_device, | 150 | ð_device, |
118 | &keysc_device, | 151 | &keysc_device, |
152 | &fsi_device, | ||
119 | }; | 153 | }; |
120 | 154 | ||
121 | static struct map_desc ag5evm_io_desc[] __initdata = { | 155 | static struct map_desc ag5evm_io_desc[] __initdata = { |
@@ -195,6 +229,13 @@ static void __init ag5evm_init(void) | |||
195 | gpio_request(GPIO_PORT145, NULL); /* RESET */ | 229 | gpio_request(GPIO_PORT145, NULL); /* RESET */ |
196 | gpio_direction_output(GPIO_PORT145, 1); | 230 | gpio_direction_output(GPIO_PORT145, 1); |
197 | 231 | ||
232 | /* FSI A */ | ||
233 | gpio_request(GPIO_FN_FSIACK, NULL); | ||
234 | gpio_request(GPIO_FN_FSIAILR, NULL); | ||
235 | gpio_request(GPIO_FN_FSIAIBT, NULL); | ||
236 | gpio_request(GPIO_FN_FSIAISLD, NULL); | ||
237 | gpio_request(GPIO_FN_FSIAOSLD, NULL); | ||
238 | |||
198 | #ifdef CONFIG_CACHE_L2X0 | 239 | #ifdef CONFIG_CACHE_L2X0 |
199 | /* Shared attribute override enable, 64K*8way */ | 240 | /* Shared attribute override enable, 64K*8way */ |
200 | l2x0_init(__io(0xf0100000), 0x00460000, 0xc2000fff); | 241 | l2x0_init(__io(0xf0100000), 0x00460000, 0xc2000fff); |