This commit adds emulation of sandbox PMIC device, which includes: - PMIC I2C emulation driver - PMIC I/O driver (UCLASS_PMIC) - PMIC regulator driver (UCLASS_REGULATOR) The sandbox PMIC has 12 significant registers and 4 as padding to 16 bytes, which allows using 'i2c md' command with the default count (16). The sandbox PMIC provides regulators: - 2x BUCK - 2x LDO Each, with adjustable output: - Enable state - Voltage - Current limit (LDO1/BUCK1 only) - Operation mode (different for BUCK and LDO) Each attribute has it's own register, beside the enable state, which depends on operation mode. The header file: sandbox_pmic.h includes PMIC's default register values, which are set on i2c pmic emul driver's probe() method. Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com> Acked-by: Simon Glass <sjg@chromium.org> Tested on sandbox: Tested-by: Simon Glass <sjg@chromium.org>
46 lines
1.3 KiB
Text
46 lines
1.3 KiB
Text
Sandbox, PMIC regulators
|
|
|
|
This device uses two drivers:
|
|
- drivers/power/pmic/sandbox.c (as parent I/O device)
|
|
- drivers/power/regulator/sandbox.c (for child regulators)
|
|
|
|
This file describes the binding info for the REGULATOR driver.
|
|
|
|
First, please read the binding info for the PMIC:
|
|
- doc/device-tree-bindings/pmic/sandbox.txt
|
|
|
|
Required subnodes:
|
|
- ldoN { };
|
|
- buckN { };
|
|
|
|
The sandbox PMIC can support: ldo1, ldo2, buck1, buck2.
|
|
|
|
For each PMIC's regulator subnode, there is one required property:
|
|
- regulator-name: used for regulator uclass platform data '.name'
|
|
|
|
Optional:
|
|
- regulator-min-microvolt: minimum allowed Voltage to set
|
|
- regulator-max-microvolt: minimum allowed Voltage to set
|
|
- regulator-min-microamps: minimum allowed Current limit to set (LDO1/BUCK1)
|
|
- regulator-max-microamps: minimum allowed Current limit to set (LDO1/BUCK1)
|
|
- regulator-always-on: regulator should be never disabled
|
|
- regulator-boot-on: regulator should be enabled by the bootloader
|
|
|
|
Example PMIC's regulator subnodes:
|
|
|
|
ldo1 {
|
|
regulator-name = "VDD_1.0V";
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-min-microamps = <100000>;
|
|
regulator-max-microamps = <400000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
buck2 {
|
|
regulator-name = "VDD_1.8V";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-boot-on;
|
|
};
|