Lines Matching refs:gpio
23 #define CON_SFR(gpio, cfg) ((cfg) << ((gpio) << 2)) argument
24 #define CON_SFR_UNSHIFT(val, gpio) ((val) >> ((gpio) << 2)) argument
26 #define DAT_MASK(gpio) (0x1 << (gpio)) argument
27 #define DAT_SET(gpio) (0x1 << (gpio)) argument
29 #define PULL_MASK(gpio) (0x3 << ((gpio) << 1)) argument
30 #define PULL_MODE(gpio, pull) ((pull) << ((gpio) << 1)) argument
32 #define DRV_MASK(gpio) (0x3 << ((gpio) << 1)) argument
33 #define DRV_SET(gpio, mode) ((mode) << ((gpio) << 1)) argument
34 #define RATE_MASK(gpio) (0x1 << (gpio + 16)) argument
35 #define RATE_SET(gpio) (0x1 << (gpio + 16)) argument
48 static struct s5p_gpio_bank *s5p_gpio_get_bank(unsigned int gpio) in s5p_gpio_get_bank() argument
60 if (gpio < data->max_gpio) { in s5p_gpio_get_bank()
63 bank += (gpio - upto) / GPIO_PER_BANK; in s5p_gpio_get_bank()
64 debug("gpio=%d, bank=%p\n", gpio, bank); in s5p_gpio_get_bank()
75 static void s5p_gpio_cfg_pin(struct s5p_gpio_bank *bank, int gpio, int cfg) in s5p_gpio_cfg_pin() argument
80 value &= ~CON_MASK(gpio); in s5p_gpio_cfg_pin()
81 value |= CON_SFR(gpio, cfg); in s5p_gpio_cfg_pin()
85 static void s5p_gpio_set_value(struct s5p_gpio_bank *bank, int gpio, int en) in s5p_gpio_set_value() argument
90 value &= ~DAT_MASK(gpio); in s5p_gpio_set_value()
92 value |= DAT_SET(gpio); in s5p_gpio_set_value()
98 int gpio_set_value(unsigned gpio, int value) in gpio_set_value() argument
100 s5p_gpio_set_value(s5p_gpio_get_bank(gpio), in gpio_set_value()
101 s5p_gpio_get_pin(gpio), value); in gpio_set_value()
106 static int s5p_gpio_get_cfg_pin(struct s5p_gpio_bank *bank, int gpio) in s5p_gpio_get_cfg_pin() argument
111 value &= CON_MASK(gpio); in s5p_gpio_get_cfg_pin()
112 return CON_SFR_UNSHIFT(value, gpio); in s5p_gpio_get_cfg_pin()
115 static unsigned int s5p_gpio_get_value(struct s5p_gpio_bank *bank, int gpio) in s5p_gpio_get_value() argument
120 return !!(value & DAT_MASK(gpio)); in s5p_gpio_get_value()
124 static void s5p_gpio_set_pull(struct s5p_gpio_bank *bank, int gpio, int mode) in s5p_gpio_set_pull() argument
129 value &= ~PULL_MASK(gpio); in s5p_gpio_set_pull()
134 value |= PULL_MODE(gpio, mode); in s5p_gpio_set_pull()
143 static void s5p_gpio_set_drv(struct s5p_gpio_bank *bank, int gpio, int mode) in s5p_gpio_set_drv() argument
148 value &= ~DRV_MASK(gpio); in s5p_gpio_set_drv()
155 value |= DRV_SET(gpio, mode); in s5p_gpio_set_drv()
164 static void s5p_gpio_set_rate(struct s5p_gpio_bank *bank, int gpio, int mode) in s5p_gpio_set_rate() argument
169 value &= ~RATE_MASK(gpio); in s5p_gpio_set_rate()
174 value |= RATE_SET(gpio); in s5p_gpio_set_rate()
183 int s5p_gpio_get_pin(unsigned gpio) in s5p_gpio_get_pin() argument
185 return S5P_GPIO_GET_PIN(gpio); in s5p_gpio_get_pin()
240 void gpio_set_pull(int gpio, int mode) in gpio_set_pull() argument
242 s5p_gpio_set_pull(s5p_gpio_get_bank(gpio), in gpio_set_pull()
243 s5p_gpio_get_pin(gpio), mode); in gpio_set_pull()
246 void gpio_set_drv(int gpio, int mode) in gpio_set_drv() argument
248 s5p_gpio_set_drv(s5p_gpio_get_bank(gpio), in gpio_set_drv()
249 s5p_gpio_get_pin(gpio), mode); in gpio_set_drv()
252 void gpio_cfg_pin(int gpio, int cfg) in gpio_cfg_pin() argument
254 s5p_gpio_cfg_pin(s5p_gpio_get_bank(gpio), in gpio_cfg_pin()
255 s5p_gpio_get_pin(gpio), cfg); in gpio_cfg_pin()
258 void gpio_set_rate(int gpio, int mode) in gpio_set_rate() argument
260 s5p_gpio_set_rate(s5p_gpio_get_bank(gpio), in gpio_set_rate()
261 s5p_gpio_get_pin(gpio), mode); in gpio_set_rate()