regulator_ge...sel_register(9)
π regulator_get_hardware_vsel_register β Kernel API Manual β¨
okay so bestie, welcome to regulator_get_hardware_vsel_register(9) π this is from the Kernel API Manual, and it's literally the glow-up page for finding out where the hardware keeps its voltage selector. buckle up π
πΈ NAME πΈ
regulator_get_hardware_vsel_register β get the HW voltage selector register π
β¨ SYNOPSIS β¨
int regulator_get_hardware_vsel_register (struct regulator *regulator ,
unsigned *vsel_reg , unsigned *vsel_mask );
π¦ ARGUMENTS π¦
regulatorβ the regulator source, aka who we're asking πvsel_regβ voltage selector register, and bestie this is an output parameter π«vsel_maskβ mask for the voltage selector bitfield, also an output parameter π
π DESCRIPTION π
So what this does is returns the hardware register offset and the bitmask that get used for setting the regulator voltage β¨ and honestly? iconic. this is highkey useful when you're configuring voltage-scaling hardware or firmware that can make I2C requests behind the kernel's back β yes, behind its back, sneaky little main character energy π
On success, the output parameters vsel_reg and vsel_mask get filled in, and 0 is returned π otherwise you get a negative error number back, and that's the vibe check failing ngl π
β RETURN β
0 on success π«Ά or -EOPNOTSUPP if the regulator does not support voltage selectors π like, it's just not that girl, no cap.
π₯ SEE ALSO π₯
Kernel file ./drivers/regulator/core.c β and the whole friend group π
:
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_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_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)
ok that's the whole page bestie, go read the source and slay π
and that's a wrap, babe π this one came straight from ./drivers/regulator, dated October 2026 β the manual name again for the girlies keeping receipts: regulator_ge...sel_register(9) β¨π go off, and remember: no cap, read your regulator docs π¦π
π¦ 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