Rockchip RK3588 kernel dts解析之MMC
Rockchip RK3588 kernel dts解析之MMC
RK3588的MMC分为3中模式:
- SDMMC
- SDIO
- SDHCI
下面针对每种模式的DTS配置进行说明
SDMMC
SDMMC用于SD卡通信
DTS配置参考rk3588s.dtsi
和rk3588-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配置说明:
- 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;};
cap-mmc-highspeed; cap-sd-highspeed;
此配置为标识此卡槽支持 highspeed 的 SD 卡。 如果不配置,表示不支持 highspeed 的 SD 卡。- 配置使用 SD3.0
sd-uhs-sdr12: 时钟频率不超过24M
sd-uhs-sdr25: 时钟频率不超过50M
sd-uhs-sdr50: 时钟频率不超过100M
sd-uhs-ddr50: 时钟频率不超过50M,并且采用双沿采样
sd-uhs-sdr104: 时钟频率不超过208M
- 配置 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.dtsi
和rk3588-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.dtsi
和rk3588-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相关推荐
- Rockchip RK3588 kernel dts解析之音频模块
Rockchip RK3588 kernel dts解析之音频模块 RK3588 EVB板子使用的是外接声卡ES8388 DTS配置参考:rk3588-evb1-lp4.dtsi 系统声音配置: es ...
- Rockchip RK3588 kernel dts解析之PCIe
Rockchip RK3588 kernel dts解析之PCIe 文章目录 Rockchip RK3588 kernel dts解析之PCIe RK3588控制器 RK3588 PHY 使用限制 D ...
- Rockchip RK3588 kernel dts解析之电源模块
Rockchip RK3588 kernel dts解析之电源模块 文章目录 Rockchip RK3588 kernel dts解析之电源模块 RK3588搭配的电源方案有2种 注意单PIMC核双P ...
- Rockchip RK3588 kernel dts解析之Camera
Rockchip RK3588 kernel dts解析之Camera 文章目录 Rockchip RK3588 kernel dts解析之Camera RK3588的Camera相关资源介绍 MIP ...
- Rockchip RK3588 kernel dts解析之USB模块
Rockchip RK3588 kernel dts解析之USB模块 文章目录 Rockchip RK3588 kernel dts解析之USB模块 RK3588 USB DTS 配置 USB 芯片级 ...
- Rockchip RK3588 kernel dts解析之GPIO Pinctrl
Rockchip RK3588 kernel dts解析之GPIO Pinctrl 文章目录 Rockchip RK3588 kernel dts解析之GPIO Pinctrl GPIO的命令规则 I ...
- Rockchip RK3588 kernel dts解析之WIFI/BT
Rockchip RK3588 kernel dts解析之WIFI/BT RK3588 EVB的WIFI/BT使用的是外挂双模模块,其中根据WIFI的数据通信接口不同可以分为PCIE和SDIO两种,下 ...
- Rockchip RK3588如何创建新一个新板级DTS
Rockchip RK3588如何创建新一个新板级DTS 文章目录 Rockchip RK3588如何创建新一个新板级DTS 基于SDK已有的DTS选择一个适合的基础参考DTS RK3588 SDK发 ...
- Rockchip RK3588 SD卡启动
Rockchip RK3588 SD卡启动 RK3588的BOOTROM 流程 RK3588 内部都有集成一个 BOOTROM,系统上电时先会运行 BOOTROM 代码,然后 BOOTROM 代码会探 ...
最新文章
- 循环链表(约瑟夫环)的建立及C语言实现
- spring事务配置
- wxWidgets:不使用 C++ RTTI 时的注意事项
- HDU - 1547 Bubble Shooter(dfs+连通块+模拟)
- Java instead of 用法_我又不是你的谁--java instanceof操作符用法揭秘
- 集合计数 (容斥原理)
- [LUOGU1437] 敲砖块
- DockerCon 2017报告:企业在关注吗?
- java接口文档编写_java api接口文档怎么编写?
- 如何清空c盘只剩系统_如何深度清理c盘空间(怎么清理c盘只留下系统)
- vue:ali 阿里矢量图库 ico
- 内部审计具体准则第28号—信息系统审计
- FPGA图像处理 —— fpga实现cameralink接口图像传输
- wso2 mysql_windows下 WSO2 Application Server配置 及 MySQL数据服务部署
- PageHelper.startPage不生效,失效问题
- 一级造价工程师(安装)- 管理笔记
- 计算机英语趣味知识竞赛题库,2019年小学四年级英语趣味知识竞赛试题
- Python销售订单分析。
- VMware虚拟机装系统出现Units specified dont exist解决办法
- R语言,直方图的制作--hist()