diff options
author | Afzal Mohammed <afzal@ti.com> | 2012-02-29 07:41:56 -0500 |
---|---|---|
committer | Afzal Mohammed <afzal@ti.com> | 2012-10-15 02:30:44 -0400 |
commit | 2e618261c96d72e5c5409d134d6d93e679683ab8 (patch) | |
tree | 26695df308bf730aa404e2106272c2885e6cf3ff | |
parent | ddffeb8c4d0331609ef2581d84de4d763607bd37 (diff) |
ARM: OMAP2+: nand: unify init functions
Helper function for updating nand platform data has been
added the capability to take timing structure arguement.
Usage of omap_nand_flash_init() has been replaced by modifed
one, omap_nand_flash_init was doing things similar to
board_nand_init except that NAND CS# were being acquired
based on bootloader setting. As CS# is hardwired for a given
board, acquiring gpmc CS# has been removed, and updated with
the value on board.
NAND CS# used in beagle board & omap3evm was found to be CS0.
Thomas Weber <thomas.weber.linux@googlemail.com> reported
that value of devkit8000 to be CS0. Overo board was found
to be using CS0 based on u-boot, while google grep says
omap3touchbook too has CS0.
Signed-off-by: Afzal Mohammed <afzal@ti.com>
Reviewed-by: Jon Hunter <jon-hunter@ti.com>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
-rw-r--r-- | arch/arm/mach-omap2/board-devkit8000.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-flash.c | 45 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-flash.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-igep0020.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-ldp.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap3beagle.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap3evm.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap3touchbook.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-overo.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-zoom.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-omap2/common-board-devices.c | 45 | ||||
-rw-r--r-- | arch/arm/mach-omap2/common-board-devices.h | 1 |
12 files changed, 62 insertions, 85 deletions
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index 1fd161e934c7..99339666d2d3 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c | |||
@@ -55,8 +55,11 @@ | |||
55 | #include "sdram-micron-mt46h32m32lf-6.h" | 55 | #include "sdram-micron-mt46h32m32lf-6.h" |
56 | #include "mux.h" | 56 | #include "mux.h" |
57 | #include "hsmmc.h" | 57 | #include "hsmmc.h" |
58 | #include "board-flash.h" | ||
58 | #include "common-board-devices.h" | 59 | #include "common-board-devices.h" |
59 | 60 | ||
61 | #define NAND_CS 0 | ||
62 | |||
60 | #define OMAP_DM9000_GPIO_IRQ 25 | 63 | #define OMAP_DM9000_GPIO_IRQ 25 |
61 | #define OMAP3_DEVKIT_TS_GPIO 27 | 64 | #define OMAP3_DEVKIT_TS_GPIO 27 |
62 | 65 | ||
@@ -621,8 +624,9 @@ static void __init devkit8000_init(void) | |||
621 | 624 | ||
622 | usb_musb_init(NULL); | 625 | usb_musb_init(NULL); |
623 | usbhs_init(&usbhs_bdata); | 626 | usbhs_init(&usbhs_bdata); |
624 | omap_nand_flash_init(NAND_BUSWIDTH_16, devkit8000_nand_partitions, | 627 | board_nand_init(devkit8000_nand_partitions, |
625 | ARRAY_SIZE(devkit8000_nand_partitions)); | 628 | ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS, |
629 | NAND_BUSWIDTH_16, NULL); | ||
626 | omap_twl4030_audio_init("omap3beagle"); | 630 | omap_twl4030_audio_init("omap3beagle"); |
627 | 631 | ||
628 | /* Ensure SDRC pins are mux'd for self-refresh */ | 632 | /* Ensure SDRC pins are mux'd for self-refresh */ |
diff --git a/arch/arm/mach-omap2/board-flash.c b/arch/arm/mach-omap2/board-flash.c index e642acf9cad0..d4ac5352a71c 100644 --- a/arch/arm/mach-omap2/board-flash.c +++ b/arch/arm/mach-omap2/board-flash.c | |||
@@ -104,41 +104,41 @@ __init board_onenand_init(struct mtd_partition *onenand_parts, | |||
104 | defined(CONFIG_MTD_NAND_OMAP2_MODULE) | 104 | defined(CONFIG_MTD_NAND_OMAP2_MODULE) |
105 | 105 | ||
106 | /* Note that all values in this struct are in nanoseconds */ | 106 | /* Note that all values in this struct are in nanoseconds */ |
107 | static struct gpmc_timings nand_timings = { | 107 | struct gpmc_timings nand_default_timings[1] = { |
108 | { | ||
109 | .sync_clk = 0, | ||
108 | 110 | ||
109 | .sync_clk = 0, | 111 | .cs_on = 0, |
112 | .cs_rd_off = 36, | ||
113 | .cs_wr_off = 36, | ||
110 | 114 | ||
111 | .cs_on = 0, | 115 | .adv_on = 6, |
112 | .cs_rd_off = 36, | 116 | .adv_rd_off = 24, |
113 | .cs_wr_off = 36, | 117 | .adv_wr_off = 36, |
114 | 118 | ||
115 | .adv_on = 6, | 119 | .we_off = 30, |
116 | .adv_rd_off = 24, | 120 | .oe_off = 48, |
117 | .adv_wr_off = 36, | ||
118 | 121 | ||
119 | .we_off = 30, | 122 | .access = 54, |
120 | .oe_off = 48, | 123 | .rd_cycle = 72, |
124 | .wr_cycle = 72, | ||
121 | 125 | ||
122 | .access = 54, | 126 | .wr_access = 30, |
123 | .rd_cycle = 72, | 127 | .wr_data_mux_bus = 0, |
124 | .wr_cycle = 72, | 128 | }, |
125 | |||
126 | .wr_access = 30, | ||
127 | .wr_data_mux_bus = 0, | ||
128 | }; | 129 | }; |
129 | 130 | ||
130 | static struct omap_nand_platform_data board_nand_data = { | 131 | static struct omap_nand_platform_data board_nand_data; |
131 | .gpmc_t = &nand_timings, | ||
132 | }; | ||
133 | 132 | ||
134 | void | 133 | void |
135 | __init board_nand_init(struct mtd_partition *nand_parts, | 134 | __init board_nand_init(struct mtd_partition *nand_parts, u8 nr_parts, u8 cs, |
136 | u8 nr_parts, u8 cs, int nand_type) | 135 | int nand_type, struct gpmc_timings *gpmc_t) |
137 | { | 136 | { |
138 | board_nand_data.cs = cs; | 137 | board_nand_data.cs = cs; |
139 | board_nand_data.parts = nand_parts; | 138 | board_nand_data.parts = nand_parts; |
140 | board_nand_data.nr_parts = nr_parts; | 139 | board_nand_data.nr_parts = nr_parts; |
141 | board_nand_data.devsize = nand_type; | 140 | board_nand_data.devsize = nand_type; |
141 | board_nand_data.gpmc_t = gpmc_t; | ||
142 | 142 | ||
143 | board_nand_data.ecc_opt = OMAP_ECC_HAMMING_CODE_DEFAULT; | 143 | board_nand_data.ecc_opt = OMAP_ECC_HAMMING_CODE_DEFAULT; |
144 | gpmc_nand_init(&board_nand_data); | 144 | gpmc_nand_init(&board_nand_data); |
@@ -238,5 +238,6 @@ void __init board_flash_init(struct flash_partitions partition_info[], | |||
238 | pr_err("NAND: Unable to find configuration in GPMC\n"); | 238 | pr_err("NAND: Unable to find configuration in GPMC\n"); |
239 | else | 239 | else |
240 | board_nand_init(partition_info[2].parts, | 240 | board_nand_init(partition_info[2].parts, |
241 | partition_info[2].nr_parts, nandcs, nand_type); | 241 | partition_info[2].nr_parts, nandcs, |
242 | nand_type, nand_default_timings); | ||
242 | } | 243 | } |
diff --git a/arch/arm/mach-omap2/board-flash.h b/arch/arm/mach-omap2/board-flash.h index c44b70d52021..a3aa5fca4495 100644 --- a/arch/arm/mach-omap2/board-flash.h +++ b/arch/arm/mach-omap2/board-flash.h | |||
@@ -40,12 +40,14 @@ static inline void board_flash_init(struct flash_partitions part[], | |||
40 | #if defined(CONFIG_MTD_NAND_OMAP2) || \ | 40 | #if defined(CONFIG_MTD_NAND_OMAP2) || \ |
41 | defined(CONFIG_MTD_NAND_OMAP2_MODULE) | 41 | defined(CONFIG_MTD_NAND_OMAP2_MODULE) |
42 | extern void board_nand_init(struct mtd_partition *nand_parts, | 42 | extern void board_nand_init(struct mtd_partition *nand_parts, |
43 | u8 nr_parts, u8 cs, int nand_type); | 43 | u8 nr_parts, u8 cs, int nand_type, struct gpmc_timings *gpmc_t); |
44 | extern struct gpmc_timings nand_default_timings[]; | ||
44 | #else | 45 | #else |
45 | static inline void board_nand_init(struct mtd_partition *nand_parts, | 46 | static inline void board_nand_init(struct mtd_partition *nand_parts, |
46 | u8 nr_parts, u8 cs, int nand_type) | 47 | u8 nr_parts, u8 cs, int nand_type, struct gpmc_timings *gpmc_t) |
47 | { | 48 | { |
48 | } | 49 | } |
50 | #define nand_default_timings NULL | ||
49 | #endif | 51 | #endif |
50 | 52 | ||
51 | #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ | 53 | #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ |
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 48d5e41dfbfa..f6b3ed0e5c94 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c | |||
@@ -175,7 +175,7 @@ static void __init igep_flash_init(void) | |||
175 | pr_info("IGEP: initializing NAND memory device\n"); | 175 | pr_info("IGEP: initializing NAND memory device\n"); |
176 | board_nand_init(igep_flash_partitions, | 176 | board_nand_init(igep_flash_partitions, |
177 | ARRAY_SIZE(igep_flash_partitions), | 177 | ARRAY_SIZE(igep_flash_partitions), |
178 | 0, NAND_BUSWIDTH_16); | 178 | 0, NAND_BUSWIDTH_16, nand_default_timings); |
179 | } else if (mux == IGEP_SYSBOOT_ONENAND) { | 179 | } else if (mux == IGEP_SYSBOOT_ONENAND) { |
180 | pr_info("IGEP: initializing OneNAND memory device\n"); | 180 | pr_info("IGEP: initializing OneNAND memory device\n"); |
181 | board_onenand_init(igep_flash_partitions, | 181 | board_onenand_init(igep_flash_partitions, |
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index ee8c3cfb95b3..83383f39e674 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c | |||
@@ -420,8 +420,8 @@ static void __init omap_ldp_init(void) | |||
420 | omap_serial_init(); | 420 | omap_serial_init(); |
421 | omap_sdrc_init(NULL, NULL); | 421 | omap_sdrc_init(NULL, NULL); |
422 | usb_musb_init(NULL); | 422 | usb_musb_init(NULL); |
423 | board_nand_init(ldp_nand_partitions, | 423 | board_nand_init(ldp_nand_partitions, ARRAY_SIZE(ldp_nand_partitions), |
424 | ARRAY_SIZE(ldp_nand_partitions), ZOOM_NAND_CS, 0); | 424 | ZOOM_NAND_CS, 0, nand_default_timings); |
425 | 425 | ||
426 | omap_hsmmc_init(mmc); | 426 | omap_hsmmc_init(mmc); |
427 | ldp_display_init(); | 427 | ldp_display_init(); |
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 388c431c745a..43b5f797e712 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
@@ -49,8 +49,11 @@ | |||
49 | #include "mux.h" | 49 | #include "mux.h" |
50 | #include "hsmmc.h" | 50 | #include "hsmmc.h" |
51 | #include "pm.h" | 51 | #include "pm.h" |
52 | #include "board-flash.h" | ||
52 | #include "common-board-devices.h" | 53 | #include "common-board-devices.h" |
53 | 54 | ||
55 | #define NAND_CS 0 | ||
56 | |||
54 | /* | 57 | /* |
55 | * OMAP3 Beagle revision | 58 | * OMAP3 Beagle revision |
56 | * Run time detection of Beagle revision is done by reading GPIO. | 59 | * Run time detection of Beagle revision is done by reading GPIO. |
@@ -512,8 +515,9 @@ static void __init omap3_beagle_init(void) | |||
512 | 515 | ||
513 | usb_musb_init(NULL); | 516 | usb_musb_init(NULL); |
514 | usbhs_init(&usbhs_bdata); | 517 | usbhs_init(&usbhs_bdata); |
515 | omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions, | 518 | board_nand_init(omap3beagle_nand_partitions, |
516 | ARRAY_SIZE(omap3beagle_nand_partitions)); | 519 | ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS, |
520 | NAND_BUSWIDTH_16, NULL); | ||
517 | omap_twl4030_audio_init("omap3beagle"); | 521 | omap_twl4030_audio_init("omap3beagle"); |
518 | 522 | ||
519 | /* Ensure msecure is mux'd to be able to set the RTC. */ | 523 | /* Ensure msecure is mux'd to be able to set the RTC. */ |
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index b9b776b6c954..1d8e926b52fe 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c | |||
@@ -56,6 +56,9 @@ | |||
56 | #include "sdram-micron-mt46h32m32lf-6.h" | 56 | #include "sdram-micron-mt46h32m32lf-6.h" |
57 | #include "hsmmc.h" | 57 | #include "hsmmc.h" |
58 | #include "common-board-devices.h" | 58 | #include "common-board-devices.h" |
59 | #include "board-flash.h" | ||
60 | |||
61 | #define NAND_CS 0 | ||
59 | 62 | ||
60 | #define OMAP3_EVM_TS_GPIO 175 | 63 | #define OMAP3_EVM_TS_GPIO 175 |
61 | #define OMAP3_EVM_EHCI_VBUS 22 | 64 | #define OMAP3_EVM_EHCI_VBUS 22 |
@@ -731,8 +734,9 @@ static void __init omap3_evm_init(void) | |||
731 | } | 734 | } |
732 | usb_musb_init(&musb_board_data); | 735 | usb_musb_init(&musb_board_data); |
733 | usbhs_init(&usbhs_bdata); | 736 | usbhs_init(&usbhs_bdata); |
734 | omap_nand_flash_init(NAND_BUSWIDTH_16, omap3evm_nand_partitions, | 737 | board_nand_init(omap3evm_nand_partitions, |
735 | ARRAY_SIZE(omap3evm_nand_partitions)); | 738 | ARRAY_SIZE(omap3evm_nand_partitions), NAND_CS, |
739 | NAND_BUSWIDTH_16, NULL); | ||
736 | 740 | ||
737 | omap_ads7846_init(1, OMAP3_EVM_TS_GPIO, 310, NULL); | 741 | omap_ads7846_init(1, OMAP3_EVM_TS_GPIO, 310, NULL); |
738 | omap3evm_init_smsc911x(); | 742 | omap3evm_init_smsc911x(); |
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c index 944ffc436577..3f013c8511ee 100644 --- a/arch/arm/mach-omap2/board-omap3touchbook.c +++ b/arch/arm/mach-omap2/board-omap3touchbook.c | |||
@@ -50,6 +50,7 @@ | |||
50 | 50 | ||
51 | #include "mux.h" | 51 | #include "mux.h" |
52 | #include "hsmmc.h" | 52 | #include "hsmmc.h" |
53 | #include "board-flash.h" | ||
53 | #include "common-board-devices.h" | 54 | #include "common-board-devices.h" |
54 | 55 | ||
55 | #include <asm/setup.h> | 56 | #include <asm/setup.h> |
@@ -59,6 +60,8 @@ | |||
59 | #define TB_BL_PWM_TIMER 9 | 60 | #define TB_BL_PWM_TIMER 9 |
60 | #define TB_KILL_POWER_GPIO 168 | 61 | #define TB_KILL_POWER_GPIO 168 |
61 | 62 | ||
63 | #define NAND_CS 0 | ||
64 | |||
62 | static unsigned long touchbook_revision; | 65 | static unsigned long touchbook_revision; |
63 | 66 | ||
64 | static struct mtd_partition omap3touchbook_nand_partitions[] = { | 67 | static struct mtd_partition omap3touchbook_nand_partitions[] = { |
@@ -365,8 +368,9 @@ static void __init omap3_touchbook_init(void) | |||
365 | omap_ads7846_init(4, OMAP3_TS_GPIO, 310, &ads7846_pdata); | 368 | omap_ads7846_init(4, OMAP3_TS_GPIO, 310, &ads7846_pdata); |
366 | usb_musb_init(NULL); | 369 | usb_musb_init(NULL); |
367 | usbhs_init(&usbhs_bdata); | 370 | usbhs_init(&usbhs_bdata); |
368 | omap_nand_flash_init(NAND_BUSWIDTH_16, omap3touchbook_nand_partitions, | 371 | board_nand_init(omap3touchbook_nand_partitions, |
369 | ARRAY_SIZE(omap3touchbook_nand_partitions)); | 372 | ARRAY_SIZE(omap3touchbook_nand_partitions), NAND_CS, |
373 | NAND_BUSWIDTH_16, NULL); | ||
370 | 374 | ||
371 | /* Ensure SDRC pins are mux'd for self-refresh */ | 375 | /* Ensure SDRC pins are mux'd for self-refresh */ |
372 | omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); | 376 | omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); |
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c index b700685762b5..e2cf0f768ddd 100644 --- a/arch/arm/mach-omap2/board-overo.c +++ b/arch/arm/mach-omap2/board-overo.c | |||
@@ -55,8 +55,11 @@ | |||
55 | #include "mux.h" | 55 | #include "mux.h" |
56 | #include "sdram-micron-mt46h32m32lf-6.h" | 56 | #include "sdram-micron-mt46h32m32lf-6.h" |
57 | #include "hsmmc.h" | 57 | #include "hsmmc.h" |
58 | #include "board-flash.h" | ||
58 | #include "common-board-devices.h" | 59 | #include "common-board-devices.h" |
59 | 60 | ||
61 | #define NAND_CS 0 | ||
62 | |||
60 | #define OVERO_GPIO_BT_XGATE 15 | 63 | #define OVERO_GPIO_BT_XGATE 15 |
61 | #define OVERO_GPIO_W2W_NRESET 16 | 64 | #define OVERO_GPIO_W2W_NRESET 16 |
62 | #define OVERO_GPIO_PENDOWN 114 | 65 | #define OVERO_GPIO_PENDOWN 114 |
@@ -495,8 +498,8 @@ static void __init overo_init(void) | |||
495 | omap_serial_init(); | 498 | omap_serial_init(); |
496 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, | 499 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, |
497 | mt46h32m32lf6_sdrc_params); | 500 | mt46h32m32lf6_sdrc_params); |
498 | omap_nand_flash_init(0, overo_nand_partitions, | 501 | board_nand_init(overo_nand_partitions, |
499 | ARRAY_SIZE(overo_nand_partitions)); | 502 | ARRAY_SIZE(overo_nand_partitions), NAND_CS, 0, NULL); |
500 | usb_musb_init(NULL); | 503 | usb_musb_init(NULL); |
501 | usbhs_init(&usbhs_bdata); | 504 | usbhs_init(&usbhs_bdata); |
502 | overo_spi_init(); | 505 | overo_spi_init(); |
diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-omap2/board-zoom.c index 4994438e1f46..c39578c1fa6d 100644 --- a/arch/arm/mach-omap2/board-zoom.c +++ b/arch/arm/mach-omap2/board-zoom.c | |||
@@ -113,8 +113,9 @@ static void __init omap_zoom_init(void) | |||
113 | usbhs_init(&usbhs_bdata); | 113 | usbhs_init(&usbhs_bdata); |
114 | } | 114 | } |
115 | 115 | ||
116 | board_nand_init(zoom_nand_partitions, ARRAY_SIZE(zoom_nand_partitions), | 116 | board_nand_init(zoom_nand_partitions, |
117 | ZOOM_NAND_CS, NAND_BUSWIDTH_16); | 117 | ARRAY_SIZE(zoom_nand_partitions), ZOOM_NAND_CS, |
118 | NAND_BUSWIDTH_16, nand_default_timings); | ||
118 | zoom_debugboard_init(); | 119 | zoom_debugboard_init(); |
119 | zoom_peripherals_init(); | 120 | zoom_peripherals_init(); |
120 | 121 | ||
diff --git a/arch/arm/mach-omap2/common-board-devices.c b/arch/arm/mach-omap2/common-board-devices.c index 48daac2581b4..90e0597667b9 100644 --- a/arch/arm/mach-omap2/common-board-devices.c +++ b/arch/arm/mach-omap2/common-board-devices.c | |||
@@ -96,48 +96,3 @@ void __init omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce, | |||
96 | { | 96 | { |
97 | } | 97 | } |
98 | #endif | 98 | #endif |
99 | |||
100 | #if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE) | ||
101 | static struct omap_nand_platform_data nand_data; | ||
102 | |||
103 | void __init omap_nand_flash_init(int options, struct mtd_partition *parts, | ||
104 | int nr_parts) | ||
105 | { | ||
106 | u8 cs = 0; | ||
107 | u8 nandcs = GPMC_CS_NUM + 1; | ||
108 | |||
109 | /* find out the chip-select on which NAND exists */ | ||
110 | while (cs < GPMC_CS_NUM) { | ||
111 | u32 ret = 0; | ||
112 | ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1); | ||
113 | |||
114 | if ((ret & 0xC00) == 0x800) { | ||
115 | printk(KERN_INFO "Found NAND on CS%d\n", cs); | ||
116 | if (nandcs > GPMC_CS_NUM) | ||
117 | nandcs = cs; | ||
118 | } | ||
119 | cs++; | ||
120 | } | ||
121 | |||
122 | if (nandcs > GPMC_CS_NUM) { | ||
123 | pr_info("NAND: Unable to find configuration in GPMC\n"); | ||
124 | return; | ||
125 | } | ||
126 | |||
127 | if (nandcs < GPMC_CS_NUM) { | ||
128 | nand_data.cs = nandcs; | ||
129 | nand_data.parts = parts; | ||
130 | nand_data.nr_parts = nr_parts; | ||
131 | nand_data.devsize = options; | ||
132 | |||
133 | printk(KERN_INFO "Registering NAND on CS%d\n", nandcs); | ||
134 | if (gpmc_nand_init(&nand_data) < 0) | ||
135 | printk(KERN_ERR "Unable to register NAND device\n"); | ||
136 | } | ||
137 | } | ||
138 | #else | ||
139 | void __init omap_nand_flash_init(int options, struct mtd_partition *parts, | ||
140 | int nr_parts) | ||
141 | { | ||
142 | } | ||
143 | #endif | ||
diff --git a/arch/arm/mach-omap2/common-board-devices.h b/arch/arm/mach-omap2/common-board-devices.h index a0b4a42836ab..72bb41b3fd25 100644 --- a/arch/arm/mach-omap2/common-board-devices.h +++ b/arch/arm/mach-omap2/common-board-devices.h | |||
@@ -10,6 +10,5 @@ struct ads7846_platform_data; | |||
10 | 10 | ||
11 | void omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce, | 11 | void omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce, |
12 | struct ads7846_platform_data *board_pdata); | 12 | struct ads7846_platform_data *board_pdata); |
13 | void omap_nand_flash_init(int opts, struct mtd_partition *parts, int n_parts); | ||
14 | 13 | ||
15 | #endif /* __OMAP_COMMON_BOARD_DEVICES__ */ | 14 | #endif /* __OMAP_COMMON_BOARD_DEVICES__ */ |