gpiod_get_raw_array_value(9)
β¨ gpiod_get_raw_array_value β the manual page, but make it make sense β¨
okay so bestie, this one's from the Kernel API Manual and honestly? it's lowkey iconic. it's a kernel function that reads the raw values off a whole array of GPIOs at once. yes, an array. we love a multitasker π
π NAME π
gpiod_get_raw_array_value β read raw values from an array of GPIOs. that's the whole vibe: plural GPIOs, plural values, one function call. slay.
β¨ SYNOPSIS β¨
int gpiod_get_raw_array_value (unsigned int array_size , struct
gpio_desc **desc_array , struct gpio_array *array_info , unsigned long
*value_bitmap );
that's the signature, character for character, don't @ me. π«Ά
π¦ ARGUMENTS π¦
array_sizeβ how many elements live in the descriptor array / value bitmap. basically the headcount, fr fr.desc_arrayβ the array of GPIO descriptors whose values are gonna get read. this is the squad. πarray_infoβ info about whether the fast bitmap processing path is applicable. it's giving "are we doing this the quick way or not".value_bitmapβ the bitmap where the read values get stored. this is where the tea gets written down. π
πΈ DESCRIPTION πΈ
so what does it actually do. it reads the raw values of the GPIOs β and by raw we mean the values of the physical lines, without regard for their ACTIVE_LOW status. like, we're not translating anything, we're not flipping bits for polarity, we're just reporting what's literally on the wire. no cap. β‘
and here's the important bit: this function can be called from contexts where we cannot sleep, and it will complain if the GPIO chip functions potentially sleep. so if you're in an atomic context and the chip tries to nap? it's gonna call you out. π
π₯ RETURN π₯
0on success π- negative
errnoon failure π
that's it. that's the whole return contract.
π SEE ALSO π
okay this list is long β like, main character energy long β but every single one is here, bestie, because we don't skip entries in this house. the kernel file is ./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_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)
and that's the page, bestie π go read your arrays, respect the ACTIVE_LOW caveat, and don't sleep in an atomic context.
this one came from the source/version tag ./drivers/gpio, dated October 2026 β that's the sign-off, mwah π
π¦ 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