Hi Tom, please pull the sunxi/master branch, containing changes for the second part of this cycle's sunxi updates.
We have improvements to the reliability of H6 and H616 DRAM initialisation, hopefully avoiding those occasional size misdetections many people reported before. Also there is some modernisation of the USB PHY code, to use DT provided regulators and GPIOs, instead of relying on this being badly duplicated in Kconfig. This also happens to fix broken USB operations for older boards (using the A20 SoCs, for instance), which were clashing over grabbing some GPIOs, leading to a driver bailout. There is also some rework of the H6/H616 SPL clock code, to prepare it for being reused by the upcoming Allwinner A523 support. This drops the usage of C structs to model MMIO register frames, and replaces them by using an addition of the base address with a macro defined offset. Also in preparation for A523 there is one fix and one addition for the FEL code, to prepare for the GICv3 interrupt controller that the new SoC uses. And since this is a simple fix, and was ready, there is also the watchdog driver for that new SoC. Finally tossing in an easy fix to some H616 defconfig files to enable eMMC. I also use the opportunity to enable proper page table protection (observing read-only and no-execute attributes), support for which the arm64 port recently gained. I didn't spot any issues on my arm64 board tests, but it can be easily disabled or backed out again in case any issues arise. Full support for the two new SoC series (A133 and A523) we are working on is not quite ready yet, but might follow still a bit later if progress permits. CI passed, and boot-tested on at least one board with a H616, H6, A64, H3, A20, T113s. Thanks, Andre ================================= The following changes since commit 5a0a93a768487e55ebe50a34cc90d751bf99cc56: Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-riscv (2025-04-25 13:13:17 -0600) are available in the Git repository at: https://source.denx.de/u-boot/custodians/u-boot-sunxi.git master for you to fetch changes up to d5837bbed841889428379ffff3cc19c9dca4cb6d: sunxi: clock: H6: remove struct sunxi_prcm_reg (2025-04-28 15:03:28 +0100) ---------------------------------------------------------------- Andre Przywara (16): sunxi: h616: defconfigs: enable eMMC sunxi: enable MMU_PGPROT proper page table protection phy: sun4i-usb: Determine VBUS detection pin from devicetree phy: sun4i-usb: Determine USB OTG detection pin from devicetree sunxi: Kconfig: Remove obsolete USBx_* pin symbols watchdog: sunxi: add A523 support sunxi: armv8: FEL: save and restore GICv3 registers sunxi: armv8: FEL: save and restore SP_IRQ sunxi: clock: H6: drop usage of struct sunxi_ccm_reg sunxi: mmc: remove usage of struct sunxi_ccm_reg sunxi: H616: dram: remove usage of struct sunxi_ccm_reg sunxi: H6: dram: remove usage of struct sunxi_ccm_reg sunxi: clock: H6: remove struct sunxi_ccm_reg sunxi: clock: H6: drop usage of struct sunxi_prcm_reg sunxi: H6/H616: dram: remove usage of struct sunxi_prcm_reg sunxi: clock: H6: remove struct sunxi_prcm_reg Jernej Skrabec (4): sunxi: H6: Remove useless DRAM timings parameter sunxi: H6: DRAM: Constify function parameters sunxi: h6: dram: split dram_para struct sunxi: h6/h616: Reuse common DRAM infrastructure Samuel Holland (5): power: regulator: Add a driver for the AXP PMIC drivevbus sunxi: Enable PMIC drivevbus regulator support for USB supplies phy: sun4i-usb: Control supplies via the regulator uclass sunxi: Remove obsolete USBx_VBUS_PIN Kconfig symbols gpio: axp: Remove virtual VBUS enable GPIO arch/arm/Kconfig | 1 + arch/arm/cpu/armv8/fel_utils.S | 9 + arch/arm/include/asm/arch-sunxi/boot0.h | 12 +- arch/arm/include/asm/arch-sunxi/clock_sun4i.h | 6 + arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h | 229 ++------------------- arch/arm/include/asm/arch-sunxi/clock_sun6i.h | 7 + arch/arm/include/asm/arch-sunxi/clock_sun8i_a83t.h | 7 + arch/arm/include/asm/arch-sunxi/clock_sun9i.h | 7 + arch/arm/include/asm/arch-sunxi/dram_dw_helpers.h | 22 ++ arch/arm/include/asm/arch-sunxi/dram_sun50i_h6.h | 9 +- arch/arm/include/asm/arch-sunxi/prcm_sun50i.h | 44 +--- arch/arm/mach-sunxi/Kconfig | 43 ---- arch/arm/mach-sunxi/Makefile | 4 +- arch/arm/mach-sunxi/board.c | 3 + arch/arm/mach-sunxi/clock_sun50i_h6.c | 72 +++---- arch/arm/mach-sunxi/dram_dw_helpers.c | 150 ++++++++++++++ arch/arm/mach-sunxi/dram_sun50i_h6.c | 212 ++++++------------- arch/arm/mach-sunxi/dram_sun50i_h616.c | 184 ++--------------- arch/arm/mach-sunxi/dram_timings/h6_ddr3_1333.c | 2 +- arch/arm/mach-sunxi/dram_timings/h6_lpddr3.c | 2 +- arch/arm/mach-sunxi/rmr_switch.S | 12 ++ configs/A10s-OLinuXino-M_defconfig | 1 - configs/A13-OLinuXinoM_defconfig | 1 - configs/A13-OLinuXino_defconfig | 2 - configs/A20-OLinuXino-Lime2-eMMC_defconfig | 2 - configs/A20-OLinuXino-Lime2_defconfig | 2 - configs/A20-Olimex-SOM-EVB_defconfig | 2 - configs/A20-Olimex-SOM204-EVB-eMMC_defconfig | 2 - configs/A20-Olimex-SOM204-EVB_defconfig | 2 - configs/A33-OLinuXino_defconfig | 3 +- configs/Ainol_AW1_defconfig | 1 - configs/Ampe_A76_defconfig | 3 - configs/Auxtek-T003_defconfig | 1 - configs/Auxtek-T004_defconfig | 1 - configs/Bananapi_M2_Ultra_defconfig | 2 - configs/Bananapi_m2m_defconfig | 1 - configs/Bananapro_defconfig | 2 - configs/CHIP_defconfig | 1 - configs/CHIP_pro_defconfig | 1 - configs/CSQ_CS908_defconfig | 2 - configs/Chuwi_V7_CW0825_defconfig | 3 - configs/Colombus_defconfig | 1 - configs/Cubieboard4_defconfig | 5 +- configs/Cubietruck_defconfig | 3 - configs/Cubietruck_plus_defconfig | 5 +- configs/Empire_electronix_d709_defconfig | 3 - configs/Empire_electronix_m712_defconfig | 3 - configs/Hummingbird_A31_defconfig | 2 - configs/Hyundai_A7HD_defconfig | 4 - configs/Linksprite_pcDuino3_Nano_defconfig | 1 - configs/Linksprite_pcDuino_defconfig | 2 - configs/MSI_Primo81_defconfig | 2 +- configs/Mele_A1000G_quad_defconfig | 2 - configs/Mele_I7_defconfig | 2 - configs/Mele_M9_defconfig | 2 - configs/Merrii_A80_Optimus_defconfig | 5 +- configs/Mini-X_defconfig | 1 - configs/Orangepi_defconfig | 2 - configs/Orangepi_mini_defconfig | 2 - configs/Sinlinx_SinA31s_defconfig | 2 - configs/Sinlinx_SinA33_defconfig | 1 - configs/Sinovoip_BPI_M2_defconfig | 2 - configs/Sinovoip_BPI_M3_defconfig | 4 +- configs/Sunchip_CX-A99_defconfig | 3 - configs/UTOO_P66_defconfig | 3 - configs/Wexler_TAB7200_defconfig | 2 - configs/Wobo_i5_defconfig | 1 - configs/Yones_Toptech_BD1078_defconfig | 1 - configs/Yones_Toptech_BS1078_V2_defconfig | 3 +- configs/ba10_tv_box_defconfig | 2 - configs/bananapi_m2_berry_defconfig | 1 - configs/colorfly_e708_q1_defconfig | 3 +- configs/difrnce_dit4350_defconfig | 3 - configs/dserve_dsrv9703c_defconfig | 3 - configs/ga10h_v1_1_defconfig | 3 +- configs/gt90h_v4_defconfig | 3 +- configs/h8_homlet_v2_defconfig | 2 - configs/iNet_3F_defconfig | 2 - configs/iNet_3W_defconfig | 2 - configs/iNet_86VS_defconfig | 2 - configs/iNet_D978_rev2_defconfig | 3 +- configs/icnova-a20-swac_defconfig | 3 - configs/inet1_defconfig | 3 - configs/inet86dz_defconfig | 3 +- configs/inet97fv2_defconfig | 3 - configs/inet98v_rev2_defconfig | 3 - configs/inet9f_rev03_defconfig | 3 - configs/inet_q972_defconfig | 3 +- configs/jesurun_q5_defconfig | 1 - configs/mixtile_loftq_defconfig | 2 - configs/mk802_a10s_defconfig | 1 - configs/mk802_defconfig | 1 - configs/orangepi_2_defconfig | 1 - configs/orangepi_plus_defconfig | 2 - configs/orangepi_zero2_defconfig | 1 - configs/orangepi_zero3_defconfig | 1 - configs/parrot_r16_defconfig | 2 - configs/pine_h64_defconfig | 1 - configs/polaroid_mid2407pxe03_defconfig | 3 +- configs/polaroid_mid2809pxe04_defconfig | 3 +- configs/pov_protab2_ips9_defconfig | 3 - configs/q8_a13_tablet_defconfig | 3 - configs/q8_a23_tablet_800x480_defconfig | 3 +- configs/q8_a33_tablet_1024x600_defconfig | 3 +- configs/q8_a33_tablet_800x480_defconfig | 3 +- configs/r7-tv-dongle_defconfig | 1 - configs/sun8i_a23_evb_defconfig | 3 - configs/tanix_tx1_defconfig | 2 + configs/tbs_a711_defconfig | 3 +- configs/teres_i_defconfig | 1 - configs/x96_mate_defconfig | 1 + drivers/gpio/axp_gpio.c | 75 ++----- drivers/gpio/sunxi_gpio.c | 12 +- drivers/mmc/sunxi_mmc.c | 20 +- drivers/phy/allwinner/phy-sun4i-usb.c | 96 +++------ drivers/power/pmic/axp.c | 1 + drivers/power/regulator/Kconfig | 7 + drivers/power/regulator/Makefile | 1 + drivers/power/regulator/axp_drivevbus.c | 57 +++++ drivers/watchdog/sunxi_wdt.c | 11 + include/axp221.h | 4 - include/axp809.h | 4 - include/axp818.h | 4 - include/sunxi_gpio.h | 8 - 124 files changed, 552 insertions(+), 984 deletions(-) create mode 100644 arch/arm/include/asm/arch-sunxi/dram_dw_helpers.h create mode 100644 arch/arm/mach-sunxi/dram_dw_helpers.c create mode 100644 drivers/power/regulator/axp_drivevbus.c