pinctrl_gpio...ection_input(9)
π pinctrl_gpio_direction_input π
okay so welcome to the Kernel API Manual, bestie β¨ the header/footer on this page spells it pinctrl_gpio...ection_input(9) β yes, with the little truncation moment β and the function we're actually here for is pinctrl_gpio_direction_input. it's giving βone tiny pin-control helper, very serious rulesβ energy, and we're gonna cover every detail fr fr.
πΈ NAME πΈ
pinctrl_gpio_direction_input β request a GPIO pin to go into input mode. like, you're asking the pin to listen instead of yell, and honestly? iconic.
π¦ SYNOPSIS π¦
int pinctrl_gpio_direction_input (struct gpio_chip *gc , unsigned int
offset );
π ARGUMENTS π
gcβ the GPIO chip structure from the GPIO subsystem. this is the controller-level struct, the main character of the GPIO situation.offsetβ the hardware offset of the GPIO relative to the controller. it's the pin's exact spot inside that controller, lowkey important.
β¨ DESCRIPTION β¨
So here's the vibe check: this function should ONLY be used from gpiolib-based GPIO drivers, as part of their gpio_direction_input semantics. that's the whole lane. platforms and individual drivers shall NOT touch pin control GPIO calls β not even a little, not even with a cute little side quest. it's a hard boundary, and we respect it periodt.
no cap: if you're not in a gpiolib-based GPIO driver doing its gpio_direction_input thing, this is not your function to call. the manpage is very clear, and the caps lock is doing a lot of emotional labor.
π₯ SEE ALSO π₯
Kernel file: ./drivers/pinctrl/core.c
all the see-also besties, in their exact little line-up π«Ά:
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_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)
okay that's the whole page, bestie π«Ά source path is ./drivers/pinctrl, the date is October 2026, and the page name in the footer is pinctrl_gpio...ection_input(9). mwah πβ¨
π¦ 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