[PATCH v6 00/13] arm: u8500: Enable upstream DT based SD card boot
Linus Walleij <[email protected]>
| Newsgroups | org.u-boot-project.lists.u-boot |
|---|---|
| Message-ID | <[email protected]> |
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 pending but I am also the Ux500 maintainer upstream and I will apply them. I put some backporting placeholders into the patches since I can't apply v7.4 material before v7.3-rc1 is out in a week. (Then I can provide hashes, if this is necessary.) 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 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: 0b581a9612e46310ee52bf8359165950d38b2a2b change-id: 20260813-ux500-external-sdcard-a49778d77b21 Best regards, -- Linus Walleij <[email protected]>