mmc: ipq6018: fix for mmc iopad issue

Change-Id: I71353b93ef7c62bfcdff2f9207bb26bcdd882c88
Signed-off-by: Antony Arun T <antothom@codeaurora.org>
This commit is contained in:
Antony Arun T 2019-05-27 21:36:57 +05:30
parent d6c1d173ed
commit fb27ca9881
6 changed files with 28 additions and 0 deletions

View file

@ -172,4 +172,9 @@ extern const add_node_t add_fdt_node[];
unsigned int get_board_index(unsigned int machid);
void reset_crashdump(void);
void ipq_fdt_fixup_socinfo(void *blob);
__weak void mmc_iopad_config(struct sdhci_host *host)
{
return;
}
#endif

View file

@ -236,6 +236,15 @@ void emmc_clock_config()
udelay(10);
}
void mmc_iopad_config(struct sdhci_host *host)
{
u32 val;
val = sdhci_readb(host, SDHCI_VENDOR_IOPAD);
/*set bit 15 & 16*/
val |= 0x18000;
writel(val, host->ioaddr + SDHCI_VENDOR_IOPAD);
}
void emmc_clock_disable(void)
{
/* Clear divider */

View file

@ -222,4 +222,9 @@ void reset_crashdump(void);
void ipq_fdt_fixup_socinfo(void *blob);
void board_pci_init(int id);
void board_pcie_clock_init(int id);
__weak void mmc_iopad_config(struct sdhci_host *host)
{
return;
}
#endif /* _IPQ806X_H_ */

View file

@ -304,4 +304,8 @@ __weak int ipq_get_tz_version(char *version_name, int buf_size)
return 1;
}
__weak void mmc_iopad_config(struct sdhci_host *host)
{
return;
}
#endif /* _IPQ807X_H_ */

View file

@ -673,6 +673,8 @@ int add_sdhci(struct sdhci_host *host, u32 max_clk, u32 min_clk)
sdhci_reset(host, SDHCI_RESET_ALL);
mmc_iopad_config(host);
host->mmc = mmc_create(&host->cfg, host);
if (host->mmc == NULL) {
printf("%s: mmc create fail!\n", __func__);

View file

@ -203,6 +203,9 @@
#define SDHCI_MAX_DIV_SPEC_200 256
#define SDHCI_MAX_DIV_SPEC_300 2046
/*Vendor Specific register*/
#define SDHCI_VENDOR_IOPAD 0x20C
/*
* quirks
*/