linux如何配置emmc和sd卡的各种速率

一、emmc

emmc支持多种速率模式,这些模式均可以在dts中进行配置

1、legacy 模式

在这里插入图片描述
通过上面的代码可以看出,由于大部分的卡都是支持HS_52的,所以除非强制修改代码,修改card_type值为不支持HS_52,否则默认都是不进入legacy模式,而是进入high speed模式

2、high speed 模式

sdhci-caps-mask = <0x7 0x0>; // DDR50-SDR104-SDR50
cap-mmc-highspeed;

注意:添加sdhci-caps-mask 的原因是因为:
在这里插入图片描述
在这里插入图片描述

在代码中会判断host->cap1是否支持SDR104,而如果probe中手动传入cpas1的值的话,host->cap1的值是通过读取寄存器来获取的,同时会通过sdhci-caps-mask 来进行屏蔽。
所以需要在dts中添加sdhci-caps-mask ,屏蔽掉SDR104,这样就不会进入HS200了,否则代码会强制进入HS200

如果正常开机会有打印:

mmc0: new high speed MMC card at address 0001

3、DDR52模式

(1)dts中添加

sdhci-caps-mask = <0x6 0x0>; // DDR50-SDR104-SDR50
mmc-ddr-1_8v;

如果正常开机会有如下打印:

new DDR MMC card at address 0001

4、HS200模式

mmc-hs200-1_8v

如果正常开机会有如下打印:

mmc0: new HS200 MMC card at address 0001

5、HS400模式

mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-hs400-1_8v;

如果正常开机会有如下打印:

mmc0: new HS400 MMC card at address 0001

6、HS400es模式

mmc-hs400-1_8v;
mmc-hs400-enhanced-strobe

如果正常开机会有如下打印:

mmc0: new HS400 Enhanced strobe MMC card at address 0001

二、SD卡

1、default模式
2、high speed模式

sdhci-caps-mask = <0x7 0x0>; // DDR50-SDR104-SDR50
cap-sd-highspeed;
mmc1: new high speed SDHC card at address aaaa

3、SDR12
4、SDR25
5、SDR50

sdhci-caps-mask = <0x6 0x0>; // DDR50-SDR104-SDR50
sd-uhs-sdr50;

6、SDR104

sd-uhs-sdr104;

7、DDR50

sdhci-caps-mask = <0x3 0x0>; // DDR50-SDR104-SDR50
sd-uhs-ddr50;
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值