gpiod_get_ar...lue_cansleep(9)
π NAME β¨
Welcome to the gpiod_get_ar...lue_cansleep(9) page in the Kernel API Manual, bestie π«Ά. This one is all about gpiod_get_array_value_cansleep - read values from an array of GPIOs. It's giving "group chat, but for GPIO values" energy, no cap.
β¨ SYNOPSIS β¨
int gpiod_get_array_value_cansleep (unsigned int array_size , struct
gpio_desc **desc_array , struct gpio_array *array_info , unsigned long
*value_bitmap );
π ARGUMENTS π
array_sizeβ number of elements in the descriptor array / value bitmap. Basically the headcount for this little GPIO squad π .desc_arrayβ array of GPIO descriptors whose values will be read. The main characters, fr fr.array_infoβ information on applicability of fast bitmap processing path. Lowkey important for whether the fast path is applicable π.value_bitmapβ bitmap to store the read values. This is where the read values get tucked in, cute and organized π.
π¦ DESCRIPTION π¦
Okay so what it actually does: it reads the logical values of the GPIOs β and yes, that means it takes their ACTIVE_LOW status into account π
. So you're getting the logical vibe, not just raw pin state. Iconic.
The big caveat: this function is to be called from contexts that can sleep π΄. Like, that's literally the _cansleep of it all. Do not bring this to an atomic-context party where nobody is allowed to snooze, bestie. That would be a whole mess.
Sleepy context only, okay? This is not the function for "can't sleep, clown will eat me" situations π.
π₯ RETURN π₯
0 on success, or negative errno on failure β no cap, that's the whole mood. 0 = slay, negative errno = the vibe check did not pass π.
π SEE ALSO π
Kernel file: ./drivers/gpio/gpiolib.c β the main character file. And the extended friend group is literally all of these:
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_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_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)
Catch u later, bestie β this was gpiod_get_ar...lue_cansleep(9) from the Kernel API Manual, straight outta ./drivers/gpio, dated October 2026 πβ¨
π¦ 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