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

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

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

1308行,由mmc_host取得s3cmci_host。

1313行,讀取SDICON即SDI控制寄存器的值,保存在mci_con中。

1316-1328行,如果ios->power_mode為MMC_POWER_ON或MMC_POWER_UP,則執(zhí)行這個(gè)分支。

S3C_GPIO_SFN宏定義在arch/arm/plat-samsung/include/plat/gpio-cfg.h文件中:

捕獲.PNG

S3C_GPIO_PULL_NONE宏定義在arch/arm/plat-samsung/include/plat/gpio-cfg.h文件中:

捕獲.PNG

s3c_gpio_cfgall_range函數(shù)定義在drivers/gpio/gpio-samsung.c文件中:

捕獲.PNG

可以看到,s3c_gpio_cfgall_range函數(shù)設(shè)置從GPE5開(kāi)始的6個(gè)GPIO,即GPE5、GPE6、GPE7、GPE8、GPE9、GPE10。使用參數(shù)cfg設(shè)置GPECON寄存器,使用參數(shù)pull設(shè)置GPEUP寄存器。

GPECON寄存器對(duì)應(yīng)的位置被設(shè)置為01,即使能相關(guān)SDI功能。

1330-1341行,如果ios->power_mode為MMC_POWER_OFF或者default,則執(zhí)行這個(gè)分支。

1332行,調(diào)用gpio_direction_output(S3C2410_GPE(5),0)關(guān)閉SDI時(shí)鐘。

1335行,mci_con |=S3C2440_SDICON_SDRESET,根據(jù)S3C2440數(shù)據(jù)手冊(cè),這句用于reset整個(gè)sd/mmc模塊。

1343行,調(diào)用s3cmci_set_clk(host,ios)設(shè)置時(shí)鐘,s3cmci_set_clk定義在drivers/mmc/host/s3cmci.c文件中:

捕獲.PNG

1346-1349行,如果ios->clock不為0,使能時(shí)鐘,否則禁用時(shí)鐘。

1351行,將mci_con寫(xiě)回SDICON寄存器。

1361行,用ios->bus_width設(shè)置數(shù)據(jù)總線寬度host->bus_width。

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

捕獲.PNG

struct mmc_request代表一個(gè)request,該結(jié)構(gòu)體定義在include/linux/mmc/core.h文件中:

捕獲.PNG

1271行,將host->status設(shè)置為"mmcrequest",host->status主要用于記錄request處理所處的階段及狀態(tài),方便調(diào)試使用。

1272行,設(shè)置host->cmd_is_stop為0,從字面上理解,我認(rèn)為host->cmd_is_stop代表command是否是stop命令(即有一個(gè)command是stop),0表示不是stop命令。

1273行,將mmc_requestmrp保存在host->mrq中,方便以后使用。

1275-1280行,如果卡不存在,則調(diào)用mmc_request_done(mmc,mrq)結(jié)束這次request處理,否則,調(diào)用s3cmci_send_request(mmc)。

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

捕獲.PNG

捕獲.PNG

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