Lines Matching refs:drv_data
120 struct gpio_emul_data *drv_data = in get_pins_with_flags() local
126 if ((drv_data->flags[i] & mask) == flags) { in get_pins_with_flags()
192 struct gpio_emul_data *drv_data = in gpio_emul_gen_interrupt_bits() local
206 switch (drv_data->flags[i] & GPIO_EMUL_INT_BITMASK) { in gpio_emul_gen_interrupt_bits()
210 drv_data->interrupts |= BIT(i); in gpio_emul_gen_interrupt_bits()
211 *interrupts |= (BIT(i) & drv_data->enabled_interrupts); in gpio_emul_gen_interrupt_bits()
218 drv_data->interrupts |= BIT(i); in gpio_emul_gen_interrupt_bits()
219 *interrupts |= (BIT(i) & drv_data->enabled_interrupts); in gpio_emul_gen_interrupt_bits()
227 drv_data->interrupts |= BIT(i); in gpio_emul_gen_interrupt_bits()
228 *interrupts |= (BIT(i) & drv_data->enabled_interrupts); in gpio_emul_gen_interrupt_bits()
235 drv_data->interrupts |= BIT(i); in gpio_emul_gen_interrupt_bits()
236 *interrupts |= (BIT(i) & drv_data->enabled_interrupts); in gpio_emul_gen_interrupt_bits()
243 drv_data->interrupts |= BIT(i); in gpio_emul_gen_interrupt_bits()
244 *interrupts |= (BIT(i) & drv_data->enabled_interrupts); in gpio_emul_gen_interrupt_bits()
253 drv_data->flags[i] & GPIO_EMUL_INT_BITMASK); in gpio_emul_gen_interrupt_bits()
276 struct gpio_emul_data *drv_data = in gpio_emul_pend_interrupt() local
280 key = k_spin_lock(&drv_data->lock); in gpio_emul_pend_interrupt()
284 k_spin_unlock(&drv_data->lock, key); in gpio_emul_pend_interrupt()
285 gpio_fire_callbacks(&drv_data->callbacks, port, interrupts); in gpio_emul_pend_interrupt()
286 key = k_spin_lock(&drv_data->lock); in gpio_emul_pend_interrupt()
288 drv_data->interrupts &= ~interrupts; in gpio_emul_pend_interrupt()
293 k_spin_unlock(&drv_data->lock, key); in gpio_emul_pend_interrupt()
302 struct gpio_emul_data *drv_data = in gpio_emul_input_set_masked_int() local
324 prev_values = drv_data->input_vals; in gpio_emul_input_set_masked_int()
325 drv_data->input_vals &= ~mask; in gpio_emul_input_set_masked_int()
326 drv_data->input_vals |= values & mask; in gpio_emul_input_set_masked_int()
335 struct gpio_emul_data *drv_data = (struct gpio_emul_data *)port->data; in gpio_emul_input_set_masked() local
341 key = k_spin_lock(&drv_data->lock); in gpio_emul_input_set_masked()
342 prev_input_values = drv_data->input_vals; in gpio_emul_input_set_masked()
344 input_values = drv_data->input_vals; in gpio_emul_input_set_masked()
345 k_spin_unlock(&drv_data->lock, key); in gpio_emul_input_set_masked()
358 struct gpio_emul_data *drv_data = in gpio_emul_output_get_masked() local
372 key = k_spin_lock(&drv_data->lock); in gpio_emul_output_get_masked()
373 *values = drv_data->output_vals & get_output_pins(port); in gpio_emul_output_get_masked()
374 k_spin_unlock(&drv_data->lock, key); in gpio_emul_output_get_masked()
382 struct gpio_emul_data *drv_data = in gpio_emul_flags_get() local
396 key = k_spin_lock(&drv_data->lock); in gpio_emul_flags_get()
397 *flags = drv_data->flags[pin]; in gpio_emul_flags_get()
398 k_spin_unlock(&drv_data->lock, key); in gpio_emul_flags_get()
412 struct gpio_emul_data *drv_data = in gpio_emul_pin_configure() local
431 key = k_spin_lock(&drv_data->lock); in gpio_emul_pin_configure()
432 drv_data->flags[pin] = flags; in gpio_emul_pin_configure()
435 drv_data->output_vals &= ~BIT(pin); in gpio_emul_pin_configure()
439 port, BIT(pin), drv_data->output_vals); in gpio_emul_pin_configure()
443 drv_data->output_vals |= BIT(pin); in gpio_emul_pin_configure()
447 port, BIT(pin), drv_data->output_vals); in gpio_emul_pin_configure()
462 k_spin_unlock(&drv_data->lock, key); in gpio_emul_pin_configure()
463 gpio_fire_callbacks(&drv_data->callbacks, port, BIT(pin)); in gpio_emul_pin_configure()
465 drv_data->interrupts &= ~((gpio_port_pins_t)BIT(pin)); in gpio_emul_pin_configure()
474 struct gpio_emul_data *drv_data = in gpio_emul_pin_get_config() local
478 key = k_spin_lock(&drv_data->lock); in gpio_emul_pin_get_config()
480 *out_flags = drv_data->flags[pin] & in gpio_emul_pin_get_config()
483 if (drv_data->flags[pin] & GPIO_OUTPUT) { in gpio_emul_pin_get_config()
484 if (drv_data->output_vals & BIT(pin)) { in gpio_emul_pin_get_config()
491 k_spin_unlock(&drv_data->lock, key); in gpio_emul_pin_get_config()
499 struct gpio_emul_data *drv_data = in gpio_emul_port_get_raw() local
507 key = k_spin_lock(&drv_data->lock); in gpio_emul_port_get_raw()
508 *values = drv_data->input_vals & get_input_pins(port); in gpio_emul_port_get_raw()
509 k_spin_unlock(&drv_data->lock, key); in gpio_emul_port_get_raw()
523 struct gpio_emul_data *drv_data = in gpio_emul_port_set_masked_raw() local
528 key = k_spin_lock(&drv_data->lock); in gpio_emul_port_set_masked_raw()
531 prev_values = drv_data->output_vals; in gpio_emul_port_set_masked_raw()
534 drv_data->output_vals &= ~mask; in gpio_emul_port_set_masked_raw()
535 drv_data->output_vals |= values; in gpio_emul_port_set_masked_raw()
537 prev_input_values = drv_data->input_vals; in gpio_emul_port_set_masked_raw()
540 drv_data->output_vals); in gpio_emul_port_set_masked_raw()
541 input_values = drv_data->input_vals; in gpio_emul_port_set_masked_raw()
542 k_spin_unlock(&drv_data->lock, key); in gpio_emul_port_set_masked_raw()
548 gpio_fire_callbacks(&drv_data->callbacks, port, mask & ~get_input_pins(port)); in gpio_emul_port_set_masked_raw()
557 struct gpio_emul_data *drv_data = in gpio_emul_port_set_bits_raw() local
565 key = k_spin_lock(&drv_data->lock); in gpio_emul_port_set_bits_raw()
567 drv_data->output_vals |= pins; in gpio_emul_port_set_bits_raw()
568 prev_input_values = drv_data->input_vals; in gpio_emul_port_set_bits_raw()
571 drv_data->output_vals); in gpio_emul_port_set_bits_raw()
572 input_values = drv_data->input_vals; in gpio_emul_port_set_bits_raw()
573 k_spin_unlock(&drv_data->lock, key); in gpio_emul_port_set_bits_raw()
577 gpio_fire_callbacks(&drv_data->callbacks, port, pins & ~get_input_pins(port)); in gpio_emul_port_set_bits_raw()
585 struct gpio_emul_data *drv_data = in gpio_emul_port_clear_bits_raw() local
593 key = k_spin_lock(&drv_data->lock); in gpio_emul_port_clear_bits_raw()
595 drv_data->output_vals &= ~pins; in gpio_emul_port_clear_bits_raw()
596 prev_input_values = drv_data->input_vals; in gpio_emul_port_clear_bits_raw()
598 rv = gpio_emul_input_set_masked_int(port, input_mask, drv_data->output_vals); in gpio_emul_port_clear_bits_raw()
599 input_values = drv_data->input_vals; in gpio_emul_port_clear_bits_raw()
600 k_spin_unlock(&drv_data->lock, key); in gpio_emul_port_clear_bits_raw()
604 gpio_fire_callbacks(&drv_data->callbacks, port, pins & ~get_input_pins(port)); in gpio_emul_port_clear_bits_raw()
611 struct gpio_emul_data *drv_data = in gpio_emul_port_toggle_bits() local
616 key = k_spin_lock(&drv_data->lock); in gpio_emul_port_toggle_bits()
617 drv_data->output_vals ^= (pins & get_output_pins(port)); in gpio_emul_port_toggle_bits()
620 drv_data->output_vals); in gpio_emul_port_toggle_bits()
621 k_spin_unlock(&drv_data->lock, key); in gpio_emul_port_toggle_bits()
624 gpio_fire_callbacks(&drv_data->callbacks, port, pins); in gpio_emul_port_toggle_bits()
666 struct gpio_emul_data *drv_data = local
703 key = k_spin_lock(&drv_data->lock);
711 drv_data->interrupts &= ~((gpio_port_pins_t)BIT(pin));
714 drv_data->interrupts &= ~((gpio_port_pins_t)BIT(pin));
719 drv_data->flags[pin] &= ~GPIO_EMUL_INT_BITMASK;
720 drv_data->flags[pin] |= GPIO_INT_DISABLE;
725 drv_data->enabled_interrupts &= ~((gpio_port_pins_t)BIT(pin));
729 drv_data->flags[pin] &= ~GPIO_EMUL_INT_BITMASK;
730 drv_data->flags[pin] |= (mode | trig);
735 drv_data->enabled_interrupts |= BIT(pin);
745 k_spin_unlock(&drv_data->lock, key);
748 if (BIT(pin) & (drv_data->interrupts & drv_data->enabled_interrupts)) {
749 gpio_fire_callbacks(&drv_data->callbacks, port, BIT(pin));
750 drv_data->interrupts &= ~((gpio_port_pins_t)BIT(pin));
759 struct gpio_emul_data *drv_data = local
762 return gpio_manage_callback(&drv_data->callbacks, cb, set);
767 struct gpio_emul_data *drv_data = local
770 return drv_data->interrupts;
780 struct gpio_emul_data *const drv_data = (struct gpio_emul_data *)port->data; local
788 ip |= !!(drv_data->flags[i] & GPIO_INPUT) * BIT(i);
797 op |= !!(drv_data->flags[i] & GPIO_OUTPUT) * BIT(i);
827 struct gpio_emul_data *drv_data = local
830 sys_slist_init(&drv_data->callbacks);