gpiochip_irq...ain_activate(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… gpiochip_irq...ain_activate(9) β€” bestie edition

okay so this one is from the Kernel API Manual (yes, the actual kernel docs, we're in the big leagues now 🫢) and the page is literally called gpiochip_irq...ain_activate(9) β€” the title got truncated by the manpage gods, it happens to the best of us, no cap.


✨ NAME ✨

gpiochip_irq_domain_activate β€” lock a GPIO so it can be used as an IRQ πŸ”’βš‘


πŸŽ€ SYNOPSIS πŸŽ€

int gpiochip_irq_domain_activate (struct irq_domain *domain , struct
irq_data *data , bool reserve );

🌸 ARGUMENTS 🌸

  • domain β€” the IRQ domain that this IRQ chip is using. it's giving "which neighborhood are we in" energy πŸ—ΊοΈ
  • data β€” the outermost irq_data associated with the IRQ. outermost!! like the top layer of a really cute parfait πŸ“
  • reserve β€” if this is set, it only reserves an interrupt vector instead of assigning one. reservation only, we're not committing yet πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

so this function is literally a wrapper β€” it calls gpiochip_lock_as_irq and that's the whole vibe. it's meant to be used as the activate function for the struct irq_domain_ops. πŸ”₯

and heads up bestie, important deets: the host_data for the IRQ domain must be the struct gpio_chip. that's not a suggestion, that's the requirement, periodt πŸ‘‘


🌈 RETURN 🌈

0 on success πŸŽ‰ β€” or a negative errno on failure 😭 (classic).


πŸ‘‘ SEE ALSO πŸ‘‘

the source of truth lives in the kernel file ./drivers/gpio/gpiolib.c 🧚 and honestly the whole friend group is here:

gpio_to_desc(9), gpio_device_get_desc(9), desc_to_gpio(9), gpiod_hwgpio(9), gpiod_to_chip(9), gpiod_to_gpio_device(9), gpio_device_get_base(9), gpio_device_get_label(9), gpio_device_get_chip(9), gpiochip_find_base_unlocked(9), gpiod_is_equal(9), gpiod_get_direction(9), gpiod_is_single_ended(9), gpiochip_query_valid_mask(9), gpiochip_get_data(9), gpiochip_remove(9), gpio_device_find(9), gpio_device_find_by_label(9), gpio_device_find_by_fwnode(9), gpio_device_get(9), gpio_device_put(9), gpio_device_to_device(9), gpiochip_set_hierarchical_irqchip(9), gpiochip_irq_domain_deactivate(9), gpiochip_irq_map(9), gpiochip_add_irqchip(9), gpiochip_irqchip_remove(9), gpiochip_irqchip_add_domain(9), gpiochip_generic_request(9), gpiochip_generic_free(9), gpiochip_generic_config(9), gpiochip_add_pingroup_range(9), gpiochip_add_pin_range_with_pins(9), gpiochip_remove_pin_ranges(9), gpiochip_dup_line_label(9), gpiochip_request_own_desc(9), gpiochip_free_own_desc(9), gpio_set_debounce_timeout(9), gpiod_direction_input(9), gpiod_direction_output_raw(9), gpiod_direction_output(9), gpiod_enable_hw_timestamp_ns(9), gpiod_disable_hw_timestamp_ns(9), gpiod_set_config(9), gpiod_set_debounce(9), gpiod_set_transitory(9), gpiod_is_active_low(9), gpiod_toggle_active_low(9), gpiod_get_raw_value(9), gpiod_get_value(9), gpiod_get_raw_array_value(9), gpiod_get_array_value(9), gpiod_set_raw_value(9), gpiod_set_value_nocheck(9), gpiod_set_value(9), gpiod_set_raw_array_value(9), gpiod_set_array_value(9), gpiod_cansleep(9), gpiod_set_consumer_name(9), gpiod_is_shared(9), gpiod_to_irq(9), gpiochip_lock_as_irq(9), gpiochip_unlock_as_irq(9), gpiod_get_raw_value_cansleep(9), gpiod_get_value_cansleep(9), gpiod_get_raw_array_value_cansleep(9), gpiod_get_array_value_cansleep(9), gpiod_set_raw_value_cansleep(9), gpiod_set_value_cansleep(9), gpiod_set_raw_array_value_cansleep(9), gpiod_add_lookup_tables(9), gpiod_set_array_value_cansleep(9), gpiod_add_lookup_table(9), gpiod_remove_lookup_table(9), fwnode_gpiod_get_index(9), gpiod_count(9), gpiod_get(9), gpiod_get_optional(9), gpiod_configure_flags(9), gpiod_get_index(9), gpiod_get_index_optional(9), gpiod_hog(9), gpiochip_free_hogs(9), gpiod_get_array(9), gpiod_get_array_optional(9), gpiod_put(9), gpiod_put_array(9)

like, the whole squad showed up πŸ’€ obsessed.


and that's the page!! mwah πŸ’‹ this beauty lives in ./drivers/gpio, stamped October 2026, and it's gpiochip_irq...ain_activate(9) forever and always β€” go lock some GPIOs as IRQs bestie, you got this πŸŒŸπŸŽ€

πŸ“¦ where this page comes from