I2C总线

news2024/12/27 12:12:41

基于linux-3.14.16

一、注册I2C总线

在这里插入图片描述
在这里插入图片描述
以上代码即完成了i2c总线的注册,并且添加了一个i2c驱动dummy_driver
在这里插入图片描述
在这里插入图片描述

二、注册适配器

1、平台总线匹配

设备树有i2c1设备
在这里插入图片描述
平台总线匹配后执行probe
在这里插入图片描述

在这里插入图片描述

2、执行probe

获取中断号
在这里插入图片描述
获取地址资源并映射
在这里插入图片描述
填充i2c_adapter,
在这里插入图片描述
获取时钟,并使能
在这里插入图片描述
在这里插入图片描述
请求中断
在这里插入图片描述
设置总线速率
在这里插入图片描述
注册i2c总线
在这里插入图片描述
总结:对于每款芯片而言,每个i2c控制器都将会抽象成一个适配器(i2c_adapter)注册成i2c总线设备。

3、注册适配器总线i2c_add_numbered_adapter

i2c_add_numbered_adapter是i2c core的接口,用于注册一个i2c适配器
最终调用i2c_register_adapter注册
在这里插入图片描述

看看i2c_register_adapter里面干了什么
设置适配名称,设置bus为之前注册的i2c总线
调device_register注册,可以看到,适配器是作为一个i2c设备
在这里插入图片描述
遍历该i2c下所有的设备,添加到总线(of_i2c_register_devices)
在这里插入图片描述
看有没有匹配的i2c总线驱动跟设备匹配
在这里插入图片描述

bus_for_each_drv????

4、看如何添加i2c设备of_i2c_register_devices

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看i2c_new_device干了什么
在这里插入图片描述
在这里插入图片描述
将i2c_borad_info转成i2c_client后最终注册为一个i2c设备,可知i2c_borad_info只是一个临时过渡作用
在这里插入图片描述
在这里插入图片描述
至此完成了i2c控制器以及其下面所挂的设备的i2c设备添加,这里用到了很多接口,都是在i2c core中定义的。

三、i2c设备驱动

在设备树中,i2c3下面有一个ts设备
在这里插入图片描述
找到匹配的i2c设备驱动
在这里插入图片描述

1、注册i2c驱动i2c_register_driver

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、probe


博客园:I2C总线驱动框架详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/542379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能Python-python3_7如何安装matplotlib

Python3.7如何安装Matplotlib Matplotlib是一个Python的绘图库,可以帮助用户制作2D和3D图表和图形。它利用了NumPy、SciPy和其他Python包,具有出色的兼容性和可视化效果,广泛应用于数据分析、科学计算和工程领域。在本篇文章中,我…

chatgpt赋能Python-python2转3

Python2转3的最终结论 Python是一种流行的编程语言,但随着Python 2的维护结束,许多开发者正在考虑将他们的代码从Python 2升级到Python 3。这篇文章将介绍如何在搜索引擎优化(SEO)方面实现Python 2转3,并讨论为什么这…

页面样式问题收集及解决方案导航

1、el-table表头文字换行https://blog.csdn.net/qq_44747461/article/details/105976042 2、element-ui动态更改el-table某个单元格字体颜色:https://blog.csdn.net/agua001/article/details/107960393 Element UI 表格 el-table-column根据不同值显示不同颜色&…

ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)

ChatGPT工作提效之程序开发中的巧劲 前言一、创建MySQL数据表1.创建指令2.交互评价 二、PHP交互语句1.创建指令2.交互评价 三、javascript的交互用法1.创建指令2.交互评价 四、python的交互1.创建指令2.交互评价 总结 前言 ChatGPT是一个基于GPT模型训练的聊天机器人&#xff…

【Maven从入门到入土】

文章目录 1.Maven1.1 初识Maven依赖管理:统一项目结构 :项目构建 : 1.2 Maven概述1.2.1 Maven模型1.2.2 Maven仓库1.2.3 Maven安装 1.3 IDEA集成Maven1.3.1 配置Maven环境1.3.1.1 当前工程设置1.3.1.2 全局设置 1.3.2 Maven项目1.3.2.1 创建Maven项目1.3.2.2 POM配置…

代码随想录训练营Day37| 738.单调递增的数字 968.监控二叉树 总结

目录 学习目标 学习内容 738.单调递增的数字 968.监控二叉树 总结 学习目标 738.单调递增的数字 968.监控二叉树 总结 学习内容 738.单调递增的数字 738. 单调递增的数字 - 力扣(LeetCode)https://leetcode.cn/problems/monotone-increasing-di…

【云计算与虚拟化】第二章 实验二 Vmware Workstation 15的使用

实验二 Vmware Workstation 15的使用 在上一实验的基础上,将两台虚拟机调节到在桥接模式下,配置相应的网络参数,实现虚拟机1和2能相互通信,虚拟机1和2能够ping通外网,虚拟机1和2能ping通物理机。 (截取…

GE SR469-P5-HI-A20 带有5A相CT次级线圈的标准装置

SR469-P5-HI-A20提供四路4-20 mA模拟输出。该装置已通过CE认证。这是一个带有5A相CT次级线圈的标准装置。该装置的控制电源额定为90-300伏直流电,70-265伏交流电,48-62赫兹。 制造商美国通用电气公司,通用工业系统电压供应交流电:48-62赫兹时…

【云计算与虚拟化】第四章 实验一 在Windows 系统部署vCenter Server

实验一 在Windows 系统部署vCenter Server 1.部署两台ESXi6.0 虚拟主机,其余参数可以参考实验IP拓扑 2.在Windows Server 2012 R2中部署Storge服务器,该服务器名字为:姓名的拼音的首字母1,且要实现以下三个功能: (1)AD域控制…

【5.15】一、软件测试基础—软件概述

目录 1.1 软件概述 1.1.1 软件生命周期 1.1.2 软件开发模型 1.1.3 软件质量概述 1.1 软件概述 软件是相对于硬件而言的,它是一系列按照特定顺序组织的计算机数据和指令的集合。 软件的生命周期:软件从“出生” 到 “消亡” 的过程。 1.1.1 软件生…

超详细!Xmind的学习

哈喽,大家好。最近有小伙伴问使用xmind思维导图怎么快速上手,今天便给各位小伙伴出了这一期快速上手教程。思维导图的上手其实都是很简单的,只要知道基本功能的使用,基本上半天就能学会,一天就能熟练。 一、学习准备 …

【SpringBoot整合JWT】

目录 一、什么是JWT 二、JWT能做什么 三、为什么是JWT 1、基于传统的Session认证 2、基于JWT认证 四、JWT的结构是什么 五、JWT的第一个程序 六、封装JWT工具类 七、整合SpringBoot使用 一、什么是JWT JSON Web Token (JWT) is an open standard ([RFC 7519](http…

chatgpt赋能Python-python2转换为python3

Python 2到Python 3的转换和优化 在过去的几年中,Python 3已经成为了最流行的Python版本。因此,Python 2用户开始转向Python 3,以提高性能、安全性和可靠性。本文将讨论Python 2到Python 3的转换以及一些实用的优化技巧。 为什么要转向Pyth…

chatgpt赋能Python-python3_0列表排序方法

Python 3.0列表排序方法介绍 Python是一门广泛应用、适应性强的编程语言,而Python由于其简洁明了、易于学习、适合初学者的特点,是许多人最喜欢的编程语言之一。 Python 3.0列表排序方法是许多Python爱好者和开发者常用的功能之一。Python 3.0列表排序…

计算机网络 IP 1.1 IP基础知识

1. IP基本认识 网络层是实现主机与主机之间的通信。也叫点对点通信。 网络层(IP)和数据链路层(网络接口层)(MAC)有什么区别? IP是负责在没有直连的两个网络之间进行通信,MAC负责两个直连设备之间的通信。 只有两者一块使用&…

EasyRecovery Photo16数据恢复软件免费版下载或使用方法及安装激活教程

EasyRecovery Photo16数据恢复软件免费版下载是一款支持Mac/Wind平台进行恢复图片的专业工具,尤其是各种流行单反相机RAW格式文件,以及超大型视频文件等,摄影爱好者使用。EasyRecovery是一款非常专业的硬盘数据恢复工具,可以帮你恢…

windows搭建pyspark环境详细教程

一.安装jdk及配置环境变量: 下载地址: https://www.oracle.com/java/technologies/downloads/#java8-windows 安装步骤: 下载后点击安装,中途可以自定义安装路径,最后查看安装路径: 开始配置系统环境变量&#xff1a…

IS215UCVEM08B US2000型处理器板

IS215UCVEM08B US2000型处理器板通用电气标志VI卡 这IS215UCVEM08B是一种印刷电路板,是通用电气公司制造的Mark VI Speedtronic涡轮系列的一部分。这IS215UCVEM08B有一个小的圆形锂电池。这IS215UCVEM08B有几个链接点。电路板右手边有三个娇小的小鹿点。电路板背面…

【LLM系列之GPT】GPT(Generative Pre-trained Transformer)生成式预训练模型

GPT模型简介 GPT(Generative Pre-trained Transformer)是由OpenAI公司开发的一系列自然语言处理模型,采用多层Transformer结构来预测下一个单词的概率分布,通过在大型文本语料库中学习到的语言模式来生成自然语言文本。GPT系列模…

【STM32G431RBTx】备战蓝桥杯嵌入式→决赛试题→第九届

文章目录 前言一、题目![请添加图片描述](https://img-blog.csdnimg.cn/ccdd07679c9b4d86b6faad3554637eba.png)二、模块初始化三、代码实现interrupt.h:interrupt.c:main.h:main.c: 四、完成效果五、总结 前言 无 一、题目 二、模块初始化 1.LCD这里不用配置,直…