如何在 Linux 中设置 i2c-bus 的波特率?

How to set up the baud rate for i2c-bus in Linux?

我有一台基于 riko-3288 处理器的 ARM 计算机。 我还有带有自定义内核(没有模块系统)的设备的 Ubuntu 图像。

我目前正在尝试为 i2c 总线设置高达 100KHz 的波特率。 我不是 Linux 方面的专家,我不知道我必须为此做些什么。 i2c-bus 的波特率更高,我想应该超过 1MHz。

我了解到我必须在引导加载文件中编写这样的命令 "dtparam=i2c_arm=on,i2c_arm=on_baudrate=100000"。 我的引导加载文件如下:

{boot-partition}/extlinux/extlinux.conf

label kernel-4.4
    kernel /zImage
    fdt /rk3288-miniarm.dtb
    append  earlyprintk console=tty1 console=ttyS2,115200n8 rw root=/dev/mmcblk1p7 rootfstype=ext4 init=/sbin/init

我尝试将命令传递给追加字符串,并尝试了一些不同的命令,但没有任何效果。

你能告诉我如何更改 i2c 总线的波特率吗?

P.S。并且有人知道如何在操作系统中获取波特率吗?

我在这里找到了简单的解决方案。 http://www.chip-community.org/index.php/Troubleshooting#I2C_.2F_TWI_problems

为了我的事业:

sudo apt update
sudo apt install device-tree-compiler
sudo mount /dev/mmcblk1p6 /mnt # {boot-partition}
sudo cp /mnt/rk3288-miniarm.dtb /boot/rk3288-miniarm.dtb.bak
sudo fdtput --type u /mnt/rk3288-miniarm.dtb i2c4 clock-frequency 50000
sudo systemctl reboot