Rockchip RK3588 kernel dts解析之MMC

RK3588的MMC分为3中模式:

  • SDMMC
  • SDIO
  • SDHCI

下面针对每种模式的DTS配置进行说明

SDMMC

SDMMC用于SD卡通信
DTS配置参考rk3588s.dtsirk3588-evb2-lp4.dtsi
SDMMC的主要配置在rk3588s.dtsi 中,如下:

sdmmc: mmc@fe2c0000 {compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";reg = <0x0 0xfe2c0000 0x0 0x4000>;interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;clocks = <&scmi_clk SCMI_HCLK_SD>, <&scmi_clk SCMI_CCLK_SD>,<&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";fifo-depth = <0x100>;max-frequency = <200000000>; //设置 SD 卡的运行频率,虽然设置为 150M,但是还要根据 SD 卡的不同模式进行调整pinctrl-names = "default";pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;power-domains = <&power RK3588_PD_SDMMC>;status = "disabled";};

rk3588s.dtsi默认的sdmmc节点默认是disabled状态,需要在需要使用的产品dts中去enable,比如rk3588-evb2-lp4.dtsi,如下:

&sdmmc {status = "okay";vmmc-supply = <&vcc_3v3_sd_s0>; \\配置 SD 卡设备的 3V3 电源
};

sdmmc其他dts配置说明:

  1. vmmc-supply = <&vcc_3v3_sd_s0>; 配置 SD 卡设备的 3V3 电源,rk3588-evb2-lp4.dtsi中SD卡的3v3电源是直接从PMIC RK806的LDO4提供。如果是有GPIO来控制这路电源可以参考rk3588-evb7-lp4.dtsi增加一个gpio模拟regulator的配置:
vcc_3v3_sd_s0: vcc-3v3-sd-s0-regulator {compatible = "regulator-fixed";gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;pinctrl-names = "default";pinctrl-0 = <&sd_s0_pwr>;regulator-name = "vcc_3v3_sd_s0";enable-active-high;};
  1. cap-mmc-highspeed; cap-sd-highspeed; 此配置为标识此卡槽支持 highspeed 的 SD 卡。 如果不配置,表示不支持 highspeed 的 SD 卡。
  2. 配置使用 SD3.0
sd-uhs-sdr12: 时钟频率不超过24M
sd-uhs-sdr25: 时钟频率不超过50M
sd-uhs-sdr50: 时钟频率不超过100M
sd-uhs-ddr50: 时钟频率不超过50M,并且采用双沿采样
sd-uhs-sdr104: 时钟频率不超过208M
  1. 配置 SD 卡热拔插检测脚
    如果检测脚是直接连接到芯片的 SDMMC 控制器的 sdmmc_cd 脚,则请直接将该脚位配置为功能脚,并在 sdmmc 节点的 default 的 pinctrl 内进行引用即可。

如果检测脚是使用其他 GPIO,则需要在 sdmmc 节点内使用 cd-gpios 来进配置,例如

cd-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;

如果使用 GPIO 的检测脚,但是又要求反向检测方式(即 SD 卡插入时检测脚为高电平),则需要追加

cd-inverted;

SDIO

sdio用于wifi等外设通信
sdio的DTS配置参考rk3588s.dtsirk3588-evb2-lp4.dtsi
rk3588s.dtsi中是芯片级的配置,无需修改

sdio: mmc@fe2d0000 {compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";reg = <0x0 0xfe2d0000 0x0 0x4000>;interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;clocks = <&cru HCLK_SDIO>, <&cru CCLK_SRC_SDIO>,<&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";fifo-depth = <0x100>;max-frequency = <200000000>;pinctrl-names = "default";pinctrl-0 = <&sdiom1_pins>;power-domains = <&power RK3588_PD_SDIO>;status = "disabled";};

rk3588-evb2-lp4.dtsi中主要是板级相关的配置,可以根据实际需求修改

&sdio {max-frequency = <150000000>; //设置最大的频率,可以根据硬件设计改小no-sd;no-mmc;bus-width = <4>; disable-wp;cap-sd-highspeed; //此配置同 SD 卡功能,作为 SDIO 外设,也有区分是否为 highspeed 的 SDIO 外设cap-sdio-irq; //此配置标识该 SDIO 外设(通常是 Wifi)是否支持 sdio 中断,如果你的外设是 OOB 中断,请不要加入此项。支持哪种类型的中断请联系 Wifi 原厂确定。keep-power-in-suspend; //此配置表示是否支持睡眠不断电,请默认加入该选项。Wifi 一般都有深度唤醒的要求。mmc-pwrseq = <&sdio_pwrseq>; //此项是 SDIO 外设(一般是 Wifi)的电源控制。为必须项,否则 Wifi 无法上电工作。请参考下面的例子,晶振时钟和复位-使能的 GPIO 的选择按照实际板级硬件要求进行配置。non-removable; //此项表示该插槽为不可移动设备且此项为 SDIO 设备必须添加项。pinctrl-names = "default";pinctrl-0 = <&sdiom0_pins>;sd-uhs-sdr104; //此项配置决定该 SDIO 设备是否支持 SDIO3.0 模式。前提是需要 Wifi 的 IO 电压为 1.8v。同SDMMC配置status = "okay";
}

SDHCI

sdhci用于EMMC通信
sdhci的dts配置参考:rk3588s.dtsirk3588-evb.dtsi
其中rk3588s.dtsi 主要是芯片级的配置无需修改,如下

sdhci: mmc@fe2e0000 {compatible = "rockchip,rk3588-dwcmshc", "rockchip,dwcmshc-sdhci";reg = <0x0 0xfe2e0000 0x0 0x10000>;interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;assigned-clocks = <&cru BCLK_EMMC>, <&cru TMCLK_EMMC>, <&cru CCLK_EMMC>;assigned-clock-rates = <200000000>, <24000000>, <200000000>;clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,<&cru ACLK_EMMC>, <&cru BCLK_EMMC>,<&cru TMCLK_EMMC>;clock-names = "core", "bus", "axi", "block", "timer";resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>,<&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>,<&cru SRST_T_EMMC>;reset-names = "core", "bus", "axi", "block", "timer";max-frequency = <200000000>;status = "disabled";};

rk3588-evb.dtsi是板级相关配置,可以根据实际需求进行配置

&sdhci {bus-width = <8>;no-sdio;no-sd;non-removable;max-frequency = <200000000>;//配置最大频率,根据实际需求可以减少mmc-hs400-1_8v;   //此两项配置表示支持 HS400 模式以及 HS400ES 模式mmc-hs400-enhanced-strobe; //此两项配置表示支持 HS400 模式以及 HS400ES 模式status = "okay";
};

SDHCI还支持:

  • 50MDDR 模式:mmc-ddr-1_8v;
  • HS200 模式:mmc-hs200-1_8v;

Rockchip RK3588 kernel dts解析之MMC相关推荐

  1. Rockchip RK3588 kernel dts解析之音频模块

    Rockchip RK3588 kernel dts解析之音频模块 RK3588 EVB板子使用的是外接声卡ES8388 DTS配置参考:rk3588-evb1-lp4.dtsi 系统声音配置: es ...

  2. Rockchip RK3588 kernel dts解析之PCIe

    Rockchip RK3588 kernel dts解析之PCIe 文章目录 Rockchip RK3588 kernel dts解析之PCIe RK3588控制器 RK3588 PHY 使用限制 D ...

  3. Rockchip RK3588 kernel dts解析之电源模块

    Rockchip RK3588 kernel dts解析之电源模块 文章目录 Rockchip RK3588 kernel dts解析之电源模块 RK3588搭配的电源方案有2种 注意单PIMC核双P ...

  4. Rockchip RK3588 kernel dts解析之Camera

    Rockchip RK3588 kernel dts解析之Camera 文章目录 Rockchip RK3588 kernel dts解析之Camera RK3588的Camera相关资源介绍 MIP ...

  5. Rockchip RK3588 kernel dts解析之USB模块

    Rockchip RK3588 kernel dts解析之USB模块 文章目录 Rockchip RK3588 kernel dts解析之USB模块 RK3588 USB DTS 配置 USB 芯片级 ...

  6. Rockchip RK3588 kernel dts解析之GPIO Pinctrl

    Rockchip RK3588 kernel dts解析之GPIO Pinctrl 文章目录 Rockchip RK3588 kernel dts解析之GPIO Pinctrl GPIO的命令规则 I ...

  7. Rockchip RK3588 kernel dts解析之WIFI/BT

    Rockchip RK3588 kernel dts解析之WIFI/BT RK3588 EVB的WIFI/BT使用的是外挂双模模块,其中根据WIFI的数据通信接口不同可以分为PCIE和SDIO两种,下 ...

  8. Rockchip RK3588如何创建新一个新板级DTS

    Rockchip RK3588如何创建新一个新板级DTS 文章目录 Rockchip RK3588如何创建新一个新板级DTS 基于SDK已有的DTS选择一个适合的基础参考DTS RK3588 SDK发 ...

  9. Rockchip RK3588 SD卡启动

    Rockchip RK3588 SD卡启动 RK3588的BOOTROM 流程 RK3588 内部都有集成一个 BOOTROM,系统上电时先会运行 BOOTROM 代码,然后 BOOTROM 代码会探 ...

最新文章

  1. 循环链表(约瑟夫环)的建立及C语言实现
  2. spring事务配置
  3. wxWidgets:不使用 C++ RTTI 时的注意事项
  4. HDU - 1547 Bubble Shooter(dfs+连通块+模拟)
  5. Java instead of 用法_我又不是你的谁--java instanceof操作符用法揭秘
  6. 集合计数 (容斥原理)
  7. [LUOGU1437] 敲砖块
  8. DockerCon 2017报告:企业在关注吗?
  9. java接口文档编写_java api接口文档怎么编写?
  10. 如何清空c盘只剩系统_如何深度清理c盘空间(怎么清理c盘只留下系统)
  11. vue:ali 阿里矢量图库 ico
  12. 内部审计具体准则第28号—信息系统审计
  13. FPGA图像处理 —— fpga实现cameralink接口图像传输
  14. wso2 mysql_windows下 WSO2 Application Server配置 及 MySQL数据服务部署
  15. PageHelper.startPage不生效,失效问题
  16. 一级造价工程师(安装)- 管理笔记
  17. 计算机英语趣味知识竞赛题库,2019年小学四年级英语趣味知识竞赛试题
  18. Python销售订单分析。
  19. VMware虚拟机装系统出现Units specified dont exist解决办法
  20. R语言,直方图的制作--hist()

热门文章

  1. 专升本第十二讲 (影音娱乐)
  2. 王权富贵:使用pytorch复现Fater-RCNN
  3. Pytorch中apply函数作用
  4. 扬州美女能否走出传说产生经济价值?
  5. TCP三次握手四次挥手(三国版)
  6. 蓝桥杯 填空题 水题 等差素数列 C++ 简单暴力枚举
  7. 一只喵的西行记-11 与大叔小萝莉的不打不相识
  8. keep sb updated_keep you update 和keep you updated哪个正确
  9. NDS CA system和爱迪德CA系统
  10. php 根据时间获取二十四节气