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总线,多出来的那个就是了。

相关推荐
Nimsolax5 分钟前
Linux网络数据链路层
linux·网络
小武~29 分钟前
嵌入式网络编程实战:从Socket基础到高并发优化
linux·网络
大聪明-PLUS41 分钟前
Rsync:管理员详细指南 第2部分
linux·嵌入式·arm·smarc
chenzhou__44 分钟前
LinuxC语言文件i/o笔记(第十七天)
linux·c语言·笔记·学习
chenzhou__1 小时前
LinuxC语言文件i/o笔记(第十八天)
linux·c语言·笔记·学习
简鹿办公1 小时前
重大更新!Ubuntu Pro 现提供长达 15 年的安全支持
linux·安全·ubuntu
GilgameshJSS1 小时前
STM32H743-ARM例程43-SD_IAP_FPGA
arm开发·stm32·fpga开发
qq_321665331 小时前
验证centos 服务器(或其他linux服务器),443或80端口是否开通
linux·服务器·centos
java_logo1 小时前
TOMCAT Docker 容器化部署指南
java·linux·运维·docker·容器·tomcat
whb2341741242 小时前
测试linux删除Oracle文件,使用文件句柄恢复
linux·运维·oracle