Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b495d4a authored by Veerabhadrarao Badiganti's avatar Veerabhadrarao Badiganti
Browse files

mmc: host: sdhci-msm: Enable SDHC FIFO explicitly



Enable SDHC FIFO explicitly by disabling the alternative FIFO.

The boot-loaders might use alternative FIFO instead of HC FIFO.
And the vendor specific register which has this setting won't get
reset with controller reset. So the FIFO setting done by the
bootloader would remain as it is unless its explicitly cleared.
Without clearing this setting, mmc driver can't make use of regular
FIFO mode.

Change-Id: I8c7ff9b20c33518fb9013cce2f9284117fc2ce3c
Signed-off-by: default avatarVeerabhadrarao Badiganti <vbadigan@codeaurora.org>
parent 138d7bb7
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -146,6 +146,7 @@
#define CORE_START_CDC_TRAFFIC		(1 << 6)

#define CORE_PWRSAVE_DLL	(1 << 3)
#define CORE_FIFO_ALT_EN	(1 << 10)
#define CORE_CMDEN_HS400_INPUT_MASK_CNT (1 << 13)

#define CORE_DDR_CAL_EN		(1 << 0)
@@ -4518,6 +4519,14 @@ static int sdhci_msm_probe(struct platform_device *pdev)
	writel_relaxed(CORE_VENDOR_SPEC_POR_VAL,
	host->ioaddr + msm_host_offset->CORE_VENDOR_SPEC);

	/*
	 * Ensure SDHCI FIFO is enabled by disabling alternative FIFO
	 */
	writel_relaxed((readl_relaxed(host->ioaddr +
			msm_host_offset->CORE_VENDOR_SPEC3) &
			~CORE_FIFO_ALT_EN), host->ioaddr +
			msm_host_offset->CORE_VENDOR_SPEC3);

	if (!msm_host->mci_removed) {
		/* Set HC_MODE_EN bit in HC_MODE register */
		writel_relaxed(HC_MODE_EN, (msm_host->core_mem + CORE_HC_MODE));