extern unsigned int reset_status;
 extern void clear_reset_status(unsigned int mask);
 
-/*
- * register GPIO as reset generator
+/**
+ * init_gpio_reset() - register GPIO as reset generator
+ *
+ * @gpio - gpio nr
+ * @output - set gpio as out/low instead of input during normal work
  */
-extern int init_gpio_reset(int gpio);
+extern int init_gpio_reset(int gpio, int output);
 
 #endif /* __ASM_ARCH_RESET_H */
 
 
 static int reset_gpio = -1;
 
-int init_gpio_reset(int gpio)
+int init_gpio_reset(int gpio, int output)
 {
        int rc;
 
                goto out;
        }
 
-       rc = gpio_direction_input(gpio);
+       if (output)
+               rc = gpio_direction_output(gpio, 0);
+       else
+               rc = gpio_direction_input(gpio);
        if (rc) {
-               printk(KERN_ERR "Can't configure reset_gpio for input\n");
+               printk(KERN_ERR "Can't configure reset_gpio\n");
                gpio_free(gpio);
                goto out;
        }
 
 
 static void __init common_init(void)
 {
-       init_gpio_reset(SPITZ_GPIO_ON_RESET);
+       init_gpio_reset(SPITZ_GPIO_ON_RESET, 1);
        pm_power_off = spitz_poweroff;
        arm_pm_restart = spitz_restart;
 
 
        gpio_set_wake(MFP_PIN_GPIO1, 1);
        /* We can't pass to gpio-keys since it will drop the Reset altfunc */
 
-       init_gpio_reset(TOSA_GPIO_ON_RESET);
+       init_gpio_reset(TOSA_GPIO_ON_RESET, 0);
 
        pm_power_off = tosa_poweroff;
        arm_pm_restart = tosa_restart;