Linux Kernel 4.19+内核使用GPIO模拟I2C的方法

1.修改内核配置文件,使内核支持GPIO模拟I2C

复制代码
//开启方式
make menuconfig
Device Drivers --->
	<*> I2C support  --->
		I2C Hardware Bus support  ---> 
			<*> GPIO-based bitbanging I2C

2.对应的dts里面增加GPIO模拟I2C的设备树

复制代码
注意头文件:#include <dt-bindings/gpio/gpio.h>
	i2c@0 {
		compatible = "i2c-gpio";
		sda-gpios = <&gpio_chip16 3 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		scl-gpios = <&gpio_chip16 4 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
		#address-cells = <0>;
		#size-cells = <0>;
	};

编译后烧写,会发现/dev下多了一个i2c总线,多出来的那个就是了。

相关推荐
last demo32 分钟前
nfs服务器
linux·运维·服务器·php
讨厌下雨的天空2 小时前
Linux信号
linux·运维·c++
赖small强3 小时前
【Linux C/C++开发】第26章:系统级综合项目理论
linux·c语言·c++
SCandL1523 小时前
安全上下文的修改实验
linux
ragnwang3 小时前
Ubuntu /home 分区安全扩容教程
linux·运维·ubuntu
Azure++3 小时前
Centos安装clickhouse
linux·clickhouse·centos
濊繵3 小时前
Linux网络--应用层自定义协议与序列化
linux·服务器·网络
潇凝子潇4 小时前
Linux 服务器实时监控Shell 脚本
linux·服务器·chrome
顾安r4 小时前
11.21 脚本 网页优化
linux·前端·javascript·算法·html
last demo4 小时前
iscsi服务器
linux·运维·服务器·php