Switch the U8500 Stemmy configuration to the upstream Samsung Janice device tree and enable booting an EFI system from the external SD card.
Add compact DB8500 pinctrl support for applying the default states from the upstream device trees. Extend the PL180 driver to configure Ux500 signal direction and the SD card supply voltages. The upstream device trees describe the SD card supplies through the AB8500 or AB8505 PMIC. Add support for the AUX3 regulator used as vmmc-supply, using the existing AB8500 PMIC driver for register access. Enable fixed regulators for the vqmmc level shifters used on the other supported Samsung boards. Backport the pending Linux DTS fixes for Golden's duplicate regulator name and GPIO key labels. These patches are queued for v7.4 on a locked down branch: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/log/?h=ux500-dts-for-soc The seven supported device trees are packaged into a FIT appended to U-Boot. The Samsung firmware machine ID selects the matching tree at runtime. Codina TMO shares the Codina machine ID and is distinguished by board ID. This keeps the board-specific SD supplies, level-shifter GPIOs and MMCI signal-direction settings in their respective device trees while using a single U-Boot binary. This has been tested successfully to boot PostmarketOS on all the known Sansung Ux500 devices using the EFI boot flow, with some minimal changes to the PostmarketOS to use systemd-boot and compile in the right EFI kernel configs and EFI stub. Signed-off-by: Linus Walleij <[email protected]> --- Changes in v7: - Picked up final ACKs. - Rebased on aug 29 main branch. - Added committ IDs that will be upstream in the Linux kernel once the pull requests go in from the ux500-dts-for-soc branch. https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/log/?h=ux500-dts-for-soc - Link to v6: https://patch.msgid.link/[email protected] Changes in v6: - Stop enabling PL180 power-save mode when gating idle card clocks. - Reformat and group the AB8500 regulator register definitions. - Document the disabled SDIO controller in the U8500 overlay. - Scope multi-DTB FIT settings to Stemmy. - Link to v5: https://patch.msgid.link/[email protected] Changes in v5: - Replace Golden U-Boot overlays with pending Linux DTS backports. - Add a regulator clamp API in a separate preparatory patch. - Select the closest supported initial SD supply voltage. - Support the AB8505 VAUX3 3.05 V selector override. - Recognize normal and low-power VAUX3 states as enabled. - Recognize the alternate Gavini firmware machine ID 3296. - Boot tested on all Ux500 devices including Gavini and Kyle. - Link to v4: https://patch.msgid.link/[email protected] Changes in v4: - Package all seven Stemmy device trees in an appended FIT. - Select the Stemmy device tree using the firmware machine and board IDs. - Print the firmware machine and board IDs for diagnostics. - Link to v3: https://patch.msgid.link/[email protected] Changes in v3: - Disable unsupported DDR mode on the internal eMMC controller. - Gate idle PL180 card clocks and honor clock-disable requests. - Shut down PL180 card supplies at OS handoff. - Skip global EFI boot entries when scanning the external SD card. - Disable the unused WLAN SDIO controller in U-Boot. - Remove the obsolete downstream Stemmy and DBx500 device trees. - Provide a fixed clock for the internal eMMC controller. - Enter fastboot when the volume-down button is held. - Use standard DM helpers to bind the AB8500 AUX3 regulator. - Select 3.3 V supplies for eMMC-only PL180 hosts. - Use Nomadik DT-binding macros in the pinctrl driver. - Link to v2: https://patch.msgid.link/[email protected] Changes in v2: - Use the new mailing list address, no other changes. - Link to v1: https://patch.msgid.link/[email protected] --- Linus Walleij (13): pinctrl: Add compact Nomadik pin controller mmc: arm_pl180: Configure Ux500 signal direction mmc: arm_pl180: Gate idle card clocks power: regulator: Add driver voltage clamp callback mmc: arm_pl180: Set initial supply voltages mmc: arm_pl180: Power down card supplies at OS handoff power: regulator: Add AB8500 AUX3 support arm: u8500: Enable SD card regulators configs: stemmy: Boot EFI from external SD card arm: u8500: Switch Stemmy to upstream Janice device tree ARM: dts: ux500: Make panel regulators have unique names ARM: dts: ux500: Harmonize GPIO key names arm: u8500: Package Stemmy device trees in FIT MAINTAINERS | 2 + arch/arm/Kconfig | 5 + arch/arm/dts/Makefile | 1 - arch/arm/dts/ste-dbx5x0-u-boot.dtsi | 38 - arch/arm/dts/ste-dbx5x0.dtsi | 1144 -------------------- arch/arm/dts/ste-ux500-samsung-stemmy.dts | 36 - arch/arm/dts/u8500-u-boot.dtsi | 31 + board/ste/stemmy/stemmy.c | 77 +- configs/stemmy_defconfig | 10 +- drivers/mmc/arm_pl180_mmci.c | 76 ++ drivers/pinctrl/Kconfig | 7 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-nomadik.c | 230 ++++ drivers/power/pmic/ab8500.c | 1 + drivers/power/regulator/Kconfig | 7 + drivers/power/regulator/Makefile | 1 + drivers/power/regulator/ab8500.c | 171 +++ drivers/power/regulator/regulator-uclass.c | 2 + .../src/arm/st/ste-ux500-samsung-golden.dts | 10 +- include/power/regulator.h | 6 + 20 files changed, 624 insertions(+), 1232 deletions(-) --- base-commit: 3f19667468fb93bcb5702d23aa057b72639e3ac8 change-id: 20260813-ux500-external-sdcard-a49778d77b21 Best regards, -- Linus Walleij <[email protected]>
