Lines Matching refs:gpio

73 #define GPIO_TO_BIT(gpio) BIT(gpio & 0x1f)  argument
74 #define GPIO_TO_REG(gpio, reg) (gpio_to_jz_gpio_chip(gpio)->base + (reg)) argument
89 static inline struct jz_gpio_chip *gpio_to_jz_gpio_chip(unsigned int gpio) in gpio_to_jz_gpio_chip() argument
91 return &jz4740_gpio_chips[gpio >> 5]; in gpio_to_jz_gpio_chip()
105 static inline void jz_gpio_write_bit(unsigned int gpio, unsigned int reg) in jz_gpio_write_bit() argument
107 writel(GPIO_TO_BIT(gpio), GPIO_TO_REG(gpio, reg)); in jz_gpio_write_bit()
110 int jz_gpio_set_function(int gpio, enum jz_gpio_function function) in jz_gpio_set_function() argument
113 jz_gpio_write_bit(gpio, JZ_REG_GPIO_FUNC_CLEAR); in jz_gpio_set_function()
114 jz_gpio_write_bit(gpio, JZ_REG_GPIO_SELECT_CLEAR); in jz_gpio_set_function()
115 jz_gpio_write_bit(gpio, JZ_REG_GPIO_TRIGGER_CLEAR); in jz_gpio_set_function()
117 jz_gpio_write_bit(gpio, JZ_REG_GPIO_FUNC_SET); in jz_gpio_set_function()
118 jz_gpio_write_bit(gpio, JZ_REG_GPIO_TRIGGER_CLEAR); in jz_gpio_set_function()
121 jz_gpio_write_bit(gpio, JZ_REG_GPIO_SELECT_CLEAR); in jz_gpio_set_function()
124 jz_gpio_write_bit(gpio, JZ_REG_GPIO_TRIGGER_SET); in jz_gpio_set_function()
126 jz_gpio_write_bit(gpio, JZ_REG_GPIO_SELECT_SET); in jz_gpio_set_function()
144 ret = gpio_request(request->gpio, request->name); in jz_gpio_bulk_request()
147 jz_gpio_set_function(request->gpio, request->function); in jz_gpio_bulk_request()
154 gpio_free(request->gpio); in jz_gpio_bulk_request()
155 jz_gpio_set_function(request->gpio, JZ_GPIO_FUNC_NONE); in jz_gpio_bulk_request()
167 gpio_free(request->gpio); in jz_gpio_bulk_free()
168 jz_gpio_set_function(request->gpio, JZ_GPIO_FUNC_NONE); in jz_gpio_bulk_free()
179 jz_gpio_set_function(request->gpio, JZ_GPIO_FUNC_NONE); in jz_gpio_bulk_suspend()
180 jz_gpio_write_bit(request->gpio, JZ_REG_GPIO_DIRECTION_CLEAR); in jz_gpio_bulk_suspend()
181 jz_gpio_write_bit(request->gpio, JZ_REG_GPIO_PULL_SET); in jz_gpio_bulk_suspend()
191 jz_gpio_set_function(request->gpio, request->function); in jz_gpio_bulk_resume()
195 void jz_gpio_enable_pullup(unsigned gpio) in jz_gpio_enable_pullup() argument
197 jz_gpio_write_bit(gpio, JZ_REG_GPIO_PULL_CLEAR); in jz_gpio_enable_pullup()
201 void jz_gpio_disable_pullup(unsigned gpio) in jz_gpio_disable_pullup() argument
203 jz_gpio_write_bit(gpio, JZ_REG_GPIO_PULL_SET); in jz_gpio_disable_pullup()
207 static int jz_gpio_get_value(struct gpio_chip *chip, unsigned gpio) in jz_gpio_get_value() argument
209 return !!(readl(CHIP_TO_REG(chip, JZ_REG_GPIO_PIN)) & BIT(gpio)); in jz_gpio_get_value()
212 static void jz_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) in jz_gpio_set_value() argument
216 writel(BIT(gpio), reg); in jz_gpio_set_value()
219 static int jz_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, in jz_gpio_direction_output() argument
222 writel(BIT(gpio), CHIP_TO_REG(chip, JZ_REG_GPIO_DIRECTION_SET)); in jz_gpio_direction_output()
223 jz_gpio_set_value(chip, gpio, value); in jz_gpio_direction_output()
228 static int jz_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) in jz_gpio_direction_input() argument
230 writel(BIT(gpio), CHIP_TO_REG(chip, JZ_REG_GPIO_DIRECTION_CLEAR)); in jz_gpio_direction_input()
235 static int jz_gpio_to_irq(struct gpio_chip *chip, unsigned gpio) in jz_gpio_to_irq() argument
239 return jz_gpio->irq_base + gpio; in jz_gpio_to_irq()