android SD卡检测和热插拔功能
16lz
2021-01-23
转载自:http://www.aichengxu.com/android/2476070.htm
最近有个项目不支持SD卡热插拔,且出现SD卡不识别的问题,需要去掉代码里面的SD卡热插拔功能。相关修改代码如下,主要是删除gpio代表的irq。
kernel/arch/arm/boot/dts/msm8909_x37_g101/msm8909-qrd-skuc.dtsi
&sdc2_cd_on { /delete-property/ bias-pull-up; bias-pull-down;};&sdc2_cd_off { /delete-property/ bias-disable; bias-pull-down;};&sdhc_2 { qcom,nonhotplug; qcom,no-1p8v; qcom,vdd-always-on; qcom,vdd-lpm-sup; qcom,vdd-current-level = <4000 400000>; /delete-property/ cd-gpios;};kernel/arch/arm/boot/dts/msm8909_x37_g101/msm8909-qrd.dtsi
&sdhc_2 { #address-cells = <0>; interrupt-parent = <&sdhc_2>; interrupts = <0 1 2>; #interrupt-cells = <1>; interrupt-map-mask = <0xffffffff>; interrupt-map = <0 &intc 0 125 0 1 &intc 0 221 0>; interrupt-names = "hc_irq", "pwr_irq"; /delete-property/ cd-gpios; vdd-supply = <&pm8909_l11>;
因为我的板子是没有连cd-gpio的,去掉了cd-gpio还是可以支持热插拔,不清楚为什么。。。
一开始修改上面后,可以识别到T卡了,在dev/block/下有mmcblk1p1节点,但是手机上看不到,应该是文件系统没有挂在上去。
后面修改了device/qcom/msm8909_512下的fstab.qcom文件里的/devices/soc.0/7864900.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,noemulatedsd,encryptable=footer这个后就可以了。
代码中检测SD卡的文件是:kernel/drivers/mmc/core core.c sd.c mmc_attach_sd()函数。
更多相关文章
- 解决用Android Studio开发项目如何放置assets文件夹
- Android代码设置EditText只输入数字、字母
- [Android][Audio] audio_policy.conf文件分析
- android手机开机动画相关代码解析
- Android 代码混淆及第三方jar包不被混淆
- android 在代码中获取SHA1值
- Android下的文件访问权限
- Android 读取raw下的txt文件
- Android中的文件的读取方法