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

相关推荐
怪我冷i1 分钟前
win11使用minikube搭建K8S集群基于podman desktop( Fedora Linux 43)
linux·kubernetes·ai编程·ai写作·podman
本贾尼3 分钟前
VMware的Ubuntu虚拟机显示网络有限线缆已被拔出的问题以及解决方法
linux·运维·ubuntu
石像鬼₧魂石5 分钟前
Cobalt Strike(简称 CS)专业的红队安全测试工具
linux·windows·安全·ubuntu
oMcLin12 分钟前
如何在 Linux 上的 aaPanel 中使用 Docker 部署 WordPress 博客:从配置到上线一站式教程
linux·运维·docker
chen_mangoo19 分钟前
Android10低电量无法打开相机
android·linux·驱动开发·嵌入式硬件
tianyuanwo20 分钟前
Linux 系统日志完全指南:从 syslogd 到 rsyslog 的深度解析
linux·运维·syslog·rsyslog
pengdott21 分钟前
Linux用户态与内核态的深度剖析
linux·运维·服务器
姚青&29 分钟前
三.文件处理命令-文件查看
linux·运维·服务器
逆天小北鼻34 分钟前
FTP链接失败pam_unix(sshd:account): expired password for user
linux·运维·服务器
老兵发新帖1 小时前
open-notebook开源项目分析
linux·运维·ubuntu