void s5p_gpio_set_pull(struct s5p_gpio_bank *bank, int gpio, int mode) { unsigned int value; value = readl(&bank->pull); value &= ~PULL_MASK(gpio); switch (mode) { case EXYNOS_GPIO_PULL_DOWN: case EXYNOS_GPIO_PULL_UP: value |= PULL_MODE(gpio, mode); break; default: break; } writel(value, &bank->pull); }
void gpio_set_pull(int gpio, int mode) { unsigned int value; struct gpio_bank *bank = gpio_get_bank(gpio); value = read32(&bank->pull); value &= ~PULL_MASK(GPIO_BIT(gpio)); switch (mode) { case GPIO_PULL_DOWN: case GPIO_PULL_UP: value |= PULL_MODE(GPIO_BIT(gpio), mode); break; default: break; } write32(&bank->pull, value); }