gpiochip_request_own_desc(9)
π NAME π
okay bestie, we're in the Kernel API Manual and this page is gpiochip_request_own_desc(9). It's giving βthe GPIO chip wants to request its own descriptorβ energy, and honestly? slay. π
gpiochip_request_own_desc β allow a GPIO chip to request its own descriptor. The chip is the main character here, periodt. π
β¨ SYNOPSIS β¨
the signature, untouched and iconic:
struct gpio_desc * gpiochip_request_own_desc (struct gpio_chip *gc ,
unsigned int hwnum , const char *label , enum gpio_lookup_flags lflags ,
enum gpiod_flags dflags );
π«Ά ARGUMENTS π«Ά
gcβ GPIO chip. The boss of the lines. πhwnumβ hardware number of the GPIO for which to request the descriptor. literally the hardware number, no cap. π’labelβ label for the GPIO. give it a name so it can live its truth. π·οΈlflagsβ lookup flags for this GPIO or0if default, this can be used to specify things like line inversion semantics with the machine flags such asGPIO_OUT_LOW.dflagsβ descriptor request flags for this GPIO or0if default, this can be used to specify consumer semantics such as open drain.
πΈ DESCRIPTION πΈ
Function allows GPIO chip drivers to request and use their own GPIO descriptors via the gpiolib API. so, like, the chip driver gets to handle its own lines through gpiolib β self-sufficient queen behavior. π
the difference from gpiod_request is the whole plot twist: this function will not increase the reference count of the GPIO chip module. that means the GPIO chip module can be unloaded as needed. and yes, the assumption is baked in: we assume that the GPIO chip driver handles freeing the GPIOs it has requested. π«Ά
π₯ RETURN π₯
return vibe: a pointer to the GPIO descriptor, or an ERR_PTR-encoded negative error code on failure. that's the tea. π«
π¦ SEE ALSO π¦
Kernel file ./drivers/gpio/gpiolib.c is the home base, and the whole related-API squad is: 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_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_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).
source/version tea: ./drivers/gpio Β· date: October 2026 Β· page: gpiochip_request_own_desc(9). footer done, periodt. π«Άβ¨
π¦ 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