Lines Matching defs:gpios
23 pl061_gpios_t* gpios;
25 list_for_every_entry(&hi3660->gpios, gpios, pl061_gpios_t, node) {
26 if (index >= gpios->gpio_start && index < gpios->gpio_start + gpios->gpio_count) {
27 return gpios;
36 pl061_gpios_t* gpios = find_gpio(hi3660, index);
37 if (!gpios) {
40 return pl061_proto_ops.config_in(gpios, index, flags);
45 pl061_gpios_t* gpios = find_gpio(hi3660, index);
46 if (!gpios) {
49 return pl061_proto_ops.config_out(gpios, index, initial_value);
58 pl061_gpios_t* gpios = find_gpio(hi3660, index);
59 if (!gpios) {
62 return pl061_proto_ops.read(gpios, index, out_value);
67 pl061_gpios_t* gpios = find_gpio(hi3660, index);
68 if (!gpios) {
71 return pl061_proto_ops.write(gpios, index, value);
182 pl061_gpios_t* gpios = calloc(1, sizeof(pl061_gpios_t));
183 if (!gpios) {
187 status = io_buffer_init_physical(&gpios->buffer, bti, block->base, block->length,
191 free(gpios);
195 mtx_init(&gpios->lock, mtx_plain);
196 gpios->gpio_start = block->start_pin;
197 gpios->gpio_count = block->pin_count;
198 gpios->irqs = block->irqs;
199 gpios->irq_count = block->irq_count;
200 list_add_tail(&hi3660->gpios, &gpios->node);
210 pl061_gpios_t* gpios;
212 while ((gpios = list_remove_head_type(&hi3660->gpios, pl061_gpios_t, node)) != NULL) {
213 io_buffer_release(&gpios->buffer);
214 free(gpios);