[U-Boot] [PATCH v4 0/2] support for ROHM BD71837 and BD71847 PMICs

Matti Vaittinen matti.vaittinen at fi.rohmeurope.com
Tue May 7 07:40:45 UTC 2019


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

-- 
2.17.2


-- 
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND

~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
"non cogito me" dixit Rene Descarte, deinde evanescavit

Thanks to Simon Glass for the translation =]


More information about the U-Boot mailing list