void s5p_gpio_set_rate(struct s5p_gpio_bank *bank, int gpio, int mode) { unsigned int value; value = readl(&bank->drv); value &= ~RATE_MASK(gpio); switch (mode) { case EXYNOS_GPIO_DRV_FAST: case EXYNOS_GPIO_DRV_SLOW: value |= RATE_SET(gpio); break; default: return; } writel(value, &bank->drv); }
void gpio_set_rate(int gpio, int mode) { unsigned int value; struct gpio_bank *bank = gpio_get_bank(gpio); value = read32(&bank->drv); value &= ~RATE_MASK(GPIO_BIT(gpio)); switch (mode) { case GPIO_DRV_FAST: case GPIO_DRV_SLOW: value |= RATE_SET(GPIO_BIT(gpio)); break; default: return; } write32(&bank->drv, value); }