gpiochip_se...ical_irqchip(9)
π¦ gpiochip_set_hierarchical_irqchip β straight from the Kernel API Manual, bestie π
okay so picture this: you're deep in ./drivers/gpio land and you need a hierarchical irqchip wired up to a gpiochip. that's literally the whole gig. no cap, this one's a one-trick pony and it's iconic for it. β¨
β¨ NAME β¨
gpiochip_set_hierarchical_irqchip β connects a hierarchical irqchip to a gpiochip π«Ά
like, it's the matchmaker. gpiochip meets irqchip, hierarchy happens, slay.
πΈ SYNOPSIS πΈ
void gpiochip_set_hierarchical_irqchip (struct gpio_chip *gc , struct irq_chip *irqchip );
returns void btw, so don't go looking for a return value, there isn't one, periodt. π
π ARGUMENTS π
gcβ the gpiochip you're setting the irqchip hierarchical handler to. this is the main character of the operation, ngl. πirqchipβ the irqchip that handles this level of the hierarchy. the interrupt will then percolate up to the parent βοΈ β yes, "percolate", the kernel said it, not me, and honestly? it's giving coffee machine energy and i'm obsessed. π
π₯ SEE ALSO π₯
bestie. sit down. this list is long and i refuse to gatekeep a single name from it, so here we go, kernel file ./drivers/gpio/gpiolib.c and everything in it that's vibing nearby:
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)
still with me? good. more icons coming through π
gpiochip_irq_domain_activate(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)
the irq-adjacent girlies π§:
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)
getters and setters, the whole clique πΈ:
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)
the sleepier side of the group chat π΄ (they literally have _cansleep in the name, respect it):
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)
and the finale, the lookup-and-hog crowd, no crumbs left π:
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)
lowkey reminder bestie: this page is only about hooking a hierarchical irqchip onto a gpiochip. everything above lives in ./drivers/gpio/gpiolib.c β go read those for the actual lore, i'm just the messenger π
and that's the whole page, fr fr β living in ./drivers/gpio, dated October 2026, brought to you by the Kernel API Manual. mwah, go touch some GPIOs πππ¦
π¦ 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