我正在为 LSM6DS[ML] IMU使用ST 自己的驱动程序。
如果该驱动程序在内核关闭时正在访问 IMU 寄存器,则 I2C 总线可能会被卡住,SCL 被拉低:
这意味着最终的 I2C 写入(对 PMU 芯片,挂钩pm_power_off
)不可能总是发生。因此,电源有时会保持打开状态。
我试图了解我应该在哪里解决这个问题。
- ST 的 lsm6dsm 驱动程序是否存在某种故障?
- 内核的 I2C 处理是否有问题?(我想不出它让 I2C 总线阻塞的原因。)
- I2C 总线在关机时卡住并因此无法调用是否
regmap_write()
有效pm_power_off
?