Patch set adds basic support for PMICs used in many Tegra 3 devices. All PMIC drivers are based on datasheets provided by vendors. Implemented API include regulator set/get voltage enable/disable and basic PMIC r/w capabilities.
Drivers were tested by me on LG P895 (max77663), HTC One X (TPS80032) and ASUS TF300T (tps65911). Calculations and behavior were correct, predictable and reproducible. Poweroff functional will be added after this basic drivers are merged. --- Changes from v7: - no activity for 3 weeks, no changes, re-sending Changes from v6: - no changes, re-sending Changes from v5: - pass tps6591x regulator children directly via udevice_id data field Changes from v4: - used private structure for TPS80031 SPMS driver so that internal flags do not interfere with those from dm_regulator_uclass_plat - fixed detection on ldoln and ldousb for palmas ldo driver Changes from v3: - expanded descriptions in Kconfigs for pmics and regulators - replaced ret with other variable name if it is not used for return - dropped prefixed with pmic name - dropped () in ~(var) type expressions - return dm_i2c_* output in pmic_read/write functions - switched to log_debug in some places - added descryptions for some "non obvious" functions - fixed tps80031 spms voltage calculation in non linear region - adjsuted tps65911 vio voltage calculation Changes from v2: - removed all previously made poweroff API in favour to use sysreset after this patchset is accepted Changes from v1: - created poweroff API for PMIC and integrated it call into do_poweroff - added poweroff function to submitted max77663, tps80032 and tps65911 drivers - fixed registers asignments for regulators with non-numeric name (ldoln, ldousb, vddctrl) --- Svyatoslav Ryhel (8): power: pmic: palmas: support TI TPS65913 PMIC power: regulator: palmas: fix ldoln and ldousb detection power: pmic: add the base MAX77663 PMIC support power: regulator: max77663: add regulator support power: pmic: add the base TPS80031 PMIC support power: regulator: tps80031: add regulator support power: pmic: tps65910: add TPS65911 PMIC support power: regulator: tps65911: add regulator support doc/device-tree-bindings/pmic/max77663.txt | 84 ++++ doc/device-tree-bindings/pmic/tps65911.txt | 78 ++++ doc/device-tree-bindings/pmic/tps80031.txt | 76 ++++ drivers/power/pmic/Kconfig | 20 + drivers/power/pmic/Makefile | 2 + drivers/power/pmic/max77663.c | 86 ++++ drivers/power/pmic/palmas.c | 1 + drivers/power/pmic/pmic_tps65910_dm.c | 15 +- drivers/power/pmic/tps80031.c | 87 ++++ drivers/power/regulator/Kconfig | 28 ++ drivers/power/regulator/Makefile | 3 + drivers/power/regulator/max77663_regulator.c | 378 ++++++++++++++++++ drivers/power/regulator/palmas_regulator.c | 24 +- drivers/power/regulator/tps65911_regulator.c | 397 +++++++++++++++++++ drivers/power/regulator/tps80031_regulator.c | 350 ++++++++++++++++ include/power/max77663.h | 42 ++ include/power/tps65910_pmic.h | 44 ++ include/power/tps80031.h | 45 +++ 18 files changed, 1747 insertions(+), 13 deletions(-) create mode 100644 doc/device-tree-bindings/pmic/max77663.txt create mode 100644 doc/device-tree-bindings/pmic/tps65911.txt create mode 100644 doc/device-tree-bindings/pmic/tps80031.txt create mode 100644 drivers/power/pmic/max77663.c create mode 100644 drivers/power/pmic/tps80031.c create mode 100644 drivers/power/regulator/max77663_regulator.c create mode 100644 drivers/power/regulator/tps65911_regulator.c create mode 100644 drivers/power/regulator/tps80031_regulator.c create mode 100644 include/power/max77663.h create mode 100644 include/power/tps80031.h -- 2.39.2