问题描述
下面为sdk的dwcmshc_k230_sdhci_set_clock函数,为什么要在sdhci_calc_clk计算出clk之后,强行 clk |= SDHCI_PROG_CLOCK_MODE;呢?
这会导致频率计算公式固定为Base clock *M/N,为什么要这么做呢?
另外上板出现了mmc0 tuning failed,会是这个原因导致的吗?
static void dwcmshc_k230_sdhci_set_clock(struct sdhci_host *host, unsigned int clock)
{
u16 clk;
host->mmc->actual_clock = 0;
sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL);
if (clock == 0)
return;
clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock);
clk |= SDHCI_PROG_CLOCK_MODE;
sdhci_enable_clk(host, clk);
}
@wjx 您好,请问这个驱动的代码是您写的吗,这行代码的作用您知道吗
@wjx对了,还想问下有没有usbphy设备和寄存器的详细介绍?