pinctrl_gpi...ction_output(9)
π pinctrl_gpi...ction_output(9) β from the Kernel API Manual
okay so bestie, welcome to the group chat π this is the manual page for pinctrl_gpio_direction_output β yes the header is doing that truncated thing (pinctrl_gpi...ction_output(9), iconic of it) but the full name is right there in the NAME section, we got you π«Ά
β¨ NAME β¨
pinctrl_gpio_direction_output β politely ask a GPIO pin to go into output mode π
πΈ SYNOPSIS πΈ
int pinctrl_gpio_direction_output (struct gpio_chip *gc , unsigned int
offset );
like, that's the whole vibe. two args, one int back β¨
π¦ ARGUMENTS π¦
gcβ the GPIO chip structure, straight from the GPIO subsystem πoffsetβ the hardware offset of the GPIO relative to the controller π
π DESCRIPTION π
okay so here's the tea β this function should *ONLY* be used from gpiolib-based GPIO drivers, as part of their gpio_direction_output semantics. that's the whole point of it, periodt π
and because we love a clear boundary: platforms and individual drivers shall *NOT* touch pin control GPIO calls. nope. not them. not ever. this is a driver-only zone π₯
fr fr read that asterisk situation again β*ONLY*and*NOT*are not decorative, they're the whole rule π
β SEE ALSO β
the kernel file to go look at is ./drivers/pinctrl/core.c β and here's the full squad of friends, no cap, all of them:
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_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 page!! πβ¨π source is ./drivers/pinctrl, dated October 2026 β ty for coming to my TED talk, go set some pins to output mode responsibly π¦π
π
π¦ 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