devm_pinctrl_register(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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