gpio_device_find_by_fwnode(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– gpio_device_find_by_fwnode(9) β€” Kernel API Manual ✨

okay so bestie, welcome to the gpio_device_find_by_fwnode(9) page πŸ’… this is a little helper in the Kernel API Manual and honestly it's giving "short but iconic" β€” it's literally a wrapper around gpio_device_find() that finds you the GPIO device by its fwnode. that's it, that's the whole vibe πŸŽ€


🌸 NAME 🌸

gpio_device_find_by_fwnode β€” wrapper around gpio_device_find() finding the GPIO device by its fwnode πŸ¦‹


✨ SYNOPSIS ✨

struct gpio_device * gpio_device_find_by_fwnode (const struct fwnode_handle *fwnode);

🫢 ARGUMENTS 🫢

  • fwnode β€” the Firmware node to lookup πŸ” like, hand it the node and it goes and finds the matching thing, no cap

πŸ‘‘ RETURN πŸ‘‘

You get back a reference to the GPIO device, or NULL if it didn't find anything 😭 and bestie, listen to me: the reference must be released with gpio_device_put. no leaving it hanging, that's not the main character energy we're going for πŸ’€


🌈 SEE ALSO 🌈

this is the part where the page goes full group-chat-adds-everyone πŸ˜… it's all in the kernel file ./drivers/gpio/gpiolib.c, and here's the entire friend list, exactly as it appears:

Kernel file ./drivers/gpio/gpiolib.c 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_get(9),
gpio_device_put(9), gpio_device_to_device(9),
gpiochip_set_hierarchical_irqchip(9), 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), 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… that's the whole extended family right there, and yes every single one of them is at the function 😌


and that's the page, bestie!! go find your fwnode and remember to gpio_device_put it after πŸ’œ

sign-off time πŸŽ€ this one lives down in ./drivers/gpio, dated October 2026, and it's part of the Kernel API Manual β€” slay πŸ’…βœ¨

πŸ“¦ where this page comes from