Greetings! I have one more improvement for these drivers which is implementation of do_poweroff ability directly into them. I have tested it already and it is a trivial task. What is non trivial is that pmic can be not responsible for poweroff if the device uses 2 or more pmics.
Solution I am looking into is use of 'system-power-controller' device tree property to indicate PMIC used for poweroff function. Issue I have encountered is how to properly convert dts prop into #ifdef to be able to hide or expose do_poweroff at will, and if this is allowed at all in u-boot. Best regards, Svyatoslav R. пт, 14 лип. 2023 р. о 19:16 Svyatoslav Ryhel <clamo...@gmail.com> пише: > > 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. > > Svyatoslav Ryhel (6): > 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 | 12 + > drivers/power/pmic/Makefile | 2 + > drivers/power/pmic/max77663.c | 81 ++++ > drivers/power/pmic/pmic_tps65910_dm.c | 26 +- > drivers/power/pmic/tps80031.c | 82 ++++ > drivers/power/regulator/Kconfig | 24 ++ > drivers/power/regulator/Makefile | 3 + > drivers/power/regulator/max77663_regulator.c | 362 ++++++++++++++++++ > drivers/power/regulator/tps65911_regulator.c | 375 +++++++++++++++++++ > drivers/power/regulator/tps80031_regulator.c | 296 +++++++++++++++ > include/power/max77663.h | 40 ++ > include/power/tps65910_pmic.h | 47 +++ > include/power/tps80031.h | 42 +++ > 16 files changed, 1627 insertions(+), 3 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 >