rk3588s SDMMC接口支持主机和从设备两种模式分别进行DTS配置举例
时间: 2024-03-09 20:48:43 浏览: 104
下面分别给出rk3588s SDMMC接口配置为主机和从设备模式的DTS配置示例:
SDMMC主机模式配置示例:
```
sdmmc@fe320000 {
compatible = "rockchip,rk3588-sdmmc";
reg = <0x0 0xfe320000 0x0 0x1000>;
interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru PCLK_SDMMC0>, <&cru SCLK_SDMMC0>;
clock-names = "pclk", "clk";
bus-width = <4>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4 &sdmmc_bus8>;
non-removable;
mmc-hs200-1_8v;
mmc-pwrseq = <&vcc_sd>;
vcc_sd-supply = <&vcc_sd>;
card-detect-delay = <200>;
cd-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>;
num-slots = <1>;
slot@0 {
reg = <0>;
bus-width = <4>;
cd-inverted;
cd-reflect;
disable-wp;
status = "okay";
};
};
```
在这个配置中,我们将SDMMC接口的`bus-width`设置为4,表示使用4位数据总线。`non-removable`表示这个接口是内置设备,不能被拆卸,`num-slots`表示这个接口只有一个插槽。在`slot@0`节点中,我们指定了这个插槽的一些属性,比如`bus-width`、`cd-inverted`、`disable-wp`等等。最后,我们将这个SDMMC接口的状态设置为`okay`,表示它已经准备就绪。
SDMMC从设备模式配置示例:
```
sdmmc-slave@fe320000 {
compatible = "rockchip,rk3588-sdmmc-slave";
reg = <0x0 0xfe320000 0x0 0x1000>;
interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru PCLK_SDMMC0>, <&cru SCLK_SDMMC0>;
clock-names = "pclk", "clk";
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
non-removable;
max-frequency = <50000000>;
status = "okay";
};
```
在这个配置中,我们将SDMMC接口的`compatible`属性设置为`rockchip,rk3588-sdmmc-slave`,表示这个接口是从设备。我们省略了`bus-width`属性,因为在从设备模式下,这个属性没有意义。`max-frequency`表示这个接口的最大工作频率,我们将它设置为50MHz。最后,我们将这个SDMMC接口的状态设置为`okay`,表示它已经准备就绪。
需要注意的是,具体的DTS配置可能因硬件平台和操作系统而有所不同,上述配置仅作为参考。
阅读全文