Lines Matching refs:offset
71 int (*o2p)(int offset); /* offset_to_pin */
82 u32 offset = PIN_OFFSET(pin); in is_plgpio_set() local
86 return !!(val & (1 << offset)); in is_plgpio_set()
91 u32 offset = PIN_OFFSET(pin); in plgpio_reg_set() local
95 writel_relaxed(val | (1 << offset), reg_off); in plgpio_reg_set()
100 u32 offset = PIN_OFFSET(pin); in plgpio_reg_reset() local
104 writel_relaxed(val & ~(1 << offset), reg_off); in plgpio_reg_reset()
108 static int plgpio_direction_input(struct gpio_chip *chip, unsigned offset) in plgpio_direction_input() argument
115 offset = plgpio->p2o(offset); in plgpio_direction_input()
116 if (offset == -1) in plgpio_direction_input()
121 plgpio_reg_set(plgpio->base, offset, plgpio->regs.dir); in plgpio_direction_input()
127 static int plgpio_direction_output(struct gpio_chip *chip, unsigned offset, in plgpio_direction_output() argument
132 unsigned dir_offset = offset, wdata_offset = offset, tmp; in plgpio_direction_output()
136 tmp = plgpio->p2o(offset); in plgpio_direction_output()
160 static int plgpio_get_value(struct gpio_chip *chip, unsigned offset) in plgpio_get_value() argument
164 if (offset >= chip->ngpio) in plgpio_get_value()
169 offset = plgpio->p2o(offset); in plgpio_get_value()
170 if (offset == -1) in plgpio_get_value()
174 return is_plgpio_set(plgpio->base, offset, plgpio->regs.rdata); in plgpio_get_value()
177 static void plgpio_set_value(struct gpio_chip *chip, unsigned offset, int value) in plgpio_set_value() argument
181 if (offset >= chip->ngpio) in plgpio_set_value()
186 offset = plgpio->p2o(offset); in plgpio_set_value()
187 if (offset == -1) in plgpio_set_value()
192 plgpio_reg_set(plgpio->base, offset, plgpio->regs.wdata); in plgpio_set_value()
194 plgpio_reg_reset(plgpio->base, offset, plgpio->regs.wdata); in plgpio_set_value()
197 static int plgpio_request(struct gpio_chip *chip, unsigned offset) in plgpio_request() argument
200 int gpio = chip->base + offset; in plgpio_request()
204 if (offset >= chip->ngpio) in plgpio_request()
223 ret = plgpio_direction_input(chip, offset); in plgpio_request()
229 offset = plgpio->p2o(offset); in plgpio_request()
230 if (offset == -1) { in plgpio_request()
237 plgpio_reg_set(plgpio->base, offset, plgpio->regs.enb); in plgpio_request()
249 static void plgpio_free(struct gpio_chip *chip, unsigned offset) in plgpio_free() argument
252 int gpio = chip->base + offset; in plgpio_free()
255 if (offset >= chip->ngpio) in plgpio_free()
263 offset = plgpio->p2o(offset); in plgpio_free()
264 if (offset == -1) in plgpio_free()
269 plgpio_reg_reset(plgpio->base, offset, plgpio->regs.enb); in plgpio_free()
284 int offset = d->hwirq; in plgpio_irq_disable() local
289 offset = plgpio->p2o(offset); in plgpio_irq_disable()
290 if (offset == -1) in plgpio_irq_disable()
295 plgpio_reg_set(plgpio->base, offset, plgpio->regs.ie); in plgpio_irq_disable()
303 int offset = d->hwirq; in plgpio_irq_enable() local
308 offset = plgpio->p2o(offset); in plgpio_irq_enable()
309 if (offset == -1) in plgpio_irq_enable()
314 plgpio_reg_reset(plgpio->base, offset, plgpio->regs.ie); in plgpio_irq_enable()
322 int offset = d->hwirq; in plgpio_irq_set_type() local
326 if (offset >= plgpio->chip.ngpio) in plgpio_irq_set_type()
340 reg_off = REG_OFFSET(plgpio->base, plgpio->regs.eit, offset); in plgpio_irq_set_type()
343 offset = PIN_OFFSET(offset); in plgpio_irq_set_type()
345 writel_relaxed(val | (1 << offset), reg_off); in plgpio_irq_set_type()
347 writel_relaxed(val & ~(1 << offset), reg_off); in plgpio_irq_set_type()
364 int regs_count, count, pin, offset, i = 0; in plgpio_irq_handler() local
392 for_each_set_bit(offset, &pending, MAX_GPIO_PER_REG) { in plgpio_irq_handler()
395 pin = plgpio->o2p(offset); in plgpio_irq_handler()
399 pin = offset; in plgpio_irq_handler()
419 int offset = pin; in spear310_p2o() local
422 offset += 4; in spear310_p2o()
424 offset = -1; in spear310_p2o()
426 offset -= 2; in spear310_p2o()
428 offset = 101 - pin; in spear310_p2o()
430 offset = -1; in spear310_p2o()
432 return offset; in spear310_p2o()
435 static int spear310_o2p(int offset) in spear310_o2p() argument
437 if (offset <= 3) in spear310_o2p()
438 return 101 - offset; in spear310_o2p()
439 else if (offset <= 31) in spear310_o2p()
440 return offset - 4; in spear310_o2p()
442 return offset + 2; in spear310_o2p()