The X-Powers AXP313 is a small PMIC that is controlled via I2C and provides just three buck converters and three LDOs, plus a power button. It is used on many newer boards using the Allwinner H616 or H618 SoCs.
Mostly all rails need to be always on, since each of them supplies an essential part of the system, consequentially the reset default is to have all of them enabled. However the voltages need to be adjusted, especially the DRAM rail is typically at 900mV, for instance, which is too low. This series adds support for the proper DM AXP PMIC driver (patch 3/3), but also adds a small driver to be used in (our non-DM) SPL, to adjust the DRAM voltage before the DRAM initialisation starts (patch 2/3). This also uses the opportunity to clean up an #ifdef nightmare in our board.c (patch 1/3), which was actually duplicating some dependencies already described in Kconfig. This is one part of the enablement of many newer boards with the H616/H618 SoC: without the DRAM voltage increased to 1.1V they won't boot. Cheers, Andre Andre Przywara (3): sunxi: board: simplify early PMIC setup conditions power: pmic: sunxi: add AXP313 SPL driver power: regulator: add AXP313 support arch/arm/mach-sunxi/pmic_bus.c | 3 + board/sunxi/board.c | 35 +++---- drivers/power/Kconfig | 19 +++- drivers/power/Makefile | 1 + drivers/power/axp313.c | 134 ++++++++++++++++++++++++ drivers/power/pmic/axp.c | 1 + drivers/power/regulator/axp_regulator.c | 17 +++ include/axp_pmic.h | 1 + 8 files changed, 189 insertions(+), 22 deletions(-) create mode 100644 drivers/power/axp313.c -- 2.25.1