gpiod_get_value_cansleep(9)
π gpiod_get_value_cansleep(9) β the Kernel API Manual, bestie
okay so picture this: you're deep in the kernel, in a context that's allowed to sleep, and you just need to know what a GPIO pin is doing. that's this function. she's from the Kernel API Manual, section 9, and she is literally here to read a pin for you. π
β¨ NAME β¨
gpiod_get_value_cansleep β return a gpio's value π«Ά
πΈ SYNOPSIS πΈ
int gpiod_get_value_cansleep (const struct gpio_desc *desc );
that's it. one argument. no cap. π
π¦ ARGUMENTS π¦
descβ the gpio whose value will be returned. like, the actual pin descriptor you want the tea from. π
β RETURN β
she gives you back the GPIO's logical value β meaning yes, the ACTIVE_LOW status is already taken into account for you, you don't gotta flip anything yourself, she did that π«Ά β or a negative errno on failure. π
so if the number comes back negative, that's not a value, that's a problem. don't manifest a negative pin reading, it's giving error.
π DESCRIPTION π
This function is to be called from contexts that can sleep. π΄β¨
that's the whole vibe check. if you're somewhere that can't sleep, this is not your girl β you want the other one. but if you're chilling in a sleepy context, she's iconic and she's ready. periodt.
π₯ SEE ALSO π₯
the friend group is huge, ngl. she lives in the kernel file ./drivers/gpio/gpiolib.c, and here's everyone she wants you to meet π
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_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)
like I said. huge friend group. but every single one of them ate, iykyk πβ¨
and that's the whole page, bestie π§π this little icon is dated October 2026, it comes to you straight out of ./drivers/gpio, and the source/version vibes are <rainbow>Kernel API Manual</rainbow> β go read your pins, but only in a context that can sleep, muah ππ
π¦ 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