regulator_set_voltage(9)
π regulator_set_voltage(9) β the Kernel API Manual, bestie edition π
okay so this is a page straight out of the Kernel API Manual, and today's main character is regulator_set_voltage β the function that tells a voltage regulator what voltage to actually put out. let's get into it β¨
πΈ NAME πΈ
regulator_set_voltage β set regulator output voltage π
π¦ SYNOPSIS π¦
int regulator_set_voltage (struct regulator *regulator , int min_uV ,
int max_uV );
π ARGUMENTS π
regulatorβ the regulator source, like, the actual thing you're talking to π«Άmin_uVβ minimum required voltage in uV (yes, microvolts, read the unit, i'm begging you)max_uVβ maximum acceptable voltage in uV
β DESCRIPTION β
so what it does is sets a voltage regulator to the desired output voltage. that's the whole vibe. and the slay part? it can be set during any regulator state β IOW, the regulator can be disabled or enabled, doesn't matter, the call still works π
and here's the behaviour breakdown, no cap:
- if the regulator is enabled, then the voltage will change to the new value immediately β‘
- otherwise, if the regulator is disabled, the regulator will output at the new voltage when enabled β like it's saving it for later π
π NOTE π
if the regulator is shared between several devices, then the lowest request voltage that meets the system constraints will be used β it's giving compromise, it's giving teamwork π€
also, regulator system constraints must be set for this regulator before calling this function, otherwise this call will fail. like, i cannot stress this enough, set your constraints first or it's a π
π RETURN π
0 on success, or a negative error number on failure π (so like, check it, bestie)
π SEE ALSO π
Kernel file ./drivers/regulator/core.c, and honestly the whole extended universe of friends:
regulator_lock_nested(9)regulator_lock(9)regulator_unlock(9)regulator_lock_two(9)regulator_unlock_two(9)regulator_unlock_dependent(9)regulator_lock_dependent(9)set_machine_constraints(9)regulator_event_work_fn(9)regulator_event_forward_notifier(9)register_regulator_event_forwarding(9)set_supply(9)set_consumer_device_supply(9)regulator_dev_lookup(9)_regulator_get_common(9)regulator_get(9)regulator_get_exclusive(9)regulator_get_optional(9)regulator_put(9)regulator_register_supply_alias(9)regulator_unregister_supply_alias(9)regulator_bulk_register_supply_alias(9)regulator_bulk_unregister_supply_alias(9)regulator_ena_gpio_ctrl(9)_regulator_check_status_enabled(9)_regulator_handle_consumer_enable(9)_regulator_handle_consumer_disable(9)regulator_enable(9)regulator_disable(9)regulator_force_disable(9)regulator_disable_deferred(9)regulator_is_enabled(9)regulator_count_voltages(9)regulator_list_voltage(9)regulator_get_regmap(9)regulator_get_hardware_vsel_register(9)regulator_list_hardware_vsel(9)regulator_hardware_enable(9)regulator_get_linear_step(9)regulator_is_supported_voltage(9)regulator_set_voltage_time(9)regulator_set_voltage_time_sel(9)regulator_sync_voltage(9)regulator_get_voltage(9)regulator_set_current_limit(9)regulator_get_current_limit(9)regulator_get_unclaimed_power_budget(9)regulator_request_power_budget(9)regulator_free_power_budget(9)regulator_set_mode(9)regulator_get_mode(9)regulator_get_error_flags(9)regulator_set_load(9)regulator_allow_bypass(9)regulator_register_notifier(9)regulator_unregister_notifier(9)regulator_bulk_get(9)regulator_bulk_enable(9)regulator_bulk_disable(9)regulator_bulk_force_disable(9)regulator_bulk_free(9)regulator_handle_critical(9)regulator_notifier_call_chain(9)regulator_mode_to_status(9)regulator_register(9)regulator_unregister(9)regulator_suspend(9)regulator_has_full_constraints(9)rdev_get_drvdata(9)regulator_get_drvdata(9)regulator_set_drvdata(9)rdev_get_id(9)
and that's the whole page, bestie π§π this one lives over in ./drivers/regulator and it's dated October 2026 β go forth and set those voltages responsibly, 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