gpiod_to_gpio_device(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… gpiod_to_gpio_device(9) β€” a Kernel API Manual moment

okay so bestie, we're in the Kernel API Manual today and this one's a little one-page baddie. no cap, it's short, it's sweet, and it's literally just "hey, which GPIO device owns this descriptor?" energy. let's get into it πŸŽ€


✨ NAME ✨

gpiod_to_gpio_device β€” Return the GPIO device to which this descriptor belongs. that's it, that's the whole vibe πŸ¦‹


🌸 SYNOPSIS 🌸

struct gpio_device * gpiod_to_gpio_device (struct gpio_desc *desc );

🧚 ARGUMENTS 🧚

  • desc β€” the Descriptor for which to return the GPIO device. like, you hand it a desc and it tells you which device it's living in 🫢

πŸ‘‘ DESCRIPTION πŸ‘‘

so here's the thing, and I need you to hear me on this one:

This DOES NOT increase the reference count of the GPIO device.

read that again. it does not bump the refcount. and before you panic β€” that's on purpose, bestie. it's expected that the descriptor is requested and that the users already holds a reference to the device. so the ref is already spoken for, and this function is not out here handing out extra ones behind your back. main character behavior honestly πŸ’…


πŸ’– RETURN πŸ’–

the Address of the GPIO device owning this descriptor. that's the whole answer. slay ✨


🌈 SEE ALSO 🌈

Kernel file ./drivers/gpio/gpiolib.c β€” and okay, the friend group is huge, I'm listing the whole gc because everyone deserves their mention πŸ’œ

gpio_to_desc(9), gpio_device_get_desc(9), desc_to_gpio(9), gpiod_hwgpio(9), gpiod_to_chip(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_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)

iykyk, that's the whole roster πŸ”₯


okay that's the page!! it lives in ./drivers/gpio, it's dated October 2026, and it goes by gpiod_to_gpio_device(9). go forth and find your device bestie, you got this πŸ’…βœ¨πŸ’–

πŸ“¦ where this page comes from