Merge branch 'fixes' into next
This commit is contained in:
commit
92f07e5c35
@ -240,28 +240,21 @@ static void sdhci_am654_write_b(struct sdhci_host *host, u8 val, int reg)
|
|||||||
writeb(val, host->ioaddr + reg);
|
writeb(val, host->ioaddr + reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sdhci_ops sdhci_am654_ops = {
|
static int sdhci_am654_execute_tuning(struct mmc_host *mmc, u32 opcode)
|
||||||
.get_max_clock = sdhci_pltfm_clk_get_max_clock,
|
{
|
||||||
.get_timeout_clock = sdhci_pltfm_clk_get_max_clock,
|
struct sdhci_host *host = mmc_priv(mmc);
|
||||||
.set_uhs_signaling = sdhci_set_uhs_signaling,
|
int err = sdhci_execute_tuning(mmc, opcode);
|
||||||
.set_bus_width = sdhci_set_bus_width,
|
|
||||||
.set_power = sdhci_am654_set_power,
|
|
||||||
.set_clock = sdhci_am654_set_clock,
|
|
||||||
.write_b = sdhci_am654_write_b,
|
|
||||||
.reset = sdhci_reset,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct sdhci_pltfm_data sdhci_am654_pdata = {
|
if (err)
|
||||||
.ops = &sdhci_am654_ops,
|
return err;
|
||||||
.quirks = SDHCI_QUIRK_INVERTED_WRITE_PROTECT |
|
/*
|
||||||
SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
|
* Tuning data remains in the buffer after tuning.
|
||||||
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
|
* Do a command and data reset to get rid of it
|
||||||
};
|
*/
|
||||||
|
sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA);
|
||||||
|
|
||||||
static const struct sdhci_am654_driver_data sdhci_am654_drvdata = {
|
return 0;
|
||||||
.pdata = &sdhci_am654_pdata,
|
}
|
||||||
.flags = IOMUX_PRESENT | FREQSEL_2_BIT | STRBSEL_4_BIT | DLL_PRESENT,
|
|
||||||
};
|
|
||||||
|
|
||||||
static u32 sdhci_am654_cqhci_irq(struct sdhci_host *host, u32 intmask)
|
static u32 sdhci_am654_cqhci_irq(struct sdhci_host *host, u32 intmask)
|
||||||
{
|
{
|
||||||
@ -276,6 +269,29 @@ static u32 sdhci_am654_cqhci_irq(struct sdhci_host *host, u32 intmask)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct sdhci_ops sdhci_am654_ops = {
|
||||||
|
.get_max_clock = sdhci_pltfm_clk_get_max_clock,
|
||||||
|
.get_timeout_clock = sdhci_pltfm_clk_get_max_clock,
|
||||||
|
.set_uhs_signaling = sdhci_set_uhs_signaling,
|
||||||
|
.set_bus_width = sdhci_set_bus_width,
|
||||||
|
.set_power = sdhci_am654_set_power,
|
||||||
|
.set_clock = sdhci_am654_set_clock,
|
||||||
|
.write_b = sdhci_am654_write_b,
|
||||||
|
.irq = sdhci_am654_cqhci_irq,
|
||||||
|
.reset = sdhci_reset,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct sdhci_pltfm_data sdhci_am654_pdata = {
|
||||||
|
.ops = &sdhci_am654_ops,
|
||||||
|
.quirks = SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
|
||||||
|
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct sdhci_am654_driver_data sdhci_am654_drvdata = {
|
||||||
|
.pdata = &sdhci_am654_pdata,
|
||||||
|
.flags = IOMUX_PRESENT | FREQSEL_2_BIT | STRBSEL_4_BIT | DLL_PRESENT,
|
||||||
|
};
|
||||||
|
|
||||||
static struct sdhci_ops sdhci_j721e_8bit_ops = {
|
static struct sdhci_ops sdhci_j721e_8bit_ops = {
|
||||||
.get_max_clock = sdhci_pltfm_clk_get_max_clock,
|
.get_max_clock = sdhci_pltfm_clk_get_max_clock,
|
||||||
.get_timeout_clock = sdhci_pltfm_clk_get_max_clock,
|
.get_timeout_clock = sdhci_pltfm_clk_get_max_clock,
|
||||||
@ -290,8 +306,7 @@ static struct sdhci_ops sdhci_j721e_8bit_ops = {
|
|||||||
|
|
||||||
static const struct sdhci_pltfm_data sdhci_j721e_8bit_pdata = {
|
static const struct sdhci_pltfm_data sdhci_j721e_8bit_pdata = {
|
||||||
.ops = &sdhci_j721e_8bit_ops,
|
.ops = &sdhci_j721e_8bit_ops,
|
||||||
.quirks = SDHCI_QUIRK_INVERTED_WRITE_PROTECT |
|
.quirks = SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
|
||||||
SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
|
|
||||||
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
|
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -314,8 +329,7 @@ static struct sdhci_ops sdhci_j721e_4bit_ops = {
|
|||||||
|
|
||||||
static const struct sdhci_pltfm_data sdhci_j721e_4bit_pdata = {
|
static const struct sdhci_pltfm_data sdhci_j721e_4bit_pdata = {
|
||||||
.ops = &sdhci_j721e_4bit_ops,
|
.ops = &sdhci_j721e_4bit_ops,
|
||||||
.quirks = SDHCI_QUIRK_INVERTED_WRITE_PROTECT |
|
.quirks = SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
|
||||||
SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12,
|
|
||||||
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
|
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -547,6 +561,8 @@ static int sdhci_am654_probe(struct platform_device *pdev)
|
|||||||
goto pm_runtime_put;
|
goto pm_runtime_put;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
host->mmc_host_ops.execute_tuning = sdhci_am654_execute_tuning;
|
||||||
|
|
||||||
ret = sdhci_am654_init(host);
|
ret = sdhci_am654_init(host);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto pm_runtime_put;
|
goto pm_runtime_put;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user