1. 说明
sdhci-msm是指高通的mmc host,其使用了标准SDHC标准。故可以使用前面说的《host(第二章)——sdhci》和《host(第三章)——sdhci-pltfm说明》的接口。
后续代码以msm8916平台的host实现以及linux 4.14版本中的sdhci-msm的实现为例,这部分代码都是开源的。
由于有一些寄存器内容需要文档的支撑但我们并没有,所以这里只是简单地介绍一下设计思想和代码结构。
源码:drivers\mmc\host\sdhci-msm.c
2. dtsi节点
aliases {
sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
};
sdhc_1: sdhci@07824000 {
compatible = "qcom,sdhci-msm-v4";
// 会和sdhci-msm.c的driver匹配
reg = <0x07824900 0x11c>, <0x07824000 0x800>;
reg-names = "hc_mem", "core_mem";
// 两部分寄存器,hc_mem表示sdhci使用的寄存器,core_mem表示msm host独立于sdhci标准之外的、自己需要使用的寄存器
// 因为驱动里面会使用sdhci-pltfm来进行解析,所以这里必须把hc_mem放在寄存器的第一个属性,具体参考《host(第三章