Home | History | Annotate | Download | only in imx

Lines Matching refs:gpio

36 #include "gpio.h"
58 #include <sys/gpio.h>
59 #include <dev/gpio/gpiovar.h>
91 #define GPIO_READ(gpio, reg) \
92 bus_space_read_4((gpio)->gpio_memt, (gpio)->gpio_memh, (reg))
93 #define GPIO_WRITE(gpio, reg, val) \
94 bus_space_write_4((gpio)->gpio_memt, (gpio)->gpio_memh, (reg), (val))
99 struct gpio_softc * const gpio = PIC_TO_SOFTC(pic);
102 gpio->gpio_enable_mask |= irq_mask;
107 if (irq_mask & gpio->gpio_level_mask)
108 GPIO_WRITE(gpio, GPIO_ISR, irq_mask);
109 GPIO_WRITE(gpio, GPIO_IMR, gpio->gpio_enable_mask);
115 struct gpio_softc * const gpio = PIC_TO_SOFTC(pic);
118 gpio->gpio_enable_mask &= ~irq_mask;
119 GPIO_WRITE(gpio, GPIO_IMR, gpio->gpio_enable_mask);
125 struct gpio_softc * const gpio = PIC_TO_SOFTC(pic);
129 v = GPIO_READ(gpio, GPIO_ISR);
130 pending = (v & gpio->gpio_enable_mask);
137 gpio->gpio_enable_mask &= ~pending;
138 GPIO_WRITE(gpio, GPIO_IMR, gpio->gpio_enable_mask);
144 if (v & gpio->gpio_edge_mask)
145 GPIO_WRITE(gpio, GPIO_ISR, v & gpio->gpio_edge_mask);
155 pic_mark_pending(&gpio->gpio_pic, irq);
170 struct gpio_softc * const gpio = PIC_TO_SOFTC(pic);
180 gpio->gpio_enable_mask &= ~irq_mask;
181 GPIO_WRITE(gpio, GPIO_IMR, gpio->gpio_enable_mask);
182 GPIO_WRITE(gpio, GPIO_ISR, irq_mask);
185 * Convert the type to a gpio type and figure out which bits in what
195 v = GPIO_READ(gpio, icr_reg);
198 GPIO_WRITE(gpio, icr_reg, v);
203 v = GPIO_READ(gpio, GPIO_DIR);
205 GPIO_WRITE(gpio, GPIO_DIR, v);
211 gpio->gpio_edge_mask |= irq_mask;
212 gpio->gpio_level_mask &= ~irq_mask;
214 gpio->gpio_edge_mask &= ~irq_mask;
215 gpio->gpio_level_mask |= irq_mask;
232 struct gpio_softc * const gpio = arg;
234 return (GPIO_READ(gpio, GPIO_DR) >> pin) & 1;
240 struct gpio_softc * const gpio = arg;
244 old = GPIO_READ(gpio, GPIO_DR);
251 GPIO_WRITE(gpio, GPIO_DR, new);
257 struct gpio_softc * const gpio = arg;
261 old = GPIO_READ(gpio, GPIO_DIR);
269 GPIO_WRITE(gpio, GPIO_DIR, new);
275 struct gpio_softc * const gpio = device_private(self);
276 struct gpio_chipset_tag * const gp = &gpio->gpio_chipset;
282 gp->gp_cookie = gpio;
288 gba.gba_pins = gpio->gpio_pins;
289 gba.gba_npins = __arraycount(gpio->gpio_pins);
291 dir = GPIO_READ(gpio, GPIO_DIR);
292 value = GPIO_READ(gpio, GPIO_DR);
293 for (pin = 0, mask = 1, pins = gpio->gpio_pins;
296 if ((gpio->gpio_edge_mask|gpio->gpio_level_mask) & mask)
337 struct gpio_softc * const gpio = device_private(self);
343 gpio->gpio_memt = ahba->ahba_memt;
345 0, &gpio->gpio_memh);
354 gpio->gpio_pic.pic_ops = &gpio_pic_ops;
355 strlcpy(gpio->gpio_pic.pic_name, device_xname(self),
356 sizeof(gpio->gpio_pic.pic_name));
357 gpio->gpio_pic.pic_maxsources = 32;
358 pic_add(&gpio->gpio_pic, ahba->ahba_irqbase);