MX25上SD卡的插拨检测机制

本文介绍了飞思卡尔MX25开发板中SD卡的热插拔检测机制,详细阐述了如何通过申请中断号、设置中断触发类型、初始化自旋锁和工作队列来实现检测功能。当SD卡插入或移除时,中断处理函数会调整中断触发类型,并通过定时器和工作队列进行相应的操作,确保系统的稳定运行。
摘要由CSDN通过智能技术生成

飞思卡尔开发板留有可插拨的SD卡卡槽,BSP包中提供了热插拨的检测机制。在sdhci_probe_slot函数中,gpio_sdhc_active函数初始化SD卡相关的GPIO口,包括SD卡检测脚的初始化。下面的程序实现SD卡检测中断号的申请,以及中断的触发方式:

host->detect_irq = platform_get_irq(pdev, 1);//申请卡检测中断号

         if (!host->detect_irq)

         {

                   host->flags &= ~SDHCI_CD_PRESENT;

                   if ((pdev->id >= 0) && (pdev->id < MXC_SDHCI_NUM))

                            mxc_fix_chips[pdev->id] = chip;

                   goto no_detect_irq;

         }

         do

         {

                   ret = host->plat_data->status(host->mmc->parent);//获取SD卡的存在状态

                   if (ret)//根据当前SD卡存在状态设置卡检测中断触发类型

                            set_irq_type(host->detect_irq, IRQF_TRIGGER_FALLING);

                   else

                            set_irq_type(host->detect_irq, IRQF_TRIGGER_RISING);

         } while (ret != host->plat_data->status(host->mmc->parent));

 

         ret = host->plat_data->status(host->mmc->parent);

程序首先使用platform_get_irq

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值