This series does the initial work to migrate sunxi boards to DM_I2C. First it takes care of the PMIC: - Patches 1-2 add DM_I2C versions of two drivers. - Patches 3-4 allow us to use DM_PMIC without DM_SPL. - Patch 5 then adds a DM_PMIC driver. - Patches 6-9 migrate the "pmic_bus" functions to use that DM_PMIC driver when possible. Then it takes care of the LCD panels: - Patch 10 converts those drivers to use DM_I2C. Finally, patch 11 switches all sunxi boards over to DM_I2C.
There is some remaining work to clean up uses of pmic_bus in U-Boot proper and replace them with DM_PMIC functions: - drivers/gpio/axp_gpio.c - I have a series for this. - do_poweroff() in drivers/gpio/axp???.c - I have a series for this. - axp_get_sid() in drivers/power/axp221.c - Not sure what to do here. - axp_set_eldo() in drivers/video/sunxi/sunxi_display.c - This will need a DM_REGULATOR driver. This series is on top of https://patchwork.ozlabs.org/project/uboot/list/?series=258648 which is on top of https://patchwork.ozlabs.org/project/uboot/list/?series=258482 I have build-tested each commit on all sunxi boards, and boot-tested the series on Pine H64 (H6) and Orange Pi Zero2 (H616). Samuel Holland (11): i2c: Add a DM_I2C wrapper for the sun6i_p2wi controller i2c: Add a DM_I2C wrapper for the sun8i_rsb controller power: pmic: Consistently depend on DM_PMIC power: pmic: Make the uclass optional in SPL power: pmic: Add a driver for X-Powers AXP PMICs sunxi: Select SUN8I_RSB more carefully sunxi: pmic_bus: Fix Kconfig dependencies sunxi: pmic_bus: Clean up preprocessor conditions sunxi: pmic_bus: Use the DM PMIC interface when possible sunxi: video: Convert panel I2C to use DM_I2C sunxi: Enable DM_I2C for all sunxi boards arch/arm/Kconfig | 1 + arch/arm/mach-sunxi/Kconfig | 51 +++---------- arch/arm/mach-sunxi/pmic_bus.c | 109 ++++++++++++++-------------- board/sunxi/board.c | 44 +---------- configs/Colombus_defconfig | 6 -- configs/UTOO_P66_defconfig | 3 - drivers/i2c/Kconfig | 16 ++++ drivers/i2c/Makefile | 2 + drivers/i2c/sun6i_p2wi.c | 66 +++++++++++++++++ drivers/i2c/sun8i_rsb.c | 86 ++++++++++++++++++++++ drivers/power/pmic/Kconfig | 72 +++++++++--------- drivers/power/pmic/Makefile | 3 +- drivers/power/pmic/axp.c | 49 +++++++++++++ drivers/video/anx9804.c | 107 +++++++++++++-------------- drivers/video/anx9804.h | 5 +- drivers/video/sunxi/sunxi_display.c | 55 +++++++++----- include/axp_pmic.h | 12 +++ include/configs/sunxi-common.h | 17 ----- 18 files changed, 435 insertions(+), 269 deletions(-) create mode 100644 drivers/i2c/sun6i_p2wi.c create mode 100644 drivers/i2c/sun8i_rsb.c create mode 100644 drivers/power/pmic/axp.c -- 2.31.1