高通msm8953平台I2C分析"/>
高通msm8953平台I2C分析
今天遇到了个I2C不通的问题,用的是I2C_8
msm8953.dtsi
i2c8 = &i2c_8;i2c_8: i2c@7af8000 { /* BLSP2 QUP3 */compatible = "qcom,i2c-msm-v2";...pinctrl-names = "i2c_active", "i2c_sleep";pinctrl-0 = <&i2c_8_active>;pinctrl-1 = <&i2c_8_sleep>;qcom,noise-rjct-scl = <0>;qcom,noise-rjct-sda = <0>;qcom,master-id = <84>;dmas = <&dma_blsp1 10 64 0x20000020 0x20>,<&dma_blsp1 11 32 0x20000020 0x20>;dma-names = "tx", "rx";status = "disabled";};
msm8953-pinctrl.dtsi
i2c_8 {i2c_8_active: i2c_8_active {/* active state */mux {pins = "gpio98", "gpio99";function = "blsp_i2c8";};config {pins = "gpio98", "gpio99";drive-strength = <2>;bias-disable;};};...};
该屏蔽的也都屏蔽了,可还是不通。于是去硬件测了测,发现根本没有波形。
正常的话CPU会通过I2C发出一段寻址的时序来寻找挂载在这个I2C上的IC,可是这个I2C什么波形都没有,我都开始怀疑人生了。
硬件告诉我这个I2C是需要供电才能正常工作的,可能是没有供电。
于是我把这路供电设置成regulator-always-on
rpm-regulator-ldoa6 {status = "okay";pm8953_l6: regulator-l6 {regulator-min-microvolt = <1800000>;regulator-max-microvolt = <1800000>;qcom,init-voltage = <1800000>;regulator-always-on;status = "okay";}
}
I2C就通了,问题解决。
更多推荐
高通msm8953平台I2C分析
发布评论