intel I2C的速率配置

   

目录

寄存器篇

 修改寄存器

intel I2C 驱动结构

lpss-pci文件

lpss文件

驱动结构

Synopsys DesignWare I2C

BIOS配置修改

ACPI表的查看

I2C速率


寄存器篇

修改速率很简单,看到手册里面的寄存器说明,然后将其改掉即可。

寄存器偏移量为0,bit2:1修改为不同值可以配置为100和400两个速率。

 修改寄存器

    在用户态修改寄存器很简单。

  1) 首先查看设备的地址段

   我们看到 15.0  I2C控制器占用的地址段 为 0xdf930000开始。

    于是我们编写一个用户态mmap映射的程序,进行测试。由于地址空间已经被内核驱动占用,导致mmap读取访问返回为FF

    2)所以我们先卸载掉驱动。

     rmmod intel_lpss_pci

      同时又需要将设备pcie配置空间相关操作使能

     setpci -s 0:15.0 4.B=6

  3) 修改寄存器    

./pcie_test 0x8086 0xa160

bar phyaddr:0xdf930000

Memory mapped at address 0x7fda2d086000.

bar map virtual address 0x7fda2d086000.

00000075  读取的值为75,即bit1-2为10  400K

./write_pci 0x8086 0xa160  将寄存器写为100K

   这时,我们将lpss驱动重新加载,发现寄存器的值又变成了400K。也就是驱动本身还会改这个寄存器,手动修改寄存器改速率这条路是不同的。

intel I2C 驱动结构

    于是我们只能寄希望于驱动的修改。但是明明我们加载的驱动是lpss,但是i2cdetect -l查询到的驱动信息却是:i2c-designware ,而这个又是编译到内核中的,并非module模块!!<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

proware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值