fix reboot on ar5315
[openwrt/svn-archive/archive.git] / target / linux / atheros / files / arch / mips / atheros / ar5315 / board.c
index 6d46c85a1ec6c5154ce25c30137f4d10d343ce5f..28df6587c9a38cae476b84a20631d83fe40b3f18 100644 (file)
@@ -28,6 +28,7 @@
 #include <asm/io.h>
 #include <ar531x.h>
 #include <linux/leds.h>
+#include <asm/gpio.h>
 
 static int is_5315 = 0;
 
@@ -265,18 +266,13 @@ static void ar5315_restart(char *command)
 {
        unsigned int reg;
        for(;;) {
-               
                /* reset the system */
                sysRegWrite(AR5315_COLD_RESET,AR5317_RESET_SYSTEM);
 
                /* 
                 * Cold reset does not work on the AR2315/6, use the GPIO reset bits a workaround.
                 */
-
-               reg = sysRegRead(AR5315_GPIO_DO);
-               reg &= ~(1 << AR5315_RESET_GPIO);
-               sysRegWrite(AR5315_GPIO_DO, reg);
-               (void)sysRegRead(AR5315_GPIO_DO); /* flush write to hardware */
+               gpio_direction_output(AR5315_RESET_GPIO, 0);
        }
 }