void orion5x_restart(char mode, const char *cmd) { orion5x_setbits(RSTOUTn_MASK, (1 << 2)); orion5x_setbits(CPU_SOFT_RESET, 1); mdelay(200); orion5x_clrbits(CPU_SOFT_RESET, 1); }
void orion5x_restart(enum reboot_mode mode, const char *cmd) { /* * Enable and issue soft reset */ orion5x_setbits(RSTOUTn_MASK, (1 << 2)); orion5x_setbits(CPU_SOFT_RESET, 1); mdelay(200); orion5x_clrbits(CPU_SOFT_RESET, 1); }
int gpio_direction_output(unsigned pin, int value) { unsigned long flags; int mask; if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { pr_debug("%s: invalid GPIO %d\n", __func__, pin); return -EINVAL; } spin_lock_irqsave(&gpio_lock, flags); /* * Some callers might have not used the gpio_request(), * so flag this pin as requested now. */ if (!gpio_label[pin]) gpio_label[pin] = "?"; mask = 1 << pin; orion5x_clrbits(GPIO_BLINK_EN, mask); if (value) orion5x_setbits(GPIO_OUT, mask); else orion5x_clrbits(GPIO_OUT, mask); orion5x_clrbits(GPIO_IO_CONF, mask); spin_unlock_irqrestore(&gpio_lock, flags); return 0; }
void orion5x_gpio_set_blink(unsigned pin, int blink) { unsigned long flags; int mask = 1 << pin; spin_lock_irqsave(&gpio_lock, flags); orion5x_clrbits(GPIO_OUT, mask); if (blink) orion5x_setbits(GPIO_BLINK_EN, mask); else orion5x_clrbits(GPIO_BLINK_EN, mask); spin_unlock_irqrestore(&gpio_lock, flags); }