gpmc code has been converted to driver. Modify the board
code to provide gpmc driver with required information.

Signed-off-by: Afzal Mohammed <[email protected]>
---
 arch/arm/mach-omap2/board-zoom-debugboard.c |   47 +++++++++++++++------------
 1 file changed, 27 insertions(+), 20 deletions(-)

diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c 
b/arch/arm/mach-omap2/board-zoom-debugboard.c
index f64f441..dae7df2 100644
--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
+++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
@@ -31,6 +31,13 @@
 #define DEBUG_BASE             0x08000000
 #define ZOOM_ETHR_START        DEBUG_BASE
 
+static struct gpmc_device_pdata *gpmc_device_data[2];
+static struct gpmc_device_pdata **gpmc_cur = gpmc_device_data;
+
+static struct gpmc_pdata gpmc_data = {
+       .device_pdata = gpmc_device_data,
+};
+
 static struct omap_smsc911x_platform_data zoom_smsc911x_cfg = {
        .cs             = ZOOM_SMSC911X_CS,
        .gpio_irq       = ZOOM_SMSC911X_GPIO,
@@ -40,7 +47,11 @@ static struct omap_smsc911x_platform_data zoom_smsc911x_cfg 
= {
 
 static inline void __init zoom_init_smsc911x(void)
 {
-       gpmc_smsc911x_init(&zoom_smsc911x_cfg);
+       *gpmc_cur = gpmc_smsc911x_init(&zoom_smsc911x_cfg);
+       if (*gpmc_cur)
+               gpmc_data.num_device++, gpmc_cur++;
+       else
+               pr_err("error: %s: gpmc smsc911x setup\n", __func__);
 }
 
 static struct plat_serial8250_port serial_platform_data[] = {
@@ -56,18 +67,22 @@ static struct plat_serial8250_port serial_platform_data[] = 
{
        }
 };
 
-static struct platform_device zoom_debugboard_serial_device = {
+static struct gpmc_cs_data zoom_debugboard_gpmc_cs_serial_data = {
+       .cs             = ZOOM_QUADUART_CS,
+       .mem_size       = SZ_1M,
+};
+
+static struct gpmc_device_pdata zoom_debugboard_gpmc_serial_data = {
        .name                   = "serial8250",
        .id                     = PLAT8250_DEV_PLATFORM,
-       .dev                    = {
-               .platform_data  = serial_platform_data,
-       },
+       .pdata                  = serial_platform_data,
+       .pdata_size             = sizeof(serial_platform_data),
+       .cs_data                = &zoom_debugboard_gpmc_cs_serial_data,
+       .num_cs                 = 1,
 };
 
 static inline void __init zoom_init_quaduart(void)
 {
-       int quart_cs;
-       unsigned long cs_mem_base;
        int quart_gpio = 0;
 
        if (gpio_request_one(ZOOM_QUADUART_RST_GPIO,
@@ -78,14 +93,6 @@ static inline void __init zoom_init_quaduart(void)
                return;
        }
 
-       quart_cs = ZOOM_QUADUART_CS;
-
-       if (gpmc_cs_request(quart_cs, SZ_1M, &cs_mem_base) < 0) {
-               printk(KERN_ERR "Failed to request GPMC mem"
-                               "for Quad UART(TL16CP754C)\n");
-               return;
-       }
-
        quart_gpio = ZOOM_QUADUART_GPIO;
 
        if (gpio_request_one(quart_gpio, GPIOF_IN, "TL16CP754C GPIO") < 0)
@@ -93,6 +100,9 @@ static inline void __init zoom_init_quaduart(void)
                                                                quart_gpio);
 
        serial_platform_data[0].irq = gpio_to_irq(102);
+
+       *gpmc_cur++ = &zoom_debugboard_gpmc_serial_data;
+       gpmc_data.num_device++;
 }
 
 static inline int omap_zoom_debugboard_detect(void)
@@ -116,10 +126,6 @@ static inline int omap_zoom_debugboard_detect(void)
        return ret;
 }
 
-static struct platform_device *zoom_devices[] __initdata = {
-       &zoom_debugboard_serial_device,
-};
-
 static struct regulator_consumer_supply dummy_supplies[] = {
        REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
        REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
@@ -133,5 +139,6 @@ int __init zoom_debugboard_init(void)
        regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
        zoom_init_smsc911x();
        zoom_init_quaduart();
-       return platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices));
+       omap_init_gpmc(&gpmc_data);
+       return 0;
 }
-- 
1.7.10

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to