pinctrl_add_gpio_range(9)
π pinctrl_add_gpio_range β the Kernel API Manual, bestie edition π
okay so this page is pinctrl_add_gpio_range(9) from the Kernel API Manual and it's literally about registering a GPIO range for a controller β¨ buckle up, it's a short one but the tea is important π«
πΈ NAME πΈ
pinctrl_add_gpio_range β register a GPIO range for a controller π
β¨ SYNOPSIS β¨
void pinctrl_add_gpio_range (struct pinctrl_dev *pctldev , struct
pinctrl_gpio_range *range );
no cap, that's the whole signature π
π ARGUMENTS π
pctldevβ the pin controller device you're adding the range to π¦rangeβ the actual GPIO range you're adding, like the thing itself πΈ
π₯ DESCRIPTION π₯
π¨ DEPRECATED: Don't use this function in new code. fr fr. See section 2 of Documentation/devicetree/bindings/gpio/gpio.txt on how to bind pinctrl and gpio drivers. that's the main character doc, go read it π
so what does it even do? it adds a range of GPIOs to be handled by a certain pin controller π
call this to register handled ranges after registering your pin controller β order matters bestie, don't skip ahead π
π SEE ALSO π
Kernel file ./drivers/pinctrl/core.c β and like, the entire extended friend group π:
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_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(9)devm_pinctrl_register_and_init(9)
and that's the whole vibe check π§ this little page lives in ./drivers/pinctrl and it's dated October 2026 β yes, we're being iconic in the future βπ bye bestie, go register ur ranges (or don't, it's deprecated π) πππ
π¦ 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