Voltage and Current Regulators

Platforms have a set of voltage and current regulators to dynamically control regulator power output in order to save power or to match certain system operating points. E.g: LCD backlight driver would need to change the current limit to vary the backlight brightness.

Arm client platforms with DT make use of the regulator binding to describe regulator devices and consumer devices for regulators. Device drivers use the regulator framework to dynamically enable/disable voltage rails or configure the voltage or current limits.

ACPI bindings for Regulator

ACPI doesn’t have any bindings available for the regulator specifically and the regulator enable/disable etc. are typically handled by the ACPI device power methods.

Example - SDHCI (SD/MMC/eMMC)

SD card interface requires 1.8V or 3.3V signaling depending on the usage mode as shown below.

I.MX8MP Platform

I.MX8MP platform provides a control bit (VSELECT) on a memory-mapped register VEND_SPEC to select the required voltage.

The value of the output signal VSELECT from the controller can be configured by changing the value in the register and there must be a control circuit out of SDHC controller to change the voltage on pads.


References

Linux voltage and current regulator framework — The Linux Kernel documentation