http://cafe.naver.com/embeddedcrazyboys
http://www.mangoboard.com/
소스 수정 부분
u-boot소스에서
drivers/mmc/s3c_hsmmc.c 파일에서 아래 함수를 수정 했습니다.
static void sdhci_change_clock(struct sdhci_host *host, uint clock)
{
int div;
u16 clk;
unsigned long timeout;
u32 ctrl2;
/* Set SCLK_MMC from SYSCON as a clock source */
ctrl2 = readl(host->ioaddr + S3C_SDHCI_CONTROL2);
ctrl2 &= ~(3 << S3C_SDHCI_CTRL2_SELBASECLK_
ctrl2 |= 2 << S3C_SDHCI_CTRL2_SELBASECLK_
writew(ctrl2, host->ioaddr + S3C_SDHCI_CONTROL2);
writew(0, host->ioaddr + SDHCI_CLOCK_CONTROL);
/* XXX: we assume that clock is between 40MHz and 50MHz */
if (clock == 0)
goto out;
else if (clock <= 400000)
div = 0x40;
else if (clock <= 20000000)
div = 2;
else if (clock <= 26000000)
div = 1;
else
div = 2;//crazyboys 131213 0 -> 2
댓글 없음:
댓글 쓰기