diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-10-06 06:00:18 -0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-10-11 09:31:37 -0400 |
commit | 6bd96f3c332d422c0dda302f1b32c8e21dd75ee3 (patch) | |
tree | 5a885aac1d005df8d0dc51896d4dfe9ef03e62df /arch/arm/mach-imx | |
parent | 8a8d20600dce01553c8505b7c576f8d4307e4ba8 (diff) |
ARM: imx: dynamically register fec devices
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/devices-imx27.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-imx/devices.c | 21 | ||||
-rw-r--r-- | arch/arm/mach-imx/devices.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-cpuimx27.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-imx27_visstrim_m10.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-imx27lite.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-mx27_3ds.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-mx27ads.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-mxt_td60.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-pca100.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-pcm038.c | 2 |
11 files changed, 12 insertions, 43 deletions
diff --git a/arch/arm/mach-imx/devices-imx27.h b/arch/arm/mach-imx/devices-imx27.h index e11606b4d31c..7011690364f2 100644 --- a/arch/arm/mach-imx/devices-imx27.h +++ b/arch/arm/mach-imx/devices-imx27.h | |||
@@ -9,6 +9,10 @@ | |||
9 | #include <mach/mx27.h> | 9 | #include <mach/mx27.h> |
10 | #include <mach/devices-common.h> | 10 | #include <mach/devices-common.h> |
11 | 11 | ||
12 | extern const struct imx_fec_data imx27_fec_data __initconst; | ||
13 | #define imx27_add_fec(pdata) \ | ||
14 | imx_add_fec(&imx27_fec_data, pdata) | ||
15 | |||
12 | extern const struct imx_imx_i2c_data imx27_imx_i2c_data[] __initconst; | 16 | extern const struct imx_imx_i2c_data imx27_imx_i2c_data[] __initconst; |
13 | #define imx27_add_imx_i2c(id, pdata) \ | 17 | #define imx27_add_imx_i2c(id, pdata) \ |
14 | imx_add_imx_i2c(&imx27_imx_i2c_data[id], pdata) | 18 | imx_add_imx_i2c(&imx27_imx_i2c_data[id], pdata) |
diff --git a/arch/arm/mach-imx/devices.c b/arch/arm/mach-imx/devices.c index 423fa05dabd0..fba5047de8b1 100644 --- a/arch/arm/mach-imx/devices.c +++ b/arch/arm/mach-imx/devices.c | |||
@@ -314,27 +314,6 @@ struct platform_device mxc_fb_device = { | |||
314 | }, | 314 | }, |
315 | }; | 315 | }; |
316 | 316 | ||
317 | #ifdef CONFIG_MACH_MX27 | ||
318 | static struct resource mxc_fec_resources[] = { | ||
319 | { | ||
320 | .start = MX27_FEC_BASE_ADDR, | ||
321 | .end = MX27_FEC_BASE_ADDR + SZ_4K - 1, | ||
322 | .flags = IORESOURCE_MEM, | ||
323 | }, { | ||
324 | .start = MX27_INT_FEC, | ||
325 | .end = MX27_INT_FEC, | ||
326 | .flags = IORESOURCE_IRQ, | ||
327 | }, | ||
328 | }; | ||
329 | |||
330 | struct platform_device mxc_fec_device = { | ||
331 | .name = "fec", | ||
332 | .id = 0, | ||
333 | .num_resources = ARRAY_SIZE(mxc_fec_resources), | ||
334 | .resource = mxc_fec_resources, | ||
335 | }; | ||
336 | #endif | ||
337 | |||
338 | static struct resource mxc_pwm_resources[] = { | 317 | static struct resource mxc_pwm_resources[] = { |
339 | { | 318 | { |
340 | .start = MX2x_PWM_BASE_ADDR, | 319 | .start = MX2x_PWM_BASE_ADDR, |
diff --git a/arch/arm/mach-imx/devices.h b/arch/arm/mach-imx/devices.h index 57d4b1cac039..807f02a031c9 100644 --- a/arch/arm/mach-imx/devices.h +++ b/arch/arm/mach-imx/devices.h | |||
@@ -16,7 +16,6 @@ extern struct platform_device mxc_gpt5; | |||
16 | extern struct platform_device mxc_wdt; | 16 | extern struct platform_device mxc_wdt; |
17 | extern struct platform_device mxc_w1_master_device; | 17 | extern struct platform_device mxc_w1_master_device; |
18 | extern struct platform_device mxc_fb_device; | 18 | extern struct platform_device mxc_fb_device; |
19 | extern struct platform_device mxc_fec_device; | ||
20 | extern struct platform_device mxc_pwm_device; | 19 | extern struct platform_device mxc_pwm_device; |
21 | extern struct platform_device mxc_sdhc_device0; | 20 | extern struct platform_device mxc_sdhc_device0; |
22 | extern struct platform_device mxc_sdhc_device1; | 21 | extern struct platform_device mxc_sdhc_device1; |
diff --git a/arch/arm/mach-imx/mach-cpuimx27.c b/arch/arm/mach-imx/mach-cpuimx27.c index d4cb592ffaed..28f73a1c79f7 100644 --- a/arch/arm/mach-imx/mach-cpuimx27.c +++ b/arch/arm/mach-imx/mach-cpuimx27.c | |||
@@ -157,7 +157,6 @@ cpuimx27_nand_board_info __initconst = { | |||
157 | 157 | ||
158 | static struct platform_device *platform_devices[] __initdata = { | 158 | static struct platform_device *platform_devices[] __initdata = { |
159 | &eukrea_cpuimx27_nor_mtd_device, | 159 | &eukrea_cpuimx27_nor_mtd_device, |
160 | &mxc_fec_device, | ||
161 | &mxc_wdt, | 160 | &mxc_wdt, |
162 | &mxc_w1_master_device, | 161 | &mxc_w1_master_device, |
163 | }; | 162 | }; |
@@ -261,6 +260,7 @@ static void __init eukrea_cpuimx27_init(void) | |||
261 | 260 | ||
262 | imx27_add_imx_i2c(1, &cpuimx27_i2c1_data); | 261 | imx27_add_imx_i2c(1, &cpuimx27_i2c1_data); |
263 | 262 | ||
263 | imx27_add_fec(NULL); | ||
264 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 264 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); |
265 | 265 | ||
266 | #if defined(CONFIG_MACH_EUKREA_CPUIMX27_USESDHC2) | 266 | #if defined(CONFIG_MACH_EUKREA_CPUIMX27_USESDHC2) |
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index 21904f32740c..a0d78faa08e8 100644 --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c | |||
@@ -185,7 +185,6 @@ static struct platform_device visstrim_m10_nor_mtd_device = { | |||
185 | static struct platform_device *platform_devices[] __initdata = { | 185 | static struct platform_device *platform_devices[] __initdata = { |
186 | &visstrim_gpio_keys_device, | 186 | &visstrim_gpio_keys_device, |
187 | &visstrim_m10_nor_mtd_device, | 187 | &visstrim_m10_nor_mtd_device, |
188 | &mxc_fec_device, | ||
189 | }; | 188 | }; |
190 | 189 | ||
191 | /* Visstrim_M10 uses UART0 as console */ | 190 | /* Visstrim_M10 uses UART0 as console */ |
@@ -240,6 +239,7 @@ static void __init visstrim_m10_board_init(void) | |||
240 | imx27_add_imx_i2c(1, &visstrim_m10_i2c_data); | 239 | imx27_add_imx_i2c(1, &visstrim_m10_i2c_data); |
241 | mxc_register_device(&mxc_sdhc_device0, &visstrim_m10_sdhc_pdata); | 240 | mxc_register_device(&mxc_sdhc_device0, &visstrim_m10_sdhc_pdata); |
242 | mxc_register_device(&mxc_otg_host, &visstrim_m10_usbotg_pdata); | 241 | mxc_register_device(&mxc_otg_host, &visstrim_m10_usbotg_pdata); |
242 | imx27_add_fec(NULL); | ||
243 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 243 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); |
244 | } | 244 | } |
245 | 245 | ||
diff --git a/arch/arm/mach-imx/mach-imx27lite.c b/arch/arm/mach-imx/mach-imx27lite.c index 67480b639e2c..60d4d0ac4939 100644 --- a/arch/arm/mach-imx/mach-imx27lite.c +++ b/arch/arm/mach-imx/mach-imx27lite.c | |||
@@ -58,16 +58,12 @@ static const struct imxuart_platform_data uart_pdata __initconst = { | |||
58 | .flags = IMXUART_HAVE_RTSCTS, | 58 | .flags = IMXUART_HAVE_RTSCTS, |
59 | }; | 59 | }; |
60 | 60 | ||
61 | static struct platform_device *platform_devices[] __initdata = { | ||
62 | &mxc_fec_device, | ||
63 | }; | ||
64 | |||
65 | static void __init mx27lite_init(void) | 61 | static void __init mx27lite_init(void) |
66 | { | 62 | { |
67 | mxc_gpio_setup_multiple_pins(mx27lite_pins, ARRAY_SIZE(mx27lite_pins), | 63 | mxc_gpio_setup_multiple_pins(mx27lite_pins, ARRAY_SIZE(mx27lite_pins), |
68 | "imx27lite"); | 64 | "imx27lite"); |
69 | imx27_add_imx_uart0(&uart_pdata); | 65 | imx27_add_imx_uart0(&uart_pdata); |
70 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 66 | imx27_add_fec(NULL); |
71 | } | 67 | } |
72 | 68 | ||
73 | static void __init mx27lite_timer_init(void) | 69 | static void __init mx27lite_timer_init(void) |
diff --git a/arch/arm/mach-imx/mach-mx27_3ds.c b/arch/arm/mach-imx/mach-mx27_3ds.c index 9f6832d5f7f7..a69dba252658 100644 --- a/arch/arm/mach-imx/mach-mx27_3ds.c +++ b/arch/arm/mach-imx/mach-mx27_3ds.c | |||
@@ -64,10 +64,6 @@ static const struct imxuart_platform_data uart_pdata __initconst = { | |||
64 | .flags = IMXUART_HAVE_RTSCTS, | 64 | .flags = IMXUART_HAVE_RTSCTS, |
65 | }; | 65 | }; |
66 | 66 | ||
67 | static struct platform_device *platform_devices[] __initdata = { | ||
68 | &mxc_fec_device, | ||
69 | }; | ||
70 | |||
71 | /* | 67 | /* |
72 | * Matrix keyboard | 68 | * Matrix keyboard |
73 | */ | 69 | */ |
@@ -94,7 +90,7 @@ static void __init mx27pdk_init(void) | |||
94 | mxc_gpio_setup_multiple_pins(mx27pdk_pins, ARRAY_SIZE(mx27pdk_pins), | 90 | mxc_gpio_setup_multiple_pins(mx27pdk_pins, ARRAY_SIZE(mx27pdk_pins), |
95 | "mx27pdk"); | 91 | "mx27pdk"); |
96 | imx27_add_imx_uart0(&uart_pdata); | 92 | imx27_add_imx_uart0(&uart_pdata); |
97 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 93 | imx27_add_fec(NULL); |
98 | mxc_register_device(&imx_kpp_device, &mx27_3ds_keymap_data); | 94 | mxc_register_device(&imx_kpp_device, &mx27_3ds_keymap_data); |
99 | } | 95 | } |
100 | 96 | ||
diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c index 1a33288787a8..ffb39a42f240 100644 --- a/arch/arm/mach-imx/mach-mx27ads.c +++ b/arch/arm/mach-imx/mach-mx27ads.c | |||
@@ -284,7 +284,6 @@ static struct imxmmc_platform_data sdhc2_pdata = { | |||
284 | 284 | ||
285 | static struct platform_device *platform_devices[] __initdata = { | 285 | static struct platform_device *platform_devices[] __initdata = { |
286 | &mx27ads_nor_mtd_device, | 286 | &mx27ads_nor_mtd_device, |
287 | &mxc_fec_device, | ||
288 | &mxc_w1_master_device, | 287 | &mxc_w1_master_device, |
289 | }; | 288 | }; |
290 | 289 | ||
@@ -313,6 +312,7 @@ static void __init mx27ads_board_init(void) | |||
313 | mxc_register_device(&mxc_sdhc_device0, &sdhc1_pdata); | 312 | mxc_register_device(&mxc_sdhc_device0, &sdhc1_pdata); |
314 | mxc_register_device(&mxc_sdhc_device1, &sdhc2_pdata); | 313 | mxc_register_device(&mxc_sdhc_device1, &sdhc2_pdata); |
315 | 314 | ||
315 | imx27_add_fec(NULL); | ||
316 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 316 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); |
317 | } | 317 | } |
318 | 318 | ||
diff --git a/arch/arm/mach-imx/mach-mxt_td60.c b/arch/arm/mach-imx/mach-mxt_td60.c index 58fb0d653981..f4c397dec794 100644 --- a/arch/arm/mach-imx/mach-mxt_td60.c +++ b/arch/arm/mach-imx/mach-mxt_td60.c | |||
@@ -231,10 +231,6 @@ static struct imxmmc_platform_data sdhc1_pdata = { | |||
231 | .exit = mxt_td60_sdhc1_exit, | 231 | .exit = mxt_td60_sdhc1_exit, |
232 | }; | 232 | }; |
233 | 233 | ||
234 | static struct platform_device *platform_devices[] __initdata = { | ||
235 | &mxc_fec_device, | ||
236 | }; | ||
237 | |||
238 | static const struct imxuart_platform_data uart_pdata __initconst = { | 234 | static const struct imxuart_platform_data uart_pdata __initconst = { |
239 | .flags = IMXUART_HAVE_RTSCTS, | 235 | .flags = IMXUART_HAVE_RTSCTS, |
240 | }; | 236 | }; |
@@ -259,8 +255,7 @@ static void __init mxt_td60_board_init(void) | |||
259 | imx27_add_imx_i2c(1, &mxt_td60_i2c1_data); | 255 | imx27_add_imx_i2c(1, &mxt_td60_i2c1_data); |
260 | mxc_register_device(&mxc_fb_device, &mxt_td60_fb_data); | 256 | mxc_register_device(&mxc_fb_device, &mxt_td60_fb_data); |
261 | mxc_register_device(&mxc_sdhc_device0, &sdhc1_pdata); | 257 | mxc_register_device(&mxc_sdhc_device0, &sdhc1_pdata); |
262 | 258 | imx27_add_fec(NULL); | |
263 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | ||
264 | } | 259 | } |
265 | 260 | ||
266 | static void __init mxt_td60_timer_init(void) | 261 | static void __init mxt_td60_timer_init(void) |
diff --git a/arch/arm/mach-imx/mach-pca100.c b/arch/arm/mach-imx/mach-pca100.c index 1247ce9dabad..223c31c48db6 100644 --- a/arch/arm/mach-imx/mach-pca100.c +++ b/arch/arm/mach-imx/mach-pca100.c | |||
@@ -173,7 +173,6 @@ pca100_nand_board_info __initconst = { | |||
173 | 173 | ||
174 | static struct platform_device *platform_devices[] __initdata = { | 174 | static struct platform_device *platform_devices[] __initdata = { |
175 | &mxc_w1_master_device, | 175 | &mxc_w1_master_device, |
176 | &mxc_fec_device, | ||
177 | &mxc_wdt, | 176 | &mxc_wdt, |
178 | }; | 177 | }; |
179 | 178 | ||
@@ -433,6 +432,7 @@ static void __init pca100_init(void) | |||
433 | 432 | ||
434 | mxc_register_device(&mxc_fb_device, &pca100_fb_data); | 433 | mxc_register_device(&mxc_fb_device, &pca100_fb_data); |
435 | 434 | ||
435 | imx27_add_fec(NULL); | ||
436 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 436 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); |
437 | } | 437 | } |
438 | 438 | ||
diff --git a/arch/arm/mach-imx/mach-pcm038.c b/arch/arm/mach-imx/mach-pcm038.c index 3fbed661f612..b9888a8defc1 100644 --- a/arch/arm/mach-imx/mach-pcm038.c +++ b/arch/arm/mach-imx/mach-pcm038.c | |||
@@ -173,7 +173,6 @@ pcm038_nand_board_info __initconst = { | |||
173 | static struct platform_device *platform_devices[] __initdata = { | 173 | static struct platform_device *platform_devices[] __initdata = { |
174 | &pcm038_nor_mtd_device, | 174 | &pcm038_nor_mtd_device, |
175 | &mxc_w1_master_device, | 175 | &mxc_w1_master_device, |
176 | &mxc_fec_device, | ||
177 | &pcm038_sram_mtd_device, | 176 | &pcm038_sram_mtd_device, |
178 | &mxc_wdt, | 177 | &mxc_wdt, |
179 | }; | 178 | }; |
@@ -325,6 +324,7 @@ static void __init pcm038_init(void) | |||
325 | 324 | ||
326 | mxc_register_device(&mxc_usbh2, &usbh2_pdata); | 325 | mxc_register_device(&mxc_usbh2, &usbh2_pdata); |
327 | 326 | ||
327 | imx27_add_fec(NULL); | ||
328 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 328 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); |
329 | 329 | ||
330 | #ifdef CONFIG_MACH_PCM970_BASEBOARD | 330 | #ifdef CONFIG_MACH_PCM970_BASEBOARD |