rockchip: dwmmc: add handling for u-boot, spl-fifo-mode
authorHeiko Stuebner <heiko.stuebner@theobroma-systems.com>
Tue, 19 Nov 2019 11:04:01 +0000 (12:04 +0100)
committerKever Yang <kever.yang@rock-chips.com>
Sat, 23 Nov 2019 15:41:44 +0000 (23:41 +0800)
Rockchips dwmmc controllers can't do dma to non-ddr addresses,
like for example the soc-internal sram but during boot parts of
TrustedFirmware need to be placed there from the read FIT image.

So add handling for a u-boot,spl-fifo-mode to not put the mmc
controllers into fifo mode for all time.

The regular fifo-mode property still takes precedent and only
if not set do we check for the spl-specific property.

Suggested-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Signed-off-by: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
drivers/mmc/rockchip_dw_mmc.c

index b2a1201631a5cb2bfd9c7ee5ee73b265c3738bb1..a0e1be8794dc77fecf577c00960a2c4bd8b9697b 100644 (file)
@@ -72,6 +72,11 @@ static int rockchip_dwmmc_ofdata_to_platdata(struct udevice *dev)
                return -EINVAL;
        priv->fifo_mode = dev_read_bool(dev, "fifo-mode");
 
+#ifdef CONFIG_SPL_BUILD
+       if (!priv->fifo_mode)
+               priv->fifo_mode = dev_read_bool(dev, "u-boot,spl-fifo-mode");
+#endif
+
        /*
         * 'clock-freq-min-max' is deprecated
         * (see https://github.com/torvalds/linux/commit/b023030f10573de738bbe8df63d43acab64c9f7b)