Blackfin: bf533: convert boards to gpio framework
authorMike Frysinger <vapier@gentoo.org>
Wed, 27 Oct 2010 01:30:29 +0000 (21:30 -0400)
committerMike Frysinger <vapier@gentoo.org>
Mon, 10 Jan 2011 12:18:07 +0000 (07:18 -0500)
We don't want people banging on MMRs directly.  As for the ip0x board,
it shouldn't need to muck with the CS pin directly as the Blackfin SPI
bus master driver takes care of driving this.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
arch/blackfin/mach-bf533/boards/blackstamp.c
arch/blackfin/mach-bf533/boards/ip0x.c
arch/blackfin/mach-bf533/boards/stamp.c

index 20c102285bef85dcedf1b5ec83da1c73366a2bab..992f551f06a1e670a19237d7ad936d87f8a26c04 100644 (file)
@@ -25,7 +25,6 @@
 #include <asm/bfin5xx_spi.h>
 #include <asm/portmux.h>
 #include <asm/dpmc.h>
-#include <mach/fio_flag.h>
 
 /*
  * Name the Board for the /proc/cpuinfo
@@ -476,10 +475,16 @@ static int __init blackstamp_init(void)
                return ret;
 
 #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
-       /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */
-       bfin_write_FIO_DIR(bfin_read_FIO_DIR() | PF0);
-       bfin_write_FIO_FLAG_S(PF0);
-       SSYNC();
+       /*
+        * setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC.
+        * the bfin-async-map driver takes care of flipping between
+        * flash and ethernet when necessary.
+        */
+       ret = gpio_request(GPIO_PF0, "enet_cpld");
+       if (!ret) {
+               gpio_direction_output(GPIO_PF0, 1);
+               gpio_free(GPIO_PF0);
+       }
 #endif
 
        spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
index 5ba4b02a12ebbcad6e5d2fd67fe45ed47c590779..631f0516e4650f91100abafd8e252d906e102e1f 100644 (file)
@@ -22,7 +22,6 @@
 #include <asm/dma.h>
 #include <asm/bfin5xx_spi.h>
 #include <asm/portmux.h>
-#include <mach/fio_flag.h>
 
 /*
  * Name the Board for the /proc/cpuinfo
@@ -295,15 +294,7 @@ static int __init ip0x_init(void)
        printk(KERN_INFO "%s(): registering device resources\n", __func__);
        platform_add_devices(ip0x_devices, ARRAY_SIZE(ip0x_devices));
 
-#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
-       for (i = 0; i < ARRAY_SIZE(bfin_spi_board_info); ++i) {
-               int j = 1 << bfin_spi_board_info[i].chip_select;
-               /* set spi cs to 1 */
-               bfin_write_FIO_DIR(bfin_read_FIO_DIR() | j);
-               bfin_write_FIO_FLAG_S(j);
-       }
        spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
-#endif
 
        return 0;
 }
index b3b1cdea27037941cff53d79c790ecc26da1f905..4b73d4295f82a202c28139252b8efb61a4bea062 100644 (file)
@@ -24,7 +24,6 @@
 #include <asm/reboot.h>
 #include <asm/portmux.h>
 #include <asm/dpmc.h>
-#include <mach/fio_flag.h>
 
 /*
  * Name the Board for the /proc/cpuinfo
@@ -674,10 +673,16 @@ static int __init stamp_init(void)
                return ret;
 
 #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
-       /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */
-       bfin_write_FIO_DIR(bfin_read_FIO_DIR() | PF0);
-       bfin_write_FIO_FLAG_S(PF0);
-       SSYNC();
+       /*
+        * setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC.
+        * the bfin-async-map driver takes care of flipping between
+        * flash and ethernet when necessary.
+        */
+       ret = gpio_request(GPIO_PF0, "enet_cpld");
+       if (!ret) {
+               gpio_direction_output(GPIO_PF0, 1);
+               gpio_free(GPIO_PF0);
+       }
 #endif
 
        spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
@@ -713,7 +718,6 @@ void __init native_machine_early_platform_add_devices(void)
 void native_machine_restart(char *cmd)
 {
        /* workaround pull up on cpld / flash pin not being strong enough */
-       bfin_write_FIO_INEN(~PF0);
-       bfin_write_FIO_DIR(PF0);
-       bfin_write_FIO_FLAG_C(PF0);
+       gpio_request(GPIO_PF0, "flash_cpld");
+       gpio_direction_output(GPIO_PF0, 0);
 }