
Patch series to support for ROHM BD71837 and BD71847 PMICs.
ROHM 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.
Series adds PMIC driver with register read and write support, and regulator driver with enable/disable and voltage changing support with certain limitations: - Enable/Disable state control is by default only allowed for BD71837 bucks 3 and 4. This is due to a HW feature which leaves SW controlled power rails unpowered after reset which leads to SNVS state. - Voltage control for enabled regulator is only allowed for "DVS" regulators (bucks 1-4 on BD71837, bucks 1 and 2 on BD71847). This is done because changing voltage on other regulators may cause under-/over shoot when regulator is enabled.
Drivers expect to see PMIC node with proper regulator sub-nodes given from device tree but.
Driver is tested using BD71837 and BD71847 break-out board connected to Beagle Bone Black and device-tree entry which was created as desctibed in dt-binding document for BD718x7 shipped with Linux.
This patch series does not support DT properties which allow changing the reset target between SNVS and READY or identifying boot-critical regulators and disabling SW control based on reset target as the Linux driver does.
Changelog v4: - prefer u8 over uint8_t - prefer types with natural alignment over u8 on function arguments - remove inclusion of errno.h
Changelog v3: - improve Kconfig description - use pmic_clrsetbits() also in pmic/bd71837.c - remove unnecessary header includes - minor readability/styling fixes
Changelog v2: (fix issues pointed by Simon Glass) - Fix typo in patch series name (BD71827 => BD71837) - Drop drivers/power/pmic/pmic_bd71837.c (the old PMIC interface) - Fix characters in hex numbers to lowercase - use pmic_clrsetbits() instead of using separate reads and writes - fix styling issues
Changelog v1: - This version is created based on the RFC v1. https://lists.denx.de/pipermail/u-boot/2019-March/363076.html https://lists.denx.de/pipermail/u-boot/2019-March/363077.html - Support BD71847. - Unlock the PMIC protection register
Patch 1: - Cherry picks the initial PMIC driver for BD71837 from NXP's i.MX repository at: https://source.codeaurora.org/external/imx/uboot-imx (commits e9a3bec2e95a and acdc5c297a96). Fixes checkpatch issues.
Patch 2: - Support BD71847 PMIC. - Add support for BD71837 and BD71847 regulators.
---
Matti Vaittinen (2): regulator: bd71837: copy the bd71837 pmic driver from NXP imx u-boot regulator: bd718x7: support ROHM BD71837 and BD71847 PMICs
drivers/power/pmic/Kconfig | 7 + drivers/power/pmic/Makefile | 1 + drivers/power/pmic/bd71837.c | 111 +++++++ drivers/power/regulator/Kconfig | 17 ++ drivers/power/regulator/Makefile | 1 + drivers/power/regulator/bd71837.c | 468 ++++++++++++++++++++++++++++++ include/power/bd71837.h | 103 +++++++ 7 files changed, 708 insertions(+) create mode 100644 drivers/power/pmic/bd71837.c create mode 100644 drivers/power/regulator/bd71837.c create mode 100644 include/power/bd71837.h