cortex-A9 exynos-4412 i2c5 adapter 配置问题

本文记录了一次在Linux 3.0.15上进行I2C5适配器读写测试遇到的问题及解决方案。作者发现无法正常读写0x138B_0000地址,原因是未开启适配器时钟。通过对比三星适配器代码并添加时钟使能,最终解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 linux 3.0.15 上实验

readl()  writel()  读写 i2c5适配器地址   0x138B_0000  时发现 不管往里面些什么 读出来的都是0.  

最后发现 是因为 没有为 i2c5 适配器打开时钟造成的。 

i2c5适配器 相对于 cortex-a9 来说就是一个外围器件, 如果没有给它时钟那么就不能工作,

进而导致没有办法正常操作映射给 i2c5 适配器的地址。


解决此问题思路:

1. 因为 linux 3.0.15 内核中已经有 i2c5适配器的驱动代码并且可以, 所有尝试在这里添加读写寄存器的测试代码,发现可以使用。

2. 那自己的代码和三星的适配器代码进行比较, 排查每一行代码,最终发现没有时钟使能代码。

3. 将三星的代码中的时钟使能注释掉,发现也没有办法正常读写寄存器了。


心得: 所有器件都需要配置正确的时钟。 包括soc内部模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值