diff options
author | Sukumar Ghorai <s-ghorai@ti.com> | 2010-07-09 05:14:46 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-08-02 08:41:17 -0400 |
commit | f450d86790ebf72ac93c7ea5addd6fa278aae64c (patch) | |
tree | 9ac542aca70b6845edad0ca026afc358e76bd97c /arch/arm/mach-omap2 | |
parent | 2c01946c6b9ebaa5a89710bc42ca224a7f52f227 (diff) |
omap3 nand: fix issue in board file to detect nand
Board file modified for not to provide gpmc phys_base address to nand driver.
The gpmc_nand_init funciton is now used to detect the nand and required to
adopt _prob function as in nand/omap2.c
Signed-off-by: Sukumar Ghorai <s-ghorai@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/board-cm-t35.c | 20 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-devkit8000.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap3beagle.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap3touchbook.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-overo.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-sdp-flash.c | 5 |
6 files changed, 5 insertions, 118 deletions
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index e679a2cc86c3..05442945fc67 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c | |||
@@ -61,8 +61,6 @@ | |||
61 | #define SB_T35_SMSC911X_GPIO 65 | 61 | #define SB_T35_SMSC911X_GPIO 65 |
62 | 62 | ||
63 | #define NAND_BLOCK_SIZE SZ_128K | 63 | #define NAND_BLOCK_SIZE SZ_128K |
64 | #define GPMC_CS0_BASE 0x60 | ||
65 | #define GPMC_CS0_BASE_ADDR (OMAP34XX_GPMC_VIRT + GPMC_CS0_BASE) | ||
66 | 64 | ||
67 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | 65 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) |
68 | #include <linux/smsc911x.h> | 66 | #include <linux/smsc911x.h> |
@@ -223,28 +221,12 @@ static struct omap_nand_platform_data cm_t35_nand_data = { | |||
223 | .nr_parts = ARRAY_SIZE(cm_t35_nand_partitions), | 221 | .nr_parts = ARRAY_SIZE(cm_t35_nand_partitions), |
224 | .dma_channel = -1, /* disable DMA in OMAP NAND driver */ | 222 | .dma_channel = -1, /* disable DMA in OMAP NAND driver */ |
225 | .cs = 0, | 223 | .cs = 0, |
226 | .gpmc_cs_baseaddr = (void __iomem *)GPMC_CS0_BASE_ADDR, | ||
227 | .gpmc_baseaddr = (void __iomem *)OMAP34XX_GPMC_VIRT, | ||
228 | 224 | ||
229 | }; | 225 | }; |
230 | 226 | ||
231 | static struct resource cm_t35_nand_resource = { | ||
232 | .flags = IORESOURCE_MEM, | ||
233 | }; | ||
234 | |||
235 | static struct platform_device cm_t35_nand_device = { | ||
236 | .name = "omap2-nand", | ||
237 | .id = -1, | ||
238 | .num_resources = 1, | ||
239 | .resource = &cm_t35_nand_resource, | ||
240 | .dev = { | ||
241 | .platform_data = &cm_t35_nand_data, | ||
242 | }, | ||
243 | }; | ||
244 | |||
245 | static void __init cm_t35_init_nand(void) | 227 | static void __init cm_t35_init_nand(void) |
246 | { | 228 | { |
247 | if (platform_device_register(&cm_t35_nand_device) < 0) | 229 | if (gpmc_nand_init(&cm_t35_nand_data) < 0) |
248 | pr_err("CM-T35: Unable to register NAND device\n"); | 230 | pr_err("CM-T35: Unable to register NAND device\n"); |
249 | } | 231 | } |
250 | #else | 232 | #else |
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index f8303f7bbe76..96e16f76ff44 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c | |||
@@ -59,9 +59,6 @@ | |||
59 | #include "mux.h" | 59 | #include "mux.h" |
60 | #include "hsmmc.h" | 60 | #include "hsmmc.h" |
61 | 61 | ||
62 | #define GPMC_CS0_BASE 0x60 | ||
63 | #define GPMC_CS_SIZE 0x30 | ||
64 | |||
65 | #define NAND_BLOCK_SIZE SZ_128K | 62 | #define NAND_BLOCK_SIZE SZ_128K |
66 | 63 | ||
67 | #define OMAP_DM9000_GPIO_IRQ 25 | 64 | #define OMAP_DM9000_GPIO_IRQ 25 |
@@ -105,20 +102,6 @@ static struct omap_nand_platform_data devkit8000_nand_data = { | |||
105 | .dma_channel = -1, /* disable DMA in OMAP NAND driver */ | 102 | .dma_channel = -1, /* disable DMA in OMAP NAND driver */ |
106 | }; | 103 | }; |
107 | 104 | ||
108 | static struct resource devkit8000_nand_resource = { | ||
109 | .flags = IORESOURCE_MEM, | ||
110 | }; | ||
111 | |||
112 | static struct platform_device devkit8000_nand_device = { | ||
113 | .name = "omap2-nand", | ||
114 | .id = -1, | ||
115 | .dev = { | ||
116 | .platform_data = &devkit8000_nand_data, | ||
117 | }, | ||
118 | .num_resources = 1, | ||
119 | .resource = &devkit8000_nand_resource, | ||
120 | }; | ||
121 | |||
122 | static struct omap2_hsmmc_info mmc[] = { | 105 | static struct omap2_hsmmc_info mmc[] = { |
123 | { | 106 | { |
124 | .mmc = 1, | 107 | .mmc = 1, |
@@ -591,8 +574,6 @@ static void __init devkit8000_flash_init(void) | |||
591 | u8 cs = 0; | 574 | u8 cs = 0; |
592 | u8 nandcs = GPMC_CS_NUM + 1; | 575 | u8 nandcs = GPMC_CS_NUM + 1; |
593 | 576 | ||
594 | u32 gpmc_base_add = OMAP34XX_GPMC_VIRT; | ||
595 | |||
596 | /* find out the chip-select on which NAND exists */ | 577 | /* find out the chip-select on which NAND exists */ |
597 | while (cs < GPMC_CS_NUM) { | 578 | while (cs < GPMC_CS_NUM) { |
598 | u32 ret = 0; | 579 | u32 ret = 0; |
@@ -614,13 +595,9 @@ static void __init devkit8000_flash_init(void) | |||
614 | 595 | ||
615 | if (nandcs < GPMC_CS_NUM) { | 596 | if (nandcs < GPMC_CS_NUM) { |
616 | devkit8000_nand_data.cs = nandcs; | 597 | devkit8000_nand_data.cs = nandcs; |
617 | devkit8000_nand_data.gpmc_cs_baseaddr = (void *) | ||
618 | (gpmc_base_add + GPMC_CS0_BASE + nandcs * GPMC_CS_SIZE); | ||
619 | devkit8000_nand_data.gpmc_baseaddr = (void *) | ||
620 | (gpmc_base_add); | ||
621 | 598 | ||
622 | printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); | 599 | printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); |
623 | if (platform_device_register(&devkit8000_nand_device) < 0) | 600 | if (gpmc_nand_init(&devkit8000_nand_data) < 0) |
624 | printk(KERN_ERR "Unable to register NAND device\n"); | 601 | printk(KERN_ERR "Unable to register NAND device\n"); |
625 | } | 602 | } |
626 | } | 603 | } |
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 69b154cdc75d..dc5a7e8790c0 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
@@ -48,9 +48,6 @@ | |||
48 | #include "mux.h" | 48 | #include "mux.h" |
49 | #include "hsmmc.h" | 49 | #include "hsmmc.h" |
50 | 50 | ||
51 | #define GPMC_CS0_BASE 0x60 | ||
52 | #define GPMC_CS_SIZE 0x30 | ||
53 | |||
54 | #define NAND_BLOCK_SIZE SZ_128K | 51 | #define NAND_BLOCK_SIZE SZ_128K |
55 | 52 | ||
56 | static struct mtd_partition omap3beagle_nand_partitions[] = { | 53 | static struct mtd_partition omap3beagle_nand_partitions[] = { |
@@ -93,20 +90,6 @@ static struct omap_nand_platform_data omap3beagle_nand_data = { | |||
93 | .dev_ready = NULL, | 90 | .dev_ready = NULL, |
94 | }; | 91 | }; |
95 | 92 | ||
96 | static struct resource omap3beagle_nand_resource = { | ||
97 | .flags = IORESOURCE_MEM, | ||
98 | }; | ||
99 | |||
100 | static struct platform_device omap3beagle_nand_device = { | ||
101 | .name = "omap2-nand", | ||
102 | .id = -1, | ||
103 | .dev = { | ||
104 | .platform_data = &omap3beagle_nand_data, | ||
105 | }, | ||
106 | .num_resources = 1, | ||
107 | .resource = &omap3beagle_nand_resource, | ||
108 | }; | ||
109 | |||
110 | /* DSS */ | 93 | /* DSS */ |
111 | 94 | ||
112 | static int beagle_enable_dvi(struct omap_dss_device *dssdev) | 95 | static int beagle_enable_dvi(struct omap_dss_device *dssdev) |
@@ -424,8 +407,6 @@ static void __init omap3beagle_flash_init(void) | |||
424 | u8 cs = 0; | 407 | u8 cs = 0; |
425 | u8 nandcs = GPMC_CS_NUM + 1; | 408 | u8 nandcs = GPMC_CS_NUM + 1; |
426 | 409 | ||
427 | u32 gpmc_base_add = OMAP34XX_GPMC_VIRT; | ||
428 | |||
429 | /* find out the chip-select on which NAND exists */ | 410 | /* find out the chip-select on which NAND exists */ |
430 | while (cs < GPMC_CS_NUM) { | 411 | while (cs < GPMC_CS_NUM) { |
431 | u32 ret = 0; | 412 | u32 ret = 0; |
@@ -447,12 +428,9 @@ static void __init omap3beagle_flash_init(void) | |||
447 | 428 | ||
448 | if (nandcs < GPMC_CS_NUM) { | 429 | if (nandcs < GPMC_CS_NUM) { |
449 | omap3beagle_nand_data.cs = nandcs; | 430 | omap3beagle_nand_data.cs = nandcs; |
450 | omap3beagle_nand_data.gpmc_cs_baseaddr = (void *) | ||
451 | (gpmc_base_add + GPMC_CS0_BASE + nandcs * GPMC_CS_SIZE); | ||
452 | omap3beagle_nand_data.gpmc_baseaddr = (void *) (gpmc_base_add); | ||
453 | 431 | ||
454 | printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); | 432 | printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); |
455 | if (platform_device_register(&omap3beagle_nand_device) < 0) | 433 | if (gpmc_nand_init(&omap3beagle_nand_data) < 0) |
456 | printk(KERN_ERR "Unable to register NAND device\n"); | 434 | printk(KERN_ERR "Unable to register NAND device\n"); |
457 | } | 435 | } |
458 | } | 436 | } |
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c index 2f5f8233dd5b..288f9d5c7291 100644 --- a/arch/arm/mach-omap2/board-omap3touchbook.c +++ b/arch/arm/mach-omap2/board-omap3touchbook.c | |||
@@ -54,9 +54,6 @@ | |||
54 | 54 | ||
55 | #include <asm/setup.h> | 55 | #include <asm/setup.h> |
56 | 56 | ||
57 | #define GPMC_CS0_BASE 0x60 | ||
58 | #define GPMC_CS_SIZE 0x30 | ||
59 | |||
60 | #define NAND_BLOCK_SIZE SZ_128K | 57 | #define NAND_BLOCK_SIZE SZ_128K |
61 | 58 | ||
62 | #define OMAP3_AC_GPIO 136 | 59 | #define OMAP3_AC_GPIO 136 |
@@ -106,20 +103,6 @@ static struct omap_nand_platform_data omap3touchbook_nand_data = { | |||
106 | .dev_ready = NULL, | 103 | .dev_ready = NULL, |
107 | }; | 104 | }; |
108 | 105 | ||
109 | static struct resource omap3touchbook_nand_resource = { | ||
110 | .flags = IORESOURCE_MEM, | ||
111 | }; | ||
112 | |||
113 | static struct platform_device omap3touchbook_nand_device = { | ||
114 | .name = "omap2-nand", | ||
115 | .id = -1, | ||
116 | .dev = { | ||
117 | .platform_data = &omap3touchbook_nand_data, | ||
118 | }, | ||
119 | .num_resources = 1, | ||
120 | .resource = &omap3touchbook_nand_resource, | ||
121 | }; | ||
122 | |||
123 | #include "sdram-micron-mt46h32m32lf-6.h" | 106 | #include "sdram-micron-mt46h32m32lf-6.h" |
124 | 107 | ||
125 | static struct omap2_hsmmc_info mmc[] = { | 108 | static struct omap2_hsmmc_info mmc[] = { |
@@ -458,8 +441,6 @@ static void __init omap3touchbook_flash_init(void) | |||
458 | u8 cs = 0; | 441 | u8 cs = 0; |
459 | u8 nandcs = GPMC_CS_NUM + 1; | 442 | u8 nandcs = GPMC_CS_NUM + 1; |
460 | 443 | ||
461 | u32 gpmc_base_add = OMAP34XX_GPMC_VIRT; | ||
462 | |||
463 | /* find out the chip-select on which NAND exists */ | 444 | /* find out the chip-select on which NAND exists */ |
464 | while (cs < GPMC_CS_NUM) { | 445 | while (cs < GPMC_CS_NUM) { |
465 | u32 ret = 0; | 446 | u32 ret = 0; |
@@ -481,13 +462,9 @@ static void __init omap3touchbook_flash_init(void) | |||
481 | 462 | ||
482 | if (nandcs < GPMC_CS_NUM) { | 463 | if (nandcs < GPMC_CS_NUM) { |
483 | omap3touchbook_nand_data.cs = nandcs; | 464 | omap3touchbook_nand_data.cs = nandcs; |
484 | omap3touchbook_nand_data.gpmc_cs_baseaddr = (void *) | ||
485 | (gpmc_base_add + GPMC_CS0_BASE + nandcs * GPMC_CS_SIZE); | ||
486 | omap3touchbook_nand_data.gpmc_baseaddr = | ||
487 | (void *) (gpmc_base_add); | ||
488 | 465 | ||
489 | printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); | 466 | printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); |
490 | if (platform_device_register(&omap3touchbook_nand_device) < 0) | 467 | if (gpmc_nand_init(&omap3touchbook_nand_data) < 0) |
491 | printk(KERN_ERR "Unable to register NAND device\n"); | 468 | printk(KERN_ERR "Unable to register NAND device\n"); |
492 | } | 469 | } |
493 | } | 470 | } |
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c index 4ceeb56c414c..7fe3296faa25 100644 --- a/arch/arm/mach-omap2/board-overo.c +++ b/arch/arm/mach-omap2/board-overo.c | |||
@@ -58,8 +58,6 @@ | |||
58 | #define OVERO_GPIO_USBH_NRESET 183 | 58 | #define OVERO_GPIO_USBH_NRESET 183 |
59 | 59 | ||
60 | #define NAND_BLOCK_SIZE SZ_128K | 60 | #define NAND_BLOCK_SIZE SZ_128K |
61 | #define GPMC_CS0_BASE 0x60 | ||
62 | #define GPMC_CS_SIZE 0x30 | ||
63 | 61 | ||
64 | #define OVERO_SMSC911X_CS 5 | 62 | #define OVERO_SMSC911X_CS 5 |
65 | #define OVERO_SMSC911X_GPIO 176 | 63 | #define OVERO_SMSC911X_GPIO 176 |
@@ -269,28 +267,11 @@ static struct omap_nand_platform_data overo_nand_data = { | |||
269 | .dma_channel = -1, /* disable DMA in OMAP NAND driver */ | 267 | .dma_channel = -1, /* disable DMA in OMAP NAND driver */ |
270 | }; | 268 | }; |
271 | 269 | ||
272 | static struct resource overo_nand_resource = { | ||
273 | .flags = IORESOURCE_MEM, | ||
274 | }; | ||
275 | |||
276 | static struct platform_device overo_nand_device = { | ||
277 | .name = "omap2-nand", | ||
278 | .id = -1, | ||
279 | .dev = { | ||
280 | .platform_data = &overo_nand_data, | ||
281 | }, | ||
282 | .num_resources = 1, | ||
283 | .resource = &overo_nand_resource, | ||
284 | }; | ||
285 | |||
286 | |||
287 | static void __init overo_flash_init(void) | 270 | static void __init overo_flash_init(void) |
288 | { | 271 | { |
289 | u8 cs = 0; | 272 | u8 cs = 0; |
290 | u8 nandcs = GPMC_CS_NUM + 1; | 273 | u8 nandcs = GPMC_CS_NUM + 1; |
291 | 274 | ||
292 | u32 gpmc_base_add = OMAP34XX_GPMC_VIRT; | ||
293 | |||
294 | /* find out the chip-select on which NAND exists */ | 275 | /* find out the chip-select on which NAND exists */ |
295 | while (cs < GPMC_CS_NUM) { | 276 | while (cs < GPMC_CS_NUM) { |
296 | u32 ret = 0; | 277 | u32 ret = 0; |
@@ -312,12 +293,9 @@ static void __init overo_flash_init(void) | |||
312 | 293 | ||
313 | if (nandcs < GPMC_CS_NUM) { | 294 | if (nandcs < GPMC_CS_NUM) { |
314 | overo_nand_data.cs = nandcs; | 295 | overo_nand_data.cs = nandcs; |
315 | overo_nand_data.gpmc_cs_baseaddr = (void *) | ||
316 | (gpmc_base_add + GPMC_CS0_BASE + nandcs * GPMC_CS_SIZE); | ||
317 | overo_nand_data.gpmc_baseaddr = (void *) (gpmc_base_add); | ||
318 | 296 | ||
319 | printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); | 297 | printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); |
320 | if (platform_device_register(&overo_nand_device) < 0) | 298 | if (gpmc_nand_init(&overo_nand_data) < 0) |
321 | printk(KERN_ERR "Unable to register NAND device\n"); | 299 | printk(KERN_ERR "Unable to register NAND device\n"); |
322 | } | 300 | } |
323 | } | 301 | } |
diff --git a/arch/arm/mach-omap2/board-sdp-flash.c b/arch/arm/mach-omap2/board-sdp-flash.c index 2d026328e385..2638c834dec2 100644 --- a/arch/arm/mach-omap2/board-sdp-flash.c +++ b/arch/arm/mach-omap2/board-sdp-flash.c | |||
@@ -162,11 +162,6 @@ __init board_nand_init(struct flash_partitions sdp_nand_parts, u8 cs) | |||
162 | sdp_nand_data.parts = sdp_nand_parts.parts; | 162 | sdp_nand_data.parts = sdp_nand_parts.parts; |
163 | sdp_nand_data.nr_parts = sdp_nand_parts.nr_parts; | 163 | sdp_nand_data.nr_parts = sdp_nand_parts.nr_parts; |
164 | 164 | ||
165 | sdp_nand_data.gpmc_cs_baseaddr = (void *)(OMAP34XX_GPMC_VIRT + | ||
166 | GPMC_CS0_BASE + | ||
167 | cs * GPMC_CS_SIZE); | ||
168 | sdp_nand_data.gpmc_baseaddr = (void *) (OMAP34XX_GPMC_VIRT); | ||
169 | |||
170 | gpmc_nand_init(&sdp_nand_data); | 165 | gpmc_nand_init(&sdp_nand_data); |
171 | } | 166 | } |
172 | #else | 167 | #else |