
On 3/12/22 10:23, Jagan Teki wrote:
On Wed, Feb 23, 2022 at 6:37 PM Johan Jonker jbx6244@gmail.com wrote:
From: Paweł Jarosz paweljarosz3691@gmail.com
dw_mmc supports two transfer modes in u-boot: IDMA and FIFO. This patch adds auto detection of transfer mode and eliminates the need to set this in host config struct. Allow handling for a u-boot,spl-fifo-mode host property in the logic to not put the MMC controllers into FIFO mode for all time.
Does it mean fifo-mode property is not useful in SPI and U-Boot proper? If yes better drop that change as part of this patch.
This is about setting the fifo-mode for rk3066/rk3188 without DT as these early models don't seem to have IDMA.
Handling of the fifo_mode variable is still needed for the Rockchip exception that needs to be included in the logic.
rockchip: dwmmc: add handling for u-boot, spl-fifo-mode https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/commit/c8dd0e42d7...
We could remove normal fifo-mode parsing, but as this is a generic file for multiple SoC families I'm a little bit reluctant to change that for other drivers then Rockchip.
Otherwise patch V1 does the job without changing dw_mmc.c
Please advise what direction we should go or what changes should be made.
Kind regards,
Johan Jonker
Signed-off-by: Paweł Jarosz paweljarosz3691@gmail.com Signed-off-by: Johan Jonker jbx6244@gmail.com
Changed V2: use bitfield_extract remove use_dma variable include fifo_mode from host in logic
drivers/mmc/dw_mmc.c | 6 ++++++ include/dwmmc.h | 5 +++++ 2 files changed, 11 insertions(+)
diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c index a949dad5..7e2cd5ed 100644 --- a/drivers/mmc/dw_mmc.c +++ b/drivers/mmc/dw_mmc.c @@ -536,6 +536,12 @@ static int dwmci_init(struct mmc *mmc) return -EIO; }
if (!host->fifo_mode &&
SDMMC_GET_TRANS_MODE(dwmci_readl(host, DWMCI_HCON)) == DMA_INTERFACE_IDMA)
host->fifo_mode = 0;
else
host->fifo_mode = 1;
fifo_mode is bool so use true/false.
Jagan.