fl2440添加SD卡驱动

来源:互联网 发布:js object clone 编辑:程序博客网 时间:2024/06/05 14:15

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卡里面的内容
这里写图片描述

0 0
原创粉丝点击