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

相关推荐
石像鬼₧魂石7 小时前
如何配置Fail2Ban的Jail?
linux·学习·ubuntu
椰子今天很可爱8 小时前
五种I/O模型与多路转接
linux·c语言·c++
Lueeee.8 小时前
Linux kernel Makefile 语法
linux
华清远见成都中心8 小时前
成都理工大学&华清远见成都中心实训,助力电商人才培养
大数据·人工智能·嵌入式
切糕师学AI9 小时前
ARM 架构中的 CONTROL 寄存器
arm开发·硬件架构·嵌入式·芯片·寄存器
爱吃山竹的大肚肚10 小时前
EasyPOI 大数据导出
java·linux·windows
极地星光10 小时前
dmesg 工具的核心功能与作用
linux
fzm529810 小时前
C语言单元测试在嵌入式软件开发中的作用及专业工具的应用
自动化测试·单元测试·汽车·嵌入式·白盒测试
福尔摩斯张11 小时前
C++核心特性精讲:从C语言痛点出发,掌握现代C++编程精髓(超详细)
java·linux·c语言·数据结构·c++·驱动开发·算法
hgz071012 小时前
Linux服务器环境部署与JMeter压测准备
linux·服务器·jmeter