aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-06-21 11:34:58 -0400
committerUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-06-30 03:00:48 -0400
commit63ddc5b01681567d10ddb94cb41390c77237cb62 (patch)
tree6e181ea48f1cb9ec48a6227f49e96e41caefe200
parent642e466bf405ba558e68353cd4ae6e8ed640b123 (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.h7
-rw-r--r--arch/arm/mach-mx25/devices.c57
-rw-r--r--arch/arm/mach-mx25/devices.h3
-rw-r--r--arch/arm/plat-mxc/include/mach/mx25.h8
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
184static 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
196struct 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
203static 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
215struct 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
222static 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
234struct 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
241static struct resource mxc_pwm_resources0[] = { 184static 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;
6extern struct platform_device mxc_otg; 6extern struct platform_device mxc_otg;
7extern struct platform_device otg_udc_device; 7extern struct platform_device otg_udc_device;
8extern struct platform_device mxc_usbh2; 8extern struct platform_device mxc_usbh2;
9extern struct platform_device mxc_spi_device0;
10extern struct platform_device mxc_spi_device1;
11extern struct platform_device mxc_spi_device2;
12extern struct platform_device mxc_pwm_device0; 9extern struct platform_device mxc_pwm_device0;
13extern struct platform_device mxc_pwm_device1; 10extern struct platform_device mxc_pwm_device1;
14extern struct platform_device mxc_pwm_device2; 11extern 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