《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 其他 > Linux設(shè)備驅(qū)動程序架構(gòu)分析之MMC/SD(七)

Linux設(shè)備驅(qū)動程序架構(gòu)分析之MMC/SD(七)

2015-04-29
關(guān)鍵詞: s3cmci_host

1374行,由mmc_host取得s3cmci_host

1375行,取得s3c24xx_mci_pdata,其它保存著SDI的平臺數(shù)據(jù)。

1378行,如果s3c24xx_mci_pdata.no_wprotect為1,表明沒有寫保護開關(guān),直接退出。例如MMC卡就沒有寫保護開關(guān),只有SD卡才有寫保護開關(guān)。

1381行,讀取gpio_wprotect引腳電平,對于Mini2440,即GPH8引腳。

1382行,與pdata->wprotect_invert執(zhí)行異或操作,即反轉(zhuǎn)上步得到GPH8引腳電平值。

s3cmci_card_present函數(shù)定義在drivers/mmc/host/s3cmci.c文件中:

捕獲.PNG

1256行,由mmc_host取得s3cmci_host。

1257行,取得s3c24xx_mci_pdata,其它保存著SDI的平臺數(shù)據(jù)。

1260行,如果s3c24xx_mci_pdata.no_detect為1,表明沒有卡探測引腳,直接退出。

1263行,讀取gpio_detect引腳電平值,對于Mini2440,即GPG8引腳。

1264行,與pdata->detect_invert進行異或操作,即反轉(zhuǎn)上步得到的GPG8引腳電平值。

s3cmci_enable_sdio_irq函數(shù)定義在drivers/mmc/host/s3cmci.c文件中:

捕獲.PNG

1389行,由mmc_host取得s3cmci_host。

1395行,讀取SDICON即SDI控制寄存器的內(nèi)容,保存在con中。

1396行,我覺得這一行不應(yīng)該存在,因為這一行將參數(shù)enable的值賦值給host->sdio_irqen,但是1398行又接著判斷enable與host->sdio_irqen是否相等,如果相等就退出了。

1401-1408行,enable為1,使能SDIO中斷。

1402行,S3C2410_SDICON_SDIOIRQ定義在drivers/mmc/host/s3cmci.c文件中:

57#define S3C2410_SDICON_SDIOIRQ      (1 << 3)

對照S3C2440 Datasheet,可知這個宏用來設(shè)置SDICON寄存器的第3位,該位決定是否接收SDIO中斷。

1403行,S3C2410_SDIIMSK_SDIOIRQ定義在drivers/mmc/host/s3cmci.c文件中:

105#define S3C2410_SDIIMSK_SDIOIRQ     (1 << 12)

對照S3C2440 Datasheet,可知這個宏用來設(shè)置SDIIntMsk寄存器的第13位,該位決定當(dāng)read wait request發(fā)生時,SDI是否產(chǎn)生一個中斷。

enable_imask函數(shù)定義在drivers/mmc/host/s3cmci.c文件中:

捕獲.PNG

該函數(shù)用來設(shè)置SDIIntMsk寄存器。

1409-1416行,enable為0,禁用SDIO中斷。

1419行,用新的con設(shè)置SDICON即SDI控制寄存器。

s3cmci_set_ios函數(shù)定義在drivers/mmc/host/s3cmci.c文件中:

捕獲.PNG

捕獲.PNG

1306行,參數(shù)ios是structmmc_ios類型指針。struct mmc_ios定義在include/linux/mmc/host.h文件中:

捕獲.PNG

捕獲.PNG

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。