of_reset_co...al_exclusive(9)
π NAME π
okay so bestie, this is of_reset_control_get_optional_exclusive β say that five times fast, i dare you β and what it does is look up a reset controller and get an optional, exclusive reference to it. that's the whole vibe. lowkey iconic. π
(this page lives in the Kernel API Manual, section 9, which is the linux kernel's own little corner of man-page heaven. welcome. π«Ά)
β¨ SYNOPSIS β¨
struct reset_control * of_reset_control_get_optional_exclusive (struct
device_node *node , const char *id );
likeβ¦ that's the whole signature. the struct reset_control * is the main character, the two args are the supporting cast. π¬
π ARGUMENTS π
nodeβ the device that's gonna get reset by the controller. that's your lil guy. your target. π―idβ the name of the reset line. the label on the door, iykyk.
π¦ DESCRIPTION π¦
so this is the optional variant of of_reset_control_get_exclusive, and that's the entire tea. πββοΈ
the optional-ness is huge actually: if the reset you're asking for isn't even specified in the device tree, this function does not throw a tantrum and hand you an error β it just returns NULL instead. no drama. very demure. πΈ
not the same as an error! NULL means "not there, cool, moving on." an error is a whole different thing, so read the next bit carefully bestie.
it returns a struct reset_control or an IS_ERR condition containing errno. so like, check it. don't just raw-dog the return value. π
also, using id names is optional. yes the optionality is optional too. it's optional-ception over here. β¨
π SEE ALSO π
kernel file: ./include/linux/reset.h β that's where struct reset_control_bulk_data(9) and enum reset_control_flags(9) live, and honestly the whole friend group is listed below so let's get into it, no cap. this is the entire reset-control extended universe, and yes i'm listing every single one because they all ate. π₯
struct reset_control_bulk_data(9)enum reset_control_flags(9)reset_control_get_exclusive(9)reset_control_bulk_get_exclusive(9)reset_control_get_exclusive_released(9)reset_control_bulk_get_exclusive_released(9)reset_control_bulk_get_optional_exclusive_released(9)reset_control_get_shared(9)reset_control_bulk_get_shared(9)reset_control_get_optional_exclusive(9)reset_control_bulk_get_optional_exclusive(9)reset_control_get_optional_shared(9)reset_control_bulk_get_optional_shared(9)of_reset_control_get_exclusive(9)of_reset_control_get_shared(9)of_reset_control_get_exclusive_by_index(9)of_reset_control_get_shared_by_index(9)devm_reset_control_get_exclusive(9)devm_reset_control_get_exclusive_deasserted(9)devm_reset_control_bulk_get_exclusive(9)devm_reset_control_get_exclusive_released(9)devm_reset_control_bulk_get_exclusive_released(9)devm_reset_control_get_optional_exclusive_released(9)devm_reset_control_bulk_get_optional_exclusive_released(9)devm_reset_control_get_shared(9)devm_reset_control_get_shared_deasserted(9)devm_reset_control_bulk_get_shared(9)devm_reset_control_bulk_get_shared_deasserted(9)devm_reset_control_get_optional_exclusive(9)devm_reset_control_get_optional_exclusive_deasserted(9)devm_reset_control_bulk_get_optional_exclusive(9)devm_reset_control_get_optional_shared(9)devm_reset_control_get_optional_shared_deasserted(9)devm_reset_control_bulk_get_optional_shared(9)devm_reset_control_get_exclusive_by_index(9)devm_reset_control_get_shared_by_index(9)
k that's the whole page bestie, go reset something responsibly π
source: ./include/linux Β· October 2026 Β· of_reset_co...al_exclusive(9) β mwah, signing off, drink some water and don't forget to check your IS_ERR π
ππ¦
π¦ 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