
BD71837 and BD71847 is PMIC intended for powering single-core, dual-core, and quad-core SoC’s such as NXP-i.MX 8M. BD71847 is used for example on NXP imx8mm EVK.
Add regulator driver for ROHM BD71837 and BD71847 PMICs. BD71837 contains 8 bucks and 7 LDOS. BD71847 is reduced version containing 6 bucks and 6 LDOs. Voltages for DVS bucks (1-4 on BD71837, 1 and 2 on BD71847) can be adjusted when regulators are enabled. For other bucks and LDOs we may have over- or undershooting if voltage is adjusted when regulator is enabled. Thus this is prevented by default.
BD718x7 has a quirk which may leave power output disabled after reset if enable/disable state was controlled by SW. Thus the SW control is only allowed for BD71837 bucks 3 and 4 by default. The impact of this limitation must be evaluated board-by board and restrictions may need to be modified. (Linux driver get's these limitations from DT and we may want to implement same on u-Boot driver).
Signed-off-by: Matti Vaittinen matti.vaittinen@fi.rohmeurope.com
Changelog v3 => v4:
- prefer u8 over uint8_t
- prefer types with natural alignment over u8 on function arguments
- remove inclusion of errno.h from drivers/power/regulator/bd71837.c
drivers/power/pmic/bd71837.c | 32 +- drivers/power/regulator/Kconfig | 17 ++ drivers/power/regulator/Makefile | 1 + drivers/power/regulator/bd71837.c | 468 ++++++++++++++++++++++++++++++ include/power/bd71837.h | 147 ++++++---- 5 files changed, 607 insertions(+), 58 deletions(-) create mode 100644 drivers/power/regulator/bd71837.c
Reviewed-by: Simon Glass sjg@chromium.org