日期:2014-05-16 浏览次数:20816 次
static struct resource s3c_hsmmc_resource[] = {
[0] = {
.start = S3C_PA_HSMMC0,
.end = S3C_PA_HSMMC0 + S3C_SZ_HSMMC - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_HSMMC0,
.end = IRQ_HSMMC0,
.flags = IORESOURCE_IRQ,
}
};
sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman s3c-sdhci s3c-sdhci.0: clock source 0: hsmmc (133000000 Hz) s3c-sdhci s3c-sdhci.0: clock source 1: hsmmc (133000000 Hz) s3c-sdhci s3c-sdhci.0: clock source 2: mmc_bus (24000000 Hz) s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080 mmc0: SDHCI controller on samsung-hsmmc [s3c-sdhci.0] using ADMA s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080 s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080
s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080 s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080 s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080 s3c6410_setup_sdhci0_cfg_card: CTRL 2=c0004100, 3=80808080
static inline void s3c6410_default_sdhci0(void)
{
s3c_hsmmc0_def_platdata.clocks = s3c6410_hsmmc_clksrcs;
s3c_hsmmc0_def_platdata.cfg_gpio = s3c6410_setup_sdhci0_cfg_gpio;
s3c_hsmmc0_def_platdata.cfg_card = s3c6410_setup_sdhci0_cfg_card;
}
static struct clk clk_hsmmc_DOUTmpll_mmc0 = {
.name = "sclk_DOUTmpll_mmc0",
.id = -1,
.parent = &clk_mpll_uart,
.enable = s3c_clkcon_enable,
.ctrlbit = S3C_CLKCON_SCLK_MMC0,
.get_rate = s3c6410_getrate_DOUTmpll_hsmmc_clk,
.usage = 0,
};
printk(KERN_INFO "[in_probe]: %s.%d: at 0x%p with irq %d. clk src:",pdev->name, pdev->id, host->ioaddr, host->irq);
for (i=0; i<2; i++) {
if (!IS_ERR(sc->clk_bus[i]))
printk(" %s", (sc->clk_bus[i])->name);
}
printk("\n");
在drivers/mmc/host/sdhci.c的irqreturn_t sdhci_irq函数中加入
printk(KERN_ALERT "in sdhci_irq\n");
printk(KERN_ALERT "*** %s got interrupt: 0x%08x\n",mmc_hostname(host->mmc), intmask);