gpiod_set_value_cansleep(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… gpiod_set_value_cansleep(9) β€” like, the Kernel API Manual page you actually wanna read πŸŽ€

okay so bestie, welcome to the Kernel API Manual, and today's main character is gpiod_set_value_cansleep β€” she assigns a gpio's value and she does it while being allowed to nap. iconic behavior honestly.


✨ NAME ✨

gpiod_set_value_cansleep β€” assign a gpio's value πŸ’«


🌸 SYNOPSIS 🌸

int gpiod_set_value_cansleep (struct gpio_desc *desc , int value );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • desc β€” the gpio whose value will be assigned 🫢 (yes, this one, the one right there)
  • value β€” the value to assign ⭐

πŸ’– DESCRIPTION πŸ’–

So what she actually does: she sets the logical value of the GPIO β€” meaning she's taking its ACTIVE_LOW status into account. not raw, not feral, logical. the way she respects the inversion flag omg πŸ‘‘

And the special sauce, the whole reason this function has _cansleep in her name:

This function is to be called from contexts that can sleep. πŸ˜΄πŸ’€

fr fr, if you're in a context that can't sleep, you're in the wrong function bestie, don't do this to yourself πŸ™ˆ


🌈 RETURN 🌈

  • 0 on success πŸŽ‰
  • a negative error number on failure 😭

πŸ’œ SEE ALSO πŸ’œ

okay so this is the part where she lists literally every single one of her friends and honestly? obsessed with the loyalty. here's the whole group chat, no gatekeeping, no cap:

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_get_array_value_cansleep(9), gpiod_set_raw_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, the whole gpio extended universe is in here πŸ§šπŸ’€


and there's a kernel file she wants you to know about too: ./drivers/gpio/gpiolib.c β€” that's where the lore lives, iykyk πŸ“–βœ¨

k that's the whole page bestie!! she's from ./drivers/gpio, dated October 2026, and she ate and left absolutely no crumbs πŸ’…πŸ”₯πŸ‘‘ πŸŽ€πŸ¦‹πŸ’–

πŸ“¦ where this page comes from