diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-06-21 11:34:58 -0400 |
---|---|---|
committer | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-06-30 03:00:48 -0400 |
commit | 63ddc5b01681567d10ddb94cb41390c77237cb62 (patch) | |
tree | 6e181ea48f1cb9ec48a6227f49e96e41caefe200 | |
parent | 642e466bf405ba558e68353cd4ae6e8ed640b123 (diff) |
ARM: imx: dynamically register spi_imx devices (imx25)
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-rw-r--r-- | arch/arm/mach-mx25/devices-imx25.h | 7 | ||||
-rw-r--r-- | arch/arm/mach-mx25/devices.c | 57 | ||||
-rw-r--r-- | arch/arm/mach-mx25/devices.h | 3 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/mx25.h | 8 |
4 files changed, 14 insertions, 61 deletions
diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h index 6464be439e90..33a834e716c5 100644 --- a/arch/arm/mach-mx25/devices-imx25.h +++ b/arch/arm/mach-mx25/devices-imx25.h | |||
@@ -18,3 +18,10 @@ | |||
18 | 18 | ||
19 | #define imx25_add_mxc_nand(pdata) \ | 19 | #define imx25_add_mxc_nand(pdata) \ |
20 | imx_add_mxc_nand_v21(MX25_NFC_BASE_ADDR, MX25_INT_NANDFC, pdata) | 20 | imx_add_mxc_nand_v21(MX25_NFC_BASE_ADDR, MX25_INT_NANDFC, pdata) |
21 | |||
22 | #define imx25_add_spi_imx0(pdata) \ | ||
23 | imx_add_spi_imx(0, MX25_CSPI1_BASE_ADDR, SZ_16K, MX25_INT_CSPI1, pdata) | ||
24 | #define imx25_add_spi_imx1(pdata) \ | ||
25 | imx_add_spi_imx(1, MX25_CSPI2_BASE_ADDR, SZ_16K, MX25_INT_CSPI2, pdata) | ||
26 | #define imx25_add_spi_imx2(pdata) \ | ||
27 | imx_add_spi_imx(2, MX25_CSPI3_BASE_ADDR, SZ_16K, MX25_INT_CSPI3, pdata) | ||
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c index 1af852aa4e30..c267087fbc97 100644 --- a/arch/arm/mach-mx25/devices.c +++ b/arch/arm/mach-mx25/devices.c | |||
@@ -181,63 +181,6 @@ struct platform_device mxc_usbh2 = { | |||
181 | .num_resources = ARRAY_SIZE(mxc_usbh2_resources), | 181 | .num_resources = ARRAY_SIZE(mxc_usbh2_resources), |
182 | }; | 182 | }; |
183 | 183 | ||
184 | static struct resource mxc_spi_resources0[] = { | ||
185 | { | ||
186 | .start = 0x43fa4000, | ||
187 | .end = 0x43fa7fff, | ||
188 | .flags = IORESOURCE_MEM, | ||
189 | }, { | ||
190 | .start = 14, | ||
191 | .end = 14, | ||
192 | .flags = IORESOURCE_IRQ, | ||
193 | }, | ||
194 | }; | ||
195 | |||
196 | struct platform_device mxc_spi_device0 = { | ||
197 | .name = "spi_imx", | ||
198 | .id = 0, | ||
199 | .num_resources = ARRAY_SIZE(mxc_spi_resources0), | ||
200 | .resource = mxc_spi_resources0, | ||
201 | }; | ||
202 | |||
203 | static struct resource mxc_spi_resources1[] = { | ||
204 | { | ||
205 | .start = 0x50010000, | ||
206 | .end = 0x50013fff, | ||
207 | .flags = IORESOURCE_MEM, | ||
208 | }, { | ||
209 | .start = 13, | ||
210 | .end = 13, | ||
211 | .flags = IORESOURCE_IRQ, | ||
212 | }, | ||
213 | }; | ||
214 | |||
215 | struct platform_device mxc_spi_device1 = { | ||
216 | .name = "spi_imx", | ||
217 | .id = 1, | ||
218 | .num_resources = ARRAY_SIZE(mxc_spi_resources1), | ||
219 | .resource = mxc_spi_resources1, | ||
220 | }; | ||
221 | |||
222 | static struct resource mxc_spi_resources2[] = { | ||
223 | { | ||
224 | .start = 0x50004000, | ||
225 | .end = 0x50007fff, | ||
226 | .flags = IORESOURCE_MEM, | ||
227 | }, { | ||
228 | .start = 0, | ||
229 | .end = 0, | ||
230 | .flags = IORESOURCE_IRQ, | ||
231 | }, | ||
232 | }; | ||
233 | |||
234 | struct platform_device mxc_spi_device2 = { | ||
235 | .name = "spi_imx", | ||
236 | .id = 2, | ||
237 | .num_resources = ARRAY_SIZE(mxc_spi_resources2), | ||
238 | .resource = mxc_spi_resources2, | ||
239 | }; | ||
240 | |||
241 | static struct resource mxc_pwm_resources0[] = { | 184 | static struct resource mxc_pwm_resources0[] = { |
242 | { | 185 | { |
243 | .start = 0x53fe0000, | 186 | .start = 0x53fe0000, |
diff --git a/arch/arm/mach-mx25/devices.h b/arch/arm/mach-mx25/devices.h index f2775143d023..1f31cbcc0415 100644 --- a/arch/arm/mach-mx25/devices.h +++ b/arch/arm/mach-mx25/devices.h | |||
@@ -6,9 +6,6 @@ extern struct platform_device mxc_uart_device4; | |||
6 | extern struct platform_device mxc_otg; | 6 | extern struct platform_device mxc_otg; |
7 | extern struct platform_device otg_udc_device; | 7 | extern struct platform_device otg_udc_device; |
8 | extern struct platform_device mxc_usbh2; | 8 | extern struct platform_device mxc_usbh2; |
9 | extern struct platform_device mxc_spi_device0; | ||
10 | extern struct platform_device mxc_spi_device1; | ||
11 | extern struct platform_device mxc_spi_device2; | ||
12 | extern struct platform_device mxc_pwm_device0; | 9 | extern struct platform_device mxc_pwm_device0; |
13 | extern struct platform_device mxc_pwm_device1; | 10 | extern struct platform_device mxc_pwm_device1; |
14 | extern struct platform_device mxc_pwm_device2; | 11 | extern struct platform_device mxc_pwm_device2; |
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h index 1ebf33fedaaf..16ac6b6d496f 100644 --- a/arch/arm/plat-mxc/include/mach/mx25.h +++ b/arch/arm/plat-mxc/include/mach/mx25.h | |||
@@ -14,6 +14,7 @@ | |||
14 | #define MX25_I2C1_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x80000) | 14 | #define MX25_I2C1_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x80000) |
15 | #define MX25_I2C3_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x84000) | 15 | #define MX25_I2C3_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x84000) |
16 | #define MX25_I2C2_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x98000) | 16 | #define MX25_I2C2_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x98000) |
17 | #define MX25_CSPI1_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0xa4000) | ||
17 | #define MX25_IOMUXC_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0xac000) | 18 | #define MX25_IOMUXC_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0xac000) |
18 | 19 | ||
19 | #define MX25_CRM_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0x80000) | 20 | #define MX25_CRM_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0x80000) |
@@ -33,18 +34,23 @@ | |||
33 | #define MX25_UART1_BASE_ADDR 0x43f90000 | 34 | #define MX25_UART1_BASE_ADDR 0x43f90000 |
34 | #define MX25_UART2_BASE_ADDR 0x43f94000 | 35 | #define MX25_UART2_BASE_ADDR 0x43f94000 |
35 | 36 | ||
37 | #define MX25_CSPI3_BASE_ADDR 0x50004000 | ||
38 | #define MX25_CSPI2_BASE_ADDR 0x50010000 | ||
36 | #define MX25_FEC_BASE_ADDR 0x50038000 | 39 | #define MX25_FEC_BASE_ADDR 0x50038000 |
37 | #define MX25_NFC_BASE_ADDR 0xbb000000 | 40 | #define MX25_NFC_BASE_ADDR 0xbb000000 |
38 | #define MX25_DRYICE_BASE_ADDR 0x53ffc000 | 41 | #define MX25_DRYICE_BASE_ADDR 0x53ffc000 |
39 | #define MX25_LCDC_BASE_ADDR 0x53fbc000 | 42 | #define MX25_LCDC_BASE_ADDR 0x53fbc000 |
40 | 43 | ||
44 | #define MX25_INT_CSPI3 0 | ||
41 | #define MX25_INT_I2C1 3 | 45 | #define MX25_INT_I2C1 3 |
42 | #define MX25_INT_I2C2 4 | 46 | #define MX25_INT_I2C2 4 |
43 | #define MX25_INT_I2C3 10 | 47 | #define MX25_INT_I2C3 10 |
48 | #define MX25_INT_CSPI2 13 | ||
49 | #define MX25_INT_CSPI1 14 | ||
44 | #define MX25_INT_DRYICE 25 | 50 | #define MX25_INT_DRYICE 25 |
45 | #define MX25_INT_FEC 57 | ||
46 | #define MX25_INT_NANDFC 33 | 51 | #define MX25_INT_NANDFC 33 |
47 | #define MX25_INT_LCDC 39 | 52 | #define MX25_INT_LCDC 39 |
53 | #define MX25_INT_FEC 57 | ||
48 | 54 | ||
49 | #if defined(IMX_NEEDS_DEPRECATED_SYMBOLS) | 55 | #if defined(IMX_NEEDS_DEPRECATED_SYMBOLS) |
50 | #define UART1_BASE_ADDR MX25_UART1_BASE_ADDR | 56 | #define UART1_BASE_ADDR MX25_UART1_BASE_ADDR |