一、 如何修改i2c 速率
1. 在设备驱动代码中i2c_probe(),添加:
spin_lock(&kdsensor_drv_lock);
g_pstI2Cclient->timing = i2cSpeed; // 遇到过摄像头读不到id: 300 -> 100
spin_unlock(&kdsensor_drv_lock);
2. 直接修改默认值:
dtsi:
i2c2:i2c@11009000 {
compatible = "mediatek,mt6735m-i2c";
cell-index = <2>;
reg = <0x11009000 0x1000>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 101 IRQ_TYPE_LEVEL_LOW>;
def_speed = <100>; // 修改为300khz -> 没有生效
};
如果大于400,需要修改出错判断条件:
kernel/driver/i2c/busses/i2c-qup.c
qup_i2c_probe()
of_property_read_u32(node, "clock-frequency", &clk_freq);
if (!clk_freq || clk_freq > 400000) { /* We support frequencies up to FAST Mode (400KHz) */
dev_err(q
26. 常见i2c地址_修改i2c速率
最新推荐文章于 2024-05-02 09:00:00 发布