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

相关推荐
Shanxun Liao8 分钟前
CentOS 7.9 根分区 / 已经 100% 用满隐藏占用解决办法
linux·运维·centos
早日退休!!!32 分钟前
ARM A核、ARM M核、X86与RISC-V架构:寄存器作用及上下文处理差异报告
arm开发·架构·risc-v
学好statistics和DS1 小时前
命令替换(Command Substitution)详解
linux
zimoyin1 小时前
浅浅了解下0拷贝技术
java·linux·开发语言
ba_pi1 小时前
每天写点什么2026-01-09-linux基础
linux·运维·服务器
wdfk_prog1 小时前
[Linux]学习笔记系列 -- 底层CPU与体系结构宏
linux·笔记·学习
行走的bug...2 小时前
cmake总结
linux·运维·服务器
zfxwasaboy2 小时前
DRM KMS 子系统(3)CRTC
linux·c语言
凌波粒2 小时前
Linux 面试题篇
linux·运维·服务器
Joren的学习记录2 小时前
【Linux运维疑难杂症】k8s集群创建calico网络失败
linux·运维·kubernetes