gpiochip_irq...ain_activate(9)
π 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 outermostirq_dataassociated 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms