]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mmc: Add SPL_MMC_PWRSEQ to fix link issue when building SPL
authorJonas Karlman <jonas@kwiboo.se>
Sat, 27 Jan 2024 17:12:35 +0000 (17:12 +0000)
committerJaehoon Chung <jh80.chung@samsung.com>
Mon, 15 Apr 2024 06:19:12 +0000 (15:19 +0900)
With MMC_PWRSEQ enabled the following link issue may happen when
building SPL and SPL_PWRSEQ is not enabled.

  aarch64-linux-gnu-ld.bfd: drivers/mmc/meson_gx_mmc.o: in function `meson_mmc_probe':
  drivers/mmc/meson_gx_mmc.c:295: undefined reference to `pwrseq_set_power'

Fix this by adding a SPL_MMC_PWRSEQ Kconfig option used to enable mmc
pwrseq support in SPL.

Also add depends on DM_GPIO to fix following link issue:

  aarch64-linux-gnu-ld.bfd: drivers/mmc/mmc-pwrseq.o: in function `mmc_pwrseq_set_power':
  drivers/mmc/mmc-pwrseq.c:26: undefined reference to `gpio_request_by_name'
  aarch64-linux-gnu-ld.bfd: drivers/mmc/mmc-pwrseq.c:29: undefined reference to `dm_gpio_set_value'
  aarch64-linux-gnu-ld.bfd: drivers/mmc/mmc-pwrseq.c:31: undefined reference to `dm_gpio_set_value'

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
drivers/mmc/Kconfig
drivers/mmc/Makefile
drivers/mmc/meson_gx_mmc.c
drivers/mmc/rockchip_dw_mmc.c
include/mmc.h

index 872fcfe3cb5ad3c01248f76d54d606b7d91f86c1..510050f3920a1f713878eea4c027c5c00e4be82f 100644 (file)
@@ -20,11 +20,19 @@ config MMC_WRITE
 
 config MMC_PWRSEQ
        bool "HW reset support for eMMC"
-       depends on PWRSEQ
+       depends on PWRSEQ && DM_GPIO
        help
-         Ths select Hardware reset support aka pwrseq-emmc for eMMC
+         This select Hardware reset support aka pwrseq-emmc for eMMC
          devices.
 
+config SPL_MMC_PWRSEQ
+       bool "HW reset support for eMMC in SPL"
+       depends on SPL_PWRSEQ && SPL_DM_GPIO
+       default y if MMC_PWRSEQ
+       help
+         This select Hardware reset support aka pwrseq-emmc for eMMC
+         devices in SPL.
+
 config MMC_BROKEN_CD
        bool "Poll for broken card detection case"
        help
index 3374321e290c37f4f179fffe78ea28a9e384f665..72c3fb66ce00b17b833a8c94f779d1cc932d16c1 100644 (file)
@@ -11,7 +11,7 @@ obj-$(CONFIG_$(SPL_TPL_)BOOTSTD) += mmc_bootdev.o
 endif
 
 obj-$(CONFIG_$(SPL_TPL_)MMC_WRITE) += mmc_write.o
-obj-$(CONFIG_MMC_PWRSEQ) += mmc-pwrseq.o
+obj-$(CONFIG_$(SPL_)MMC_PWRSEQ) += mmc-pwrseq.o
 obj-$(CONFIG_MMC_SDHCI_ADMA_HELPERS) += sdhci-adma.o
 
 ifndef CONFIG_$(SPL_)BLK
index fcf4f03d1e245acfc45009041dbfde481bb9826a..0825c0a2a8382b16ea82396e02ce4c5646867359 100644 (file)
@@ -288,7 +288,7 @@ static int meson_mmc_probe(struct udevice *dev)
 
        mmc_set_clock(mmc, cfg->f_min, MMC_CLK_ENABLE);
 
-#ifdef CONFIG_MMC_PWRSEQ
+#if CONFIG_IS_ENABLED(MMC_PWRSEQ)
        /* Enable power if needed */
        ret = mmc_pwrseq_get_power(dev, cfg);
        if (!ret) {
index 72c820ee63308ae7999df94acb7012d13699cbb3..ad4529d6afa8a027dfb1abe8497a49aee48a4174 100644 (file)
@@ -145,7 +145,7 @@ static int rockchip_dwmmc_probe(struct udevice *dev)
 
        host->fifo_mode = priv->fifo_mode;
 
-#ifdef CONFIG_MMC_PWRSEQ
+#if CONFIG_IS_ENABLED(MMC_PWRSEQ)
        /* Enable power if needed */
        ret = mmc_pwrseq_get_power(dev, &plat->cfg);
        if (!ret) {
index 1022db3ffa7c556b87c632eed0cbe4910d51c64a..9aef31ea5deb5a93418e4166c1e024af4378864a 100644 (file)
@@ -590,7 +590,7 @@ struct mmc_config {
        uint f_max;
        uint b_max;
        unsigned char part_type;
-#ifdef CONFIG_MMC_PWRSEQ
+#if CONFIG_IS_ENABLED(MMC_PWRSEQ)
        struct udevice *pwr_dev;
 #endif
 };
@@ -808,7 +808,7 @@ int mmc_deinit(struct mmc *mmc);
  */
 int mmc_of_parse(struct udevice *dev, struct mmc_config *cfg);
 
-#ifdef CONFIG_MMC_PWRSEQ
+#if CONFIG_IS_ENABLED(MMC_PWRSEQ)
 /**
  * mmc_pwrseq_get_power() - get a power device from device tree
  *