VS-RK3399 主板配置SDMMC调试资料分享
本帖最后由 山阴路的夏天 于 2017-12-28 09:39 编辑以下是基于Android 7.1系统的,在VS-Rk3399主板上调试和修改的资料说明如下。这个高清播放盒子,性能比较强,播放视频解码能力强。
一、 DTS配置
1.1 SDMMC的DTS配置说明
(1) clock-frequency = <150000000>;
此配置设置SD卡的运行频率,虽然设置为150M,但是还要根据SD卡的不同模式进行调整。这部分不需要用户关心,实际运行频率和模块的关系软件会关联。最大不超过150MHz。
(2) clock-freq-min-max = <400000 150000000>;
此配置设置SD卡的运行频率范围。默认不需要调整。
(3) supports-sd;
此配置标识此插槽为SD卡功能,为必须添加项。否则无法初始化SD卡。
(4) bus-width = <4>;
此配置标识需要使用SD卡的线宽。SD卡最大支持4线模式,如果不配置就模式使用1线模式。另外,这个位只支持的数值为1,4,配置其他数值会认为是非法数值,强制按照1线模式进行使用。
(5) (cap-mmc-highspeed; cap-sd-highspeed;
此配置为标识此卡槽支持highspeed的SD卡。 如果不配置,表示不支持highspeed的SD卡。
(6) sd-uhs-sdr104;
此配置为标识此卡槽支持UHS-I的SD卡。如果不配置,表示不支持UHS-I的SD卡。 但需要注意,如果要支持这种模式的卡,需要SD卡的IO电压供电可以在3.3V和1.8v进行切换。并且需要引用vqmmc-supply到实际板级的控制电源,例如vqmmc-supply = <&vcc_sd>。
(7) pinctrl-names = "default";
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 配置SD卡电路的IOMUX功能,为必须配置项。
1.2 SDIO的DTS配置说明
(1) clock-frequency = <50000000>;
clock-freq-min-max = <200000 50000000>; 此两项同SD卡的配置,最大运行频率不超过150Mhz。
(2) supports-SDIO;
此配置标识此插槽为SDIO功能,为必须添加项。否则无法初始化SDIO外设。
(3) bus-width = <4>;
此配置同SD卡功能。
(4) cap-sd-highspeed;
此配置同SD卡功能,作为SDIO外设,也有区分是否为highspeed的SDIO外设。
(5) cap-sdio-irq;
此配置标识该SDIO外设(通常是Wifi)是否支持sdio中断,如果你的外设是OOB中断, 请不要加入此项。支持哪种类型的中断请联系Wifi原厂确定。
(6) keep-power-in-suspend;
此配置表示是否支持睡眠不断电,请默认加入该选项。Wifi一般都有深度唤醒的要求。
(7) mmc-pwrseq = <&sdio_pwrseq>;
此项是SDIO外设(一般是Wifi)的电源控制。为必须项,否则Wifi无法上电工作。请参考下面
的例子,晶振时钟和复位-使能的GPIO的选择按照实际板级硬件要求进行配置。
sdio_pwrseq: sdio-pwrseq
{ compatible = "mmc-pwrseq-simple";
clocks = <&rk808 1>;
clock-names = "ext_clock";
pinctrl-names = "default";
pinctrl-0 = <&wifi_enable_h>; /* * On the module itself this is one of these (depending * on the actual card populated): * - SDIO_RESET_L_WL_REG_ON * - PDN (power down when low) */
reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
/* GPIO0_B2 */
};
(8) non-removable;
此项表示该插槽为不可移动设备。此项为必须添加项。
(9) num-slots = <4>;
此项同SD卡的配置。
(10) pinctrl-names = "default";
pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; 此项配置SDIO电路的IOMUX功能,为必须配置项。
(11) sd-uhs-sdr104;
此项配置决定该SDIO设备是否支持SDIO3.0模式。前提是需要Wifi的IO电压为1.8v。
1.3 eMMC的DTS配置
&emmc_phy {
freq-sel = <200000000>; // 此项为eMMC实际运行的频率 dr-sel = <50>; //驱动强度的选择,目前只支持33,40,50,66,100,根据信号波形测试而定,50属于中间强度
opdelay = <4>; //输出延时配置,可以默认使用4
status = "okay";
};
&sdhci
{ bus-width = <8>;
mmc-hs400-1_8v; //是否支持HS400模式,如果调试需要,可以去掉,会降级为HS200
mmc-hs400-enhanced-strobe; //是否支持HS400ES, 会自动探测,可以保留此项。
supports-emmc; //必须项,表示此控制器支持eMMC
non-removable; //必须项,表示eMMC为不可拔插的外设
keep-power-in-suspend; //必须项
status = "okay";
};
谢谢楼主的分享
页:
[1]