aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-06-16 01:35:31 -0400
committerUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-06-30 03:00:33 -0400
commit0e7a29a8d97c4ea86b9975e65f554c0398a8fdbf (patch)
tree3f29051d620eb0dd446e22713382c01e8fab3ed5 /arch/arm/mach-imx
parentb0c4845c47bce6fefe5e08b1e0cbd100d62ec36b (diff)
ARM: imx: Change the way nand devices are registered (imx27)
Make use of new mechanism to register a nand device. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r--arch/arm/mach-imx/Kconfig5
-rw-r--r--arch/arm/mach-imx/devices-imx27.h13
-rw-r--r--arch/arm/mach-imx/devices.c24
-rw-r--r--arch/arm/mach-imx/devices.h3
-rw-r--r--arch/arm/mach-imx/mach-cpuimx27.c7
-rw-r--r--arch/arm/mach-imx/mach-mx27ads.c6
-rw-r--r--arch/arm/mach-imx/mach-mxt_td60.c6
-rw-r--r--arch/arm/mach-imx/mach-pca100.c6
-rw-r--r--arch/arm/mach-imx/mach-pcm038.c6
9 files changed, 38 insertions, 38 deletions
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 23671824abd9..5af1c22112a7 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -81,12 +81,14 @@ comment "MX27 platforms:"
81 81
82config MACH_MX27ADS 82config MACH_MX27ADS
83 bool "MX27ADS platform" 83 bool "MX27ADS platform"
84 select IMX_HAVE_PLATFORM_MXC_NAND
84 help 85 help
85 Include support for MX27ADS platform. This includes specific 86 Include support for MX27ADS platform. This includes specific
86 configurations for the board and its peripherals. 87 configurations for the board and its peripherals.
87 88
88config MACH_PCM038 89config MACH_PCM038
89 bool "Phytec phyCORE-i.MX27 CPU module (pcm038)" 90 bool "Phytec phyCORE-i.MX27 CPU module (pcm038)"
91 select IMX_HAVE_PLATFORM_MXC_NAND
90 select MXC_ULPI if USB_ULPI 92 select MXC_ULPI if USB_ULPI
91 help 93 help
92 Include support for phyCORE-i.MX27 (aka pcm038) platform. This 94 Include support for phyCORE-i.MX27 (aka pcm038) platform. This
@@ -108,6 +110,7 @@ endchoice
108 110
109config MACH_CPUIMX27 111config MACH_CPUIMX27
110 bool "Eukrea CPUIMX27 module" 112 bool "Eukrea CPUIMX27 module"
113 select IMX_HAVE_PLATFORM_MXC_NAND
111 help 114 help
112 Include support for Eukrea CPUIMX27 platform. This includes 115 Include support for Eukrea CPUIMX27 platform. This includes
113 specific configurations for the module and its peripherals. 116 specific configurations for the module and its peripherals.
@@ -147,6 +150,7 @@ config MACH_IMX27LITE
147 150
148config MACH_PCA100 151config MACH_PCA100
149 bool "Phytec phyCARD-s (pca100)" 152 bool "Phytec phyCARD-s (pca100)"
153 select IMX_HAVE_PLATFORM_MXC_NAND
150 select MXC_ULPI if USB_ULPI 154 select MXC_ULPI if USB_ULPI
151 help 155 help
152 Include support for phyCARD-s (aka pca100) platform. This 156 Include support for phyCARD-s (aka pca100) platform. This
@@ -154,6 +158,7 @@ config MACH_PCA100
154 158
155config MACH_MXT_TD60 159config MACH_MXT_TD60
156 bool "Maxtrack i-MXT TD60" 160 bool "Maxtrack i-MXT TD60"
161 select IMX_HAVE_PLATFORM_MXC_NAND
157 help 162 help
158 Include support for i-MXT (aka td60) platform. This 163 Include support for i-MXT (aka td60) platform. This
159 includes specific configurations for the module and its peripherals. 164 includes specific configurations for the module and its peripherals.
diff --git a/arch/arm/mach-imx/devices-imx27.h b/arch/arm/mach-imx/devices-imx27.h
new file mode 100644
index 000000000000..b2f6a12c88d5
--- /dev/null
+++ b/arch/arm/mach-imx/devices-imx27.h
@@ -0,0 +1,13 @@
1/*
2 * Copyright (C) 2010 Pengutronix
3 * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
4 *
5 * This program is free software; you can redistribute it and/or modify it under
6 * the terms of the GNU General Public License version 2 as published by the
7 * Free Software Foundation.
8 */
9#include <mach/mx27.h>
10#include <mach/devices-common.h>
11
12#define imx27_add_mxc_nand(pdata) \
13 imx_add_mxc_nand_v1(MX27_NFC_BASE_ADDR, MX27_INT_NANDFC, pdata)
diff --git a/arch/arm/mach-imx/devices.c b/arch/arm/mach-imx/devices.c
index dbd1460e46cf..3a599e94a65c 100644
--- a/arch/arm/mach-imx/devices.c
+++ b/arch/arm/mach-imx/devices.c
@@ -337,30 +337,6 @@ struct platform_device mxc_w1_master_device = {
337 .resource = mxc_w1_master_resources, 337 .resource = mxc_w1_master_resources,
338}; 338};
339 339
340#define DEFINE_MXC_NAND_DEVICE(pfx, baseaddr, irq) \
341 static struct resource pfx ## _nand_resources[] = { \
342 { \
343 .start = baseaddr, \
344 .end = baseaddr + SZ_4K - 1, \
345 .flags = IORESOURCE_MEM, \
346 }, { \
347 .start = irq, \
348 .end = irq, \
349 .flags = IORESOURCE_IRQ, \
350 }, \
351 }; \
352 \
353 struct platform_device pfx ## _nand_device = { \
354 .name = "mxc_nand", \
355 .id = 0, \
356 .num_resources = ARRAY_SIZE(pfx ## _nand_resources), \
357 .resource = pfx ## _nand_resources, \
358 }
359
360#ifdef CONFIG_MACH_MX27
361DEFINE_MXC_NAND_DEVICE(imx27, MX27_NFC_BASE_ADDR, MX27_INT_NANDFC);
362#endif
363
364/* 340/*
365 * lcdc: 341 * lcdc:
366 * - i.MX1: the basic controller 342 * - i.MX1: the basic controller
diff --git a/arch/arm/mach-imx/devices.h b/arch/arm/mach-imx/devices.h
index d3c381f2c74f..4ce7eef943f6 100644
--- a/arch/arm/mach-imx/devices.h
+++ b/arch/arm/mach-imx/devices.h
@@ -26,9 +26,6 @@ extern struct platform_device imx2x_uart_device4;
26extern struct platform_device imx2x_uart_device5; 26extern struct platform_device imx2x_uart_device5;
27#endif 27#endif
28extern struct platform_device mxc_w1_master_device; 28extern struct platform_device mxc_w1_master_device;
29#ifdef CONFIG_MACH_MX27
30extern struct platform_device imx27_nand_device;
31#endif
32extern struct platform_device mxc_fb_device; 29extern struct platform_device mxc_fb_device;
33extern struct platform_device mxc_fec_device; 30extern struct platform_device mxc_fec_device;
34extern struct platform_device mxc_pwm_device; 31extern struct platform_device mxc_pwm_device;
diff --git a/arch/arm/mach-imx/mach-cpuimx27.c b/arch/arm/mach-imx/mach-cpuimx27.c
index 866a99a337f2..5d07c2ab4711 100644
--- a/arch/arm/mach-imx/mach-cpuimx27.c
+++ b/arch/arm/mach-imx/mach-cpuimx27.c
@@ -40,6 +40,7 @@
40#include <mach/imx-uart.h> 40#include <mach/imx-uart.h>
41#include <mach/mxc_nand.h> 41#include <mach/mxc_nand.h>
42 42
43#include "devices-imx27.h"
43#include "devices.h" 44#include "devices.h"
44 45
45static int eukrea_cpuimx27_pins[] = { 46static int eukrea_cpuimx27_pins[] = {
@@ -119,7 +120,8 @@ static struct imxuart_platform_data uart_pdata[] = {
119 }, 120 },
120}; 121};
121 122
122static struct mxc_nand_platform_data eukrea_cpuimx27_nand_board_info = { 123static const struct mxc_nand_platform_data
124cpuimx27_nand_board_info __initconst = {
123 .width = 1, 125 .width = 1,
124 .hw_ecc = 1, 126 .hw_ecc = 1,
125}; 127};
@@ -189,8 +191,7 @@ static void __init eukrea_cpuimx27_init(void)
189 191
190 mxc_register_device(&imx2x_uart_device0, &uart_pdata[0]); 192 mxc_register_device(&imx2x_uart_device0, &uart_pdata[0]);
191 193
192 mxc_register_device(&imx27_nand_device, 194 imx27_add_mxc_nand(&cpuimx27_nand_board_info);
193 &eukrea_cpuimx27_nand_board_info);
194 195
195 i2c_register_board_info(0, eukrea_cpuimx27_i2c_devices, 196 i2c_register_board_info(0, eukrea_cpuimx27_i2c_devices,
196 ARRAY_SIZE(eukrea_cpuimx27_i2c_devices)); 197 ARRAY_SIZE(eukrea_cpuimx27_i2c_devices));
diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c
index 186b93a8c08e..1a3ebf5dab26 100644
--- a/arch/arm/mach-imx/mach-mx27ads.c
+++ b/arch/arm/mach-imx/mach-mx27ads.c
@@ -35,6 +35,7 @@
35#include <mach/imxfb.h> 35#include <mach/imxfb.h>
36#include <mach/mmc.h> 36#include <mach/mmc.h>
37 37
38#include "devices-imx27.h"
38#include "devices.h" 39#include "devices.h"
39 40
40/* 41/*
@@ -166,7 +167,8 @@ static unsigned int mx27ads_pins[] = {
166 PB9_PF_SD2_CLK, 167 PB9_PF_SD2_CLK,
167}; 168};
168 169
169static struct mxc_nand_platform_data mx27ads_nand_board_info = { 170static const struct mxc_nand_platform_data
171mx27ads_nand_board_info __initconst = {
170 .width = 1, 172 .width = 1,
171 .hw_ecc = 1, 173 .hw_ecc = 1,
172}; 174};
@@ -315,7 +317,7 @@ static void __init mx27ads_board_init(void)
315 mxc_register_device(&imx2x_uart_device3, &uart_pdata[3]); 317 mxc_register_device(&imx2x_uart_device3, &uart_pdata[3]);
316 mxc_register_device(&imx2x_uart_device4, &uart_pdata[4]); 318 mxc_register_device(&imx2x_uart_device4, &uart_pdata[4]);
317 mxc_register_device(&imx2x_uart_device5, &uart_pdata[5]); 319 mxc_register_device(&imx2x_uart_device5, &uart_pdata[5]);
318 mxc_register_device(&imx27_nand_device, &mx27ads_nand_board_info); 320 imx27_add_mxc_nand(&mx27ads_nand_board_info);
319 321
320 /* only the i2c master 1 is used on this CPU card */ 322 /* only the i2c master 1 is used on this CPU card */
321 i2c_register_board_info(1, mx27ads_i2c_devices, 323 i2c_register_board_info(1, mx27ads_i2c_devices,
diff --git a/arch/arm/mach-imx/mach-mxt_td60.c b/arch/arm/mach-imx/mach-mxt_td60.c
index 0e5ddbabcba6..447c68fe4383 100644
--- a/arch/arm/mach-imx/mach-mxt_td60.c
+++ b/arch/arm/mach-imx/mach-mxt_td60.c
@@ -36,6 +36,7 @@
36#include <mach/imxfb.h> 36#include <mach/imxfb.h>
37#include <mach/mmc.h> 37#include <mach/mmc.h>
38 38
39#include "devices-imx27.h"
39#include "devices.h" 40#include "devices.h"
40 41
41static unsigned int mxt_td60_pins[] __initdata = { 42static unsigned int mxt_td60_pins[] __initdata = {
@@ -124,7 +125,8 @@ static unsigned int mxt_td60_pins[] __initdata = {
124 PB9_PF_SD2_CLK, 125 PB9_PF_SD2_CLK,
125}; 126};
126 127
127static struct mxc_nand_platform_data mxt_td60_nand_board_info = { 128static const struct mxc_nand_platform_data
129mxt_td60_nand_board_info __initconst = {
128 .width = 1, 130 .width = 1,
129 .hw_ecc = 1, 131 .hw_ecc = 1,
130}; 132};
@@ -253,7 +255,7 @@ static void __init mxt_td60_board_init(void)
253 mxc_register_device(&imx2x_uart_device0, &uart_pdata[0]); 255 mxc_register_device(&imx2x_uart_device0, &uart_pdata[0]);
254 mxc_register_device(&imx2x_uart_device1, &uart_pdata[1]); 256 mxc_register_device(&imx2x_uart_device1, &uart_pdata[1]);
255 mxc_register_device(&imx2x_uart_device2, &uart_pdata[2]); 257 mxc_register_device(&imx2x_uart_device2, &uart_pdata[2]);
256 mxc_register_device(&imx27_nand_device, &mxt_td60_nand_board_info); 258 imx27_add_mxc_nand(&mxt_td60_nand_board_info);
257 259
258 i2c_register_board_info(0, mxt_td60_i2c_devices, 260 i2c_register_board_info(0, mxt_td60_i2c_devices,
259 ARRAY_SIZE(mxt_td60_i2c_devices)); 261 ARRAY_SIZE(mxt_td60_i2c_devices));
diff --git a/arch/arm/mach-imx/mach-pca100.c b/arch/arm/mach-imx/mach-pca100.c
index 984c4caeebdc..6efbc6e13be9 100644
--- a/arch/arm/mach-imx/mach-pca100.c
+++ b/arch/arm/mach-imx/mach-pca100.c
@@ -50,6 +50,7 @@
50#include <mach/mxc_ehci.h> 50#include <mach/mxc_ehci.h>
51#include <mach/ulpi.h> 51#include <mach/ulpi.h>
52 52
53#include "devices-imx27.h"
53#include "devices.h" 54#include "devices.h"
54 55
55#define OTG_PHY_CS_GPIO (GPIO_PORTB + 23) 56#define OTG_PHY_CS_GPIO (GPIO_PORTB + 23)
@@ -137,7 +138,8 @@ static struct imxuart_platform_data uart_pdata = {
137 .flags = IMXUART_HAVE_RTSCTS, 138 .flags = IMXUART_HAVE_RTSCTS,
138}; 139};
139 140
140static struct mxc_nand_platform_data pca100_nand_board_info = { 141static const struct mxc_nand_platform_data
142pca100_nand_board_info __initconst = {
141 .width = 1, 143 .width = 1,
142 .hw_ecc = 1, 144 .hw_ecc = 1,
143}; 145};
@@ -325,7 +327,7 @@ static void __init pca100_init(void)
325 mxc_gpio_mode(GPIO_PORTC | 29 | GPIO_GPIO | GPIO_IN); 327 mxc_gpio_mode(GPIO_PORTC | 29 | GPIO_GPIO | GPIO_IN);
326 mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata); 328 mxc_register_device(&mxc_sdhc_device1, &sdhc_pdata);
327 329
328 mxc_register_device(&imx27_nand_device, &pca100_nand_board_info); 330 imx27_add_mxc_nand(&pca100_nand_board_info);
329 331
330 /* only the i2c master 1 is used on this CPU card */ 332 /* only the i2c master 1 is used on this CPU card */
331 i2c_register_board_info(1, pca100_i2c_devices, 333 i2c_register_board_info(1, pca100_i2c_devices,
diff --git a/arch/arm/mach-imx/mach-pcm038.c b/arch/arm/mach-imx/mach-pcm038.c
index b6a15bac0c3d..bc44d6faf47d 100644
--- a/arch/arm/mach-imx/mach-pcm038.c
+++ b/arch/arm/mach-imx/mach-pcm038.c
@@ -43,6 +43,7 @@
43#include <mach/mxc_ehci.h> 43#include <mach/mxc_ehci.h>
44#include <mach/ulpi.h> 44#include <mach/ulpi.h>
45 45
46#include "devices-imx27.h"
46#include "devices.h" 47#include "devices.h"
47 48
48static int pcm038_pins[] = { 49static int pcm038_pins[] = {
@@ -172,7 +173,8 @@ static struct imxuart_platform_data uart_pdata[] = {
172 }, 173 },
173}; 174};
174 175
175static struct mxc_nand_platform_data pcm038_nand_board_info = { 176static const struct mxc_nand_platform_data
177pcm038_nand_board_info __initconst = {
176 .width = 1, 178 .width = 1,
177 .hw_ecc = 1, 179 .hw_ecc = 1,
178}; 180};
@@ -310,7 +312,7 @@ static void __init pcm038_init(void)
310 mxc_register_device(&imx2x_uart_device2, &uart_pdata[2]); 312 mxc_register_device(&imx2x_uart_device2, &uart_pdata[2]);
311 313
312 mxc_gpio_mode(PE16_AF_OWIRE); 314 mxc_gpio_mode(PE16_AF_OWIRE);
313 mxc_register_device(&imx27_nand_device, &pcm038_nand_board_info); 315 imx27_add_mxc_nand(&pcm038_nand_board_info);
314 316
315 /* only the i2c master 1 is used on this CPU card */ 317 /* only the i2c master 1 is used on this CPU card */
316 i2c_register_board_info(1, pcm038_i2c_devices, 318 i2c_register_board_info(1, pcm038_i2c_devices,