[PATCH v2 0/2] power: pmic: add TPS65913 support

Svyatoslav Ryhel clamor95 at gmail.com
Sat Jul 15 20:34:29 CEST 2023


Existing PALMAS PMIC driver is fully compatible with TI TPS65913
PMIC found in many Tegra 4 devices, like Tegra Note 7 and ASUS
TF701T. Add TPS65913 dts compatible with TPS659038 data.

Issue with regulators is more general then I though initially.
It touches all pmic regulators.

Currently device tree entries of regulators are completely
ignored and regulators are probed only if they are called
by the device which uses it. This results into two issues:
regulators which must run under boot-on or always-on mode
are ignored and not enabled; dts props like voltage are
not applied to the regulator so the regulator may be enabled
with random actual voltage, which may have unexpected
consequences.

Second patch changes this behavior. Post-probe function is
introduced which performs probing of each pmics child and if
it is a regulator, regulator_autoset function is called, which
handles always-on and boot-on regulators, but if none of those
props are set, the regulator is disabled.

Later disabled regulators can be re-enabled by devices which
use them without issues.

I have tested this change on multiple devices with different
PMICs (LG P895, max77663; TF300T with TPS65911; HTC One X with
TPS80031; Tegratab with TPS65913). Without this patch they behave
as described in the third paragraph. With patch behavior is correct.

---
Changes from v1:
 - implemented general fix of regulator behavior, which include:
  - introduction of post-probe into pmic-uclass driver
  - probing all pmic childs in post-probe
  - check if device is regulator > autoset if regulator is
    boot-on or always-on  else  disable regulator
--- 

Svyatoslav Ryhel (2):
  power: pmic: support TI TPS65913 PMIC
  power: pmic: fix regulators behaviour

 drivers/power/pmic/palmas.c      |  1 +
 drivers/power/pmic/pmic-uclass.c | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)

-- 
2.39.2



More information about the U-Boot mailing list