regulator_set_load(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… regulator_set_load(9) β€” Kernel API Manual ✨

Okay bestie, welcome to regulator_set_load(9) from the Kernel API Manual β€” the little function that tells the regulator core "hey, heads up, my power draw just changed" 🫢


🌸 NAME 🌸

regulator_set_load β€” set regulator load. That's it, that's the whole vibe. Slay.


✨ SYNOPSIS ✨

int regulator_set_load (struct regulator *regulator , int uA_load );

πŸŽ€ ARGUMENTS πŸŽ€

  • regulator β€” the regulator source. The supply in question, your main character πŸŽ€
  • uA_load β€” the load current. Literally the number you're reporting.

πŸ¦‹ DESCRIPTION πŸ¦‹

So what this does is notify the regulator core of a new device load. That's the whole point, no cap. Then the regulator core hands that info off to DRMS (if it's enabled by constraints, iykyk) so DRMS can pick the most efficient regulator operating mode for the new regulator loading. Efficient queen behavior πŸ”₯

Consumer devices notify their supply regulator of the maximum power they will require β€” and yes, you can literally pull that number from the device datasheet in the power consumption tables, they put it there for you, bestie πŸ’– β€” whenever they change operational status and hence power state.

Examples of operational state changes that can affect power consumption are, drumroll:

  • Device is opened / closed. πŸ’€
  • Device I/O is about to begin or has just finished.
  • Device is idling in between work.

This information is also exported via sysfs to userspace, so userspace gets to see it too. Iconic πŸ’…

DRMS will sum the total requested load on the regulator and change to the most efficient operating mode if platform constraints allow. Not me being obsessed with efficiency 🌈


πŸ‘‘ NOTE πŸ‘‘

When a regulator consumer requests to have a regulator disabled, then any load that consumer requested no longer counts toward the total requested load. Simple. But β€” plot twist β€” if the regulator is re-enabled, then the previously requested load will start counting again. It's giving "my load is back from its little vacation" πŸ¦‹

If a regulator is an always-on regulator, an individual consumer's load will still be removed if that consumer is fully disabled. Yes, even then, bestie, the load comes off πŸ’…


⭐ RETURN ⭐

0 on success, or a negative error number on failure. Standard, but still valid 😭


🧚 SEE ALSO 🧚

Kernel file ./drivers/regulator/core.c, plus this absolute squad of functions:

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(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_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).


Aaand that's the page, bestie πŸ“ sign-off time: this one lives in the source directory ./drivers/regulator, dated October 2026. Go forth and set your loads responsibly πŸ’œβœ¨

πŸ“¦ where this page comes from