gpiod_get_array_value(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… gpiod_get_array_value(9)

okay so bestie, welcome to the Kernel API Manual ✨ this one is gpiod_get_array_value β€” the "read a whole squad of GPIOs at once" girlie. she's serving group-chat energy for hardware, no cap 🫢


✨ NAME ✨

gpiod_get_array_value β€” read values from an array of GPIOs πŸ’–


🌸 SYNOPSIS 🌸

int gpiod_get_array_value (unsigned int array_size , struct gpio_desc
**desc_array , struct gpio_array *array_info , unsigned long
*value_bitmap );

πŸŽ€ ARGUMENTS πŸŽ€

  • array_size β€” how many elements live in the descriptor array / value bitmap. it's giving "headcount for the function" πŸ’…
  • desc_array β€” the array of GPIO descriptors whose values are gonna get read πŸ‘‘
  • array_info β€” the intel on whether the fast bitmap processing path is applicable or not. lowkey the vibe check for speed πŸ¦‹
  • value_bitmap β€” the bitmap where the read values get stored, periodt πŸ’–

πŸ¦‹ DESCRIPTION πŸ¦‹

so what it does: reads the logical values of the GPIOs β€” meaning it takes their ACTIVE_LOW status into account 🌈 like, it's not just raw numbers, it knows who's inverted and it handles that for you, slay.

this function can be called from contexts where we cannot sleep 😴🚫 β€” and it will complain if the GPIO chip functions potentially sleep. so don't be shady about it, it will call you out πŸ’€


πŸ’œ RETURN πŸ’œ

0 on success πŸŽ‰ or a negative errno on failure 😭


⭐ SEE ALSO ⭐

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_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_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) 🧚


that's the whole thing bestie, go read some GPIOs πŸ’…βœ¨

β€” with love from <pink>./drivers/gpio</pink> πŸ“, dated <purple>October 2026</purple> πŸŽ€ (yes that's the source dir and the date, she's iconic like that πŸ‘‘)

πŸ“¦ where this page comes from