#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
                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));
 
 #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
        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;
 }
 
 #include <asm/reboot.h>
 #include <asm/portmux.h>
 #include <asm/dpmc.h>
-#include <mach/fio_flag.h>
 
 /*
  * Name the Board for the /proc/cpuinfo
                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));
 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);
 }