Lines Matching full:egpio

17 #include <linux/platform_data/gpio-htc-egpio.h>
48 /* egpio info */
70 pr_debug("EGPIO ack - write %x to base+%x\n", in ack_irqs()
79 * on the egpio chip itself. So, we simply ignore interrupts that
85 pr_debug("EGPIO mask %d %04x\n", data->irq, ei->irqs_enabled); in egpio_mask()
92 pr_debug("EGPIO unmask %d %04x\n", data->irq, ei->irqs_enabled); in egpio_unmask()
96 .name = "htc-egpio",
137 struct egpio_chip *egpio; in egpio_get() local
145 egpio = gpiochip_get_data(chip); in egpio_get()
146 ei = dev_get_drvdata(egpio->dev); in egpio_get()
148 reg = egpio->reg_start + egpio_pos(ei, offset); in egpio_get()
150 if (test_bit(offset, &egpio->is_out)) { in egpio_get()
151 return !!(egpio->cached_values & (1 << offset)); in egpio_get()
162 struct egpio_chip *egpio; in egpio_direction_input() local
164 egpio = gpiochip_get_data(chip); in egpio_direction_input()
165 return test_bit(offset, &egpio->is_out) ? -EINVAL : 0; in egpio_direction_input()
176 struct egpio_chip *egpio; in egpio_set() local
185 egpio = gpiochip_get_data(chip); in egpio_set()
186 ei = dev_get_drvdata(egpio->dev); in egpio_set()
188 reg = egpio->reg_start + pos; in egpio_set()
191 pr_debug("egpio %s: reg %d = 0x%04x\n", value ? "set" : "clear", in egpio_set()
192 reg, (egpio->cached_values >> shift) & ei->reg_mask); in egpio_set()
196 egpio->cached_values |= (1 << offset); in egpio_set()
198 egpio->cached_values &= ~(1 << offset); in egpio_set()
199 egpio_writew((egpio->cached_values >> shift) & ei->reg_mask, ei, reg); in egpio_set()
206 struct egpio_chip *egpio; in egpio_direction_output() local
208 egpio = gpiochip_get_data(chip); in egpio_direction_output()
209 if (test_bit(offset, &egpio->is_out)) { in egpio_direction_output()
219 struct egpio_chip *egpio; in egpio_get_direction() local
221 egpio = gpiochip_get_data(chip); in egpio_get_direction()
223 if (test_bit(offset, &egpio->is_out)) in egpio_get_direction()
232 struct egpio_chip *egpio; in egpio_write_cache() local
236 egpio = &(ei->chip[i]); in egpio_write_cache()
237 if (!egpio->is_out) in egpio_write_cache()
240 for (shift = 0; shift < egpio->chip.ngpio; in egpio_write_cache()
243 int reg = egpio->reg_start + egpio_pos(ei, shift); in egpio_write_cache()
245 if (!((egpio->is_out >> shift) & ei->reg_mask)) in egpio_write_cache()
248 pr_debug("EGPIO: setting %x to %x, was %x\n", reg, in egpio_write_cache()
249 (egpio->cached_values >> shift) & ei->reg_mask, in egpio_write_cache()
252 egpio_writew((egpio->cached_values >> shift) in egpio_write_cache()
284 /* Map egpio chip into virtual address space. */ in egpio_probe()
319 "htc-egpio-%d", in egpio_probe()
397 .name = "htc-egpio",