fl2440添加SD卡驅動

fl2440添加SD卡驅動

linux中對s3c2440的驅動已經完善得比較好,如果需要使用相關驅動,我們只需要在make menuconfig中選上相應的配置選項,並且稍稍修改內核源碼就可以使用相關驅動。SD卡的驅動也不例外

make menuconfig 選項

   Device Drivers  ---> 
        <*> MMC/SD/SDIO card support  --->  
                     <*>   MMC block device driver 
                     [*]     Use bounce buffer for simple hosts 
                     <*>   SDIO UART/GPS class support   
                     <*>   Secure Digital Host Controller Interface support 
                     <*>   MMC/SD/SDIO over SPI  
                     <*>   Samsung S3C SD/MMC Card Interface support  

修改內核源碼

mach-smdk2440.c

在 kernel/arch/arm/mach-s3c2440/mach-smdk2440.c文件中添加SD卡平臺設備,如下所示:
static struct platform_device *smdk2440_devices[] __initdata = {
&s3c_device_ohci,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_dm9000,
/* 添加下SD卡 的設備成員 */
&s3c_device_sdi,/* suport SD card device,Add by liwannneg 2017-4-16 12:38:35 */
};

s3cmci.c

在./drivers/mmc/host/s3cmci.c文件中修改s3cmci_probe函數,設置檢測SD卡插入的中斷號,及配置響應的引腳爲中斷功能。如下所示:
static int __devinit s3cmci_probe(struct platform_device *pdev)
{

// host->irq_cd = gpio_to_irq(host->pdata->gpio_detect);
host->irq_cd = IRQ_EINT18;//sd卡中斷號爲18
s3c2410_gpio_cfgpin(S3C2410_GPG(10),S3C2410_GPG10_EINT18);


}

根據FL2440的原理圖,我們將SD卡插入的中斷號設置爲18,其原理圖如下所示:
這裏寫圖片描述
NCD PIN腳是用於檢測SD卡插入的引腳,由圖可以看出 NCD接的是 EINT18 號外部中斷。

重新編譯內核

完成以上修改之後,重新編譯內核並燒錄到開發板,在關機狀態下插入SD卡之後開機。

這裏寫圖片描述
可以在dev目錄下看到sd卡的設備文件
這裏寫圖片描述
現在列查看sd卡里面的內容
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章