devm_pinctrl_register(9)
okay so we're on the devm_pinctrl_register(9) page in the Kernel API Manual, and it's giving resource-managed pin controller realness π
β¨
π NAME
devm_pinctrl_register β resource managed version of pinctrl_register(). It's literally the devm glow-up of pinctrl_register(), no cap π«Ά
β¨ SYNOPSIS
struct pinctrl_dev * devm_pinctrl_register (struct device *dev , const
struct pinctrl_desc *pctldesc , void *driver_data );
πΈ ARGUMENTS
devβ parent device for this pin controller. The main character device that owns the pin controller vibes πpctldescβ descriptor for this pin controller. It's giving "here's the blueprint" energy πdriver_dataβ private pin controller data for this pin controller. Your little private stash of data, iykyk π
π¦ DESCRIPTION
If the pincontrol register failed, you get an error pointer back β that's the "nope, not today" return π Otherwise it returns a valid pinctrl handle. Slay, you got a handle β¨
The pinctrl device will be automatically released when the device is unbound. No manual cleanup arc, no "wait, who frees this?" moment β it's automatic, periodt π
π₯ SEE ALSO
Kernel file: ./drivers/pinctrl/core.c.
The whole reference squad, fr fr: pinctrl_provide_dummies(9), get_pinctrl_dev_from_devname(9), pin_get_from_name(9), pin_get_name(9), gpio_to_pin(9), pinctrl_match_gpio_range(9), pinctrl_ready_for_gpio_range(9), pinctrl_get_device_gpio_range(9), pinctrl_add_gpio_range(9), pinctrl_find_gpio_range_from_pin(9), pinctrl_remove_gpio_range(9), pinctrl_generic_get_group_count(9), pinctrl_generic_get_group_name(9), pinctrl_generic_get_group_pins(9), pinctrl_generic_get_group(9), pinctrl_generic_add_group(9), pinctrl_generic_remove_group(9), pinctrl_generic_free_groups(9), pinctrl_get_group_selector(9), pinctrl_gpio_request(9), pinctrl_gpio_free(9), pinctrl_gpio_direction_input(9), pinctrl_gpio_direction_output(9), pinctrl_gpio_set_config(9), pinctrl_gpio_get_config(9), pinctrl_get(9), pinctrl_release(9), pinctrl_put(9), pinctrl_lookup_state(9), pinctrl_commit_state(9), pinctrl_select_state(9), devm_pinctrl_get(9), devm_pinctrl_put(9), pinctrl_register_mappings(9), pinctrl_unregister_mappings(9), devm_pinctrl_register_mappings(9), pinctrl_force_sleep(9), pinctrl_force_default(9), pinctrl_init_done(9), pinctrl_select_default_state(9), pinctrl_pm_select_default_state(9), pinctrl_pm_select_init_state(9), pinctrl_pm_select_sleep_state(9), pinctrl_pm_select_idle_state(9), pinctrl_init_controller(9), pinctrl_register(9), pinctrl_register_and_init(9), pinctrl_unregister(9), devm_pinctrl_register_and_init(9).
source/version: ./drivers/pinctrl Β· date: October 2026 Β· page: devm_pinctrl_register(9) β bye bestie, go let the kernel auto-release your stuff π«Άπ
π¦ 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