SD卡移植

本文介绍如何在mini6410开发板上配置SDIO控制器以支持SD卡和SDIO WiFi模块。主要内容包括修改mach-mini6410.c文件添加控制器,调整hsmmc1接口设置,配置内核选项以及实现热插拔功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在mach-mini6410.c中添加sdio控制器:

static struct platform_device *mini6410_devices[] __initdata = {
    &s3c_device_hsmmc0,
    &s3c_device_hsmmc1,
};

同时,由于我们的开发板硬件上面的hsmmc0接口连接的是SD卡,而SDIO WIFI连接在hsmmc1上面,但是根据Tiny6410-1107.pdf,实际上只有hsmmc0接口引出了CD检测线。所以,对于hsmmc1,必须忽略他的检测线,否则会影响到hsmmc0的正常使用,打开/arch/arm/plat-samsung/dev-hsmmc1.c,修改:

struct s3c_sdhci_platdata s3c_hsmmc1_def_platdata = {
    .max_width  = 4,
    .host_caps  = (MMC_CAP_4_BIT_DATA |
               MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED),
    .clk_type   = S3C_SDHCI_CLK_DIV_INTERNAL,
    .cd_type    = S3C_SDHCI_CD_PERMANENT,/* 添加这一行 */
};

修改内核配置:

-> Device Drivers                                                                                            
    -> MMC/SD/SDIO card support
         【*】   MMC block device driver
         (8)     Number of minors per block device
         【*】  Use bounce buffer for simple hosts

编译完成后,可以看到
/dev/mmcblk0

热插拔:
在/etc/mdev.conf文件中添加:

mmcblk0p1   0:0 777 * /etc/hotplug_shell/sdcard_hotplug.sh

创建sdcard_hotplug.sh脚本,内容为:

#!/bin/sh

if [ $ACTION = "add" ];
then
    echo "SD CARD Insert.Mounting at /mnt/sd.";
    mount -t vfat -o codepage=936,iocharset=utf8 /dev/$MDEV /mnt/sd;
else
    echo "SD CARD Disconnected.Unmount /mnt/sd.";
    umount /mnt/sd;
fi

最后添加执行权限即可:
chmod +x sdcard_hotplug.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值