如何在linux下使用自带GPIO模拟I2C的驱动

如何在linux下使用自带GPIO模拟I2C的驱动

如何查看系统有没有自带驱动

本文以百问网imx6ull pro为例,进入目录
在这里插入图片描述
使用vi .config 指令查看有没有编译CONFIG_I2C_MUX_GPIO

在这里插入图片描述
可以看到#CONFIG_I2C_MUX_GPIO is not set

所以我们使用make menuconfig 命令配置

在这里插入图片描述
/ I2C_GPIO搜索一下 ,可以看到具体的位置
在这里插入图片描述
进入这个位置,输入M将他配置编译成模块,当然你也可以配置编译进内核
在这里插入图片描述
保存退出

修改设备树

根目录下写入下面的设备树代码

     i2c_gpio_liaoPJ {
        
		compatible = "i2c-gpio";
		gpios = <&gpio4 20 0 /*sda*/
		         &gpio4 21 0 /*scl*/>;
				 
		i2c-gpio,delay-us = <5>; /*100k HZ*/
        #address-cells = <1>;
		#size-cells = <0>;

    };

可以根据你自己的板子,修改gpios里的引脚 ,以及delay-us里的频率,这里5指的是5us,由于驱动程序发送一个数据需要耗费5*2us 所以这里是100kHZ。

上机实验

1.编译设备树 make dtbs
2.编译模块 make modules
3.拷贝设备树及编译的.KO文件到单板上,ko文件在在这里插入图片描述

4.替换设备树,重启 reboot
5.安装驱动 insmod i2c-gpio.ko

可以看到多出了一条i2c总线
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值