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 分钟前
1、全志h616板子介绍
linux
2401_890443027 分钟前
Linux线程概念与控制
linux
wdfk_prog13 分钟前
[Linux]学习笔记系列 --[drivers][base]map
linux·笔记·学习
石像鬼₧魂石40 分钟前
Windows Server 2003 域控制器靶机搭建与渗透环境配置手册
linux·windows·学习
RisunJan43 分钟前
Linux命令-killall(根据进程名称来终止一个或多个进程)
linux·运维·服务器
小-黯1 小时前
Linux桌面入口文件.desktop文件内容格式
linux·运维·服务器
CheungChunChiu2 小时前
Flutter 在嵌入式开发的策略与生态
linux·flutter·opengl
十五年专注C++开发2 小时前
CMake基础: 在release模式下生成调试信息的方法
linux·c++·windows·cmake·跨平台构建
不会代码的小猴2 小时前
Linux环境编程第三天笔记
linux·笔记
~光~~2 小时前
【嵌入式linux学习】04_Pinctrl 和 GPIO子系统
linux·rk3588·嵌入式linux