内容:
6360有个引脚SDCARD_DET_N,实现硬件的auto off,sd的中断pin连接到6360的这个引脚。
- cust_mtxxxx_msdc.dtsi中,cd_level 表示插入卡中断Pin电平,默认配置为是低电平(MSDC_CD_LOW)。
默认配置参考:
/kernel-4.14/arch/arm64/boot/dts/mediatek/cust_mtxxxx_msdc.dtsi中
&msdc1 {
index = /bits/ 8 <1>;
clk_src = /bits/ 8 <MSDC1_CLKSRC_200MHZ>;
bus-width = <4>;
max-frequency = <200000000>;
cap-sd-highspeed;
cap-mmc-highspeed;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-sdr104;
sd-uhs-ddr50;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
no-sdio;
pinctl = <&msdc1_pins_default>;
pinctl_sdr104 = <&msdc1_pins_sdr104>;
pinctl_sdr50 = <&msdc1_pins_sdr50>;
pinctl_ddr50 = <&msdc1_pins_ddr50>;
pinctl_hs200 = <&msdc1_pins_hs200>;
register_setting = <&msdc1_register_setting_default>;
host_function = /bits/ 8 <MSDC_SD>;
cd_level = /bits/ 8 <MSDC_CD_LOW>;
cd-gpios = <&pio 4 0>;
status = "okay";
#ifndef CONFIG_FPGA_EARLY_PORTING
vmmc-supply = <&mt_pmic_vmch_ldo_reg>;
vqmmc-supply = <&mt_pmic_vmc_ldo_reg>;
clocks = <&infracfg_ao CLK_IFRAO_MSDC1_SRC>,
<&infracfg_ao CLK_IFRAO_MSDC1>;
clock-names = "msdc1-clock", "msdc1-hclock";
#endif
};
- SDCARD_DET_N默认配置参考:
/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mtxxxx/src/drivers/mt6360_ldo.c中
static const u8 ldo5_ctrl_init[] = { 0x00, 0x80, 0x81, 0x2d, 0xa4 };
- 如果客户项目的插卡中断电平与Mediatek参考设计不一致,需要参考如下修改上述文件:
(1)修改cd_level配置:
cd_level = /bits/ 8 <MSDC_CD_HIGH>;
(2)修改ldo配置
1)R版本以下
修改ldo5_ctrl_init配置:
static const u8 ldo5_ctrl_init[] = { 0x00, 0x80, 0x41, 0x2d, 0xa4 };
2)R版及以上
在kernel-4.14/arch/arm64/boot/dts/mediatek/<project>.dts中增加下述红色字体信息:
/* DISPSYS GPIO standardization end */
&mt6360_ldo {
sdcard_det_en = <1>; //1表示使用这根pin,0表示不使用这根pin
sdcard_hlact = <0>; //1表示高电平为SD拔出,0表示低电平为SD拔出
};
Note: 上文mtxxxx需与实际使用平台一致
相关链接:
[Storage]如何解决新项目sdcard无法识别问题 FAQ17610 。
更多MTK技术内容,可关注#深圳市新移科技有限公司官网论坛
新移科技・专注于移动通信技术(2G/3G/4G/5G), 安卓智能物联网技术 (Android, IOT)。 MTK 安卓智能平台的研发设计、MTK 主板方案,安卓手机主板,智能安防主板、 安卓智能模块、开发板主板定制、整机定制。
标签:mtxxxx,MT6853,MT6873,cd,MT6785,uhs,pinctl,bits,sd From: https://blog.51cto.com/u_15708244/6042614