aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/board-omap3beagle.c
diff options
context:
space:
mode:
authorMike Rapoport <mike@compulab.co.il>2011-04-24 18:09:07 -0400
committerTony Lindgren <tony@atomide.com>2011-05-03 05:53:37 -0400
commit9a3f39ff36e11ea6b6c8b5f90337a864cb7e81f6 (patch)
treebdce8353ab8670fa603d5ace590c2a467df3537d /arch/arm/mach-omap2/board-omap3beagle.c
parentfbd8071c188e3053fb318d78214e54d4615d93f2 (diff)
omap: move detection of NAND CS to common-board-devices
and reduce amount of copy/paste Signed-off-by: Mike Rapoport <mike@compulab.co.il> CC: Oleg Drokin <green@linuxhacker.ru> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/board-omap3beagle.c')
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c45
1 files changed, 2 insertions, 43 deletions
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 13a16649d42c..ce3bc2d1164c 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -174,15 +174,6 @@ static struct mtd_partition omap3beagle_nand_partitions[] = {
174 }, 174 },
175}; 175};
176 176
177static struct omap_nand_platform_data omap3beagle_nand_data = {
178 .options = NAND_BUSWIDTH_16,
179 .parts = omap3beagle_nand_partitions,
180 .nr_parts = ARRAY_SIZE(omap3beagle_nand_partitions),
181 .dma_channel = -1, /* disable DMA in OMAP NAND driver */
182 .nand_setup = NULL,
183 .dev_ready = NULL,
184};
185
186/* DSS */ 177/* DSS */
187 178
188static int beagle_enable_dvi(struct omap_dss_device *dssdev) 179static int beagle_enable_dvi(struct omap_dss_device *dssdev)
@@ -542,39 +533,6 @@ static struct platform_device *omap3_beagle_devices[] __initdata = {
542 &keys_gpio, 533 &keys_gpio,
543}; 534};
544 535
545static void __init omap3beagle_flash_init(void)
546{
547 u8 cs = 0;
548 u8 nandcs = GPMC_CS_NUM + 1;
549
550 /* find out the chip-select on which NAND exists */
551 while (cs < GPMC_CS_NUM) {
552 u32 ret = 0;
553 ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1);
554
555 if ((ret & 0xC00) == 0x800) {
556 printk(KERN_INFO "Found NAND on CS%d\n", cs);
557 if (nandcs > GPMC_CS_NUM)
558 nandcs = cs;
559 }
560 cs++;
561 }
562
563 if (nandcs > GPMC_CS_NUM) {
564 printk(KERN_INFO "NAND: Unable to find configuration "
565 "in GPMC\n ");
566 return;
567 }
568
569 if (nandcs < GPMC_CS_NUM) {
570 omap3beagle_nand_data.cs = nandcs;
571
572 printk(KERN_INFO "Registering NAND on CS%d\n", nandcs);
573 if (gpmc_nand_init(&omap3beagle_nand_data) < 0)
574 printk(KERN_ERR "Unable to register NAND device\n");
575 }
576}
577
578static const struct usbhs_omap_board_data usbhs_bdata __initconst = { 536static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
579 537
580 .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, 538 .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
@@ -662,7 +620,8 @@ static void __init omap3_beagle_init(void)
662 620
663 usb_musb_init(&musb_board_data); 621 usb_musb_init(&musb_board_data);
664 usbhs_init(&usbhs_bdata); 622 usbhs_init(&usbhs_bdata);
665 omap3beagle_flash_init(); 623 omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
624 ARRAY_SIZE(omap3beagle_nand_partitions));
666 625
667 /* Ensure SDRC pins are mux'd for self-refresh */ 626 /* Ensure SDRC pins are mux'd for self-refresh */
668 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); 627 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);