一 、问题

1、IIC总线上的设备是怎么描述的?

struct i2c_client
{
struct device dev;
...
};

2、IIC总线上的驱动是怎么描述的?

struct i2c_driver

{
struct device_driver driver;
};

3、IIC总线上的设备和驱动是怎么匹配的

1)、对于 Cortex - A8 通过driver提供id_table和client->name匹配

2)、对于 Cortex - A9 参考下图

4、如何告诉系统我们从设备的信息

1)、对于 Cortex - A8 

arch/arm/mach-s5c100/mac-smdkc100.c

struct i2c_borad_info i2c_des0[] = {

填写从设备的信息

}

2)、对于 Cortex - A9

通过设备树,内核转换

5、系统是如何找到我们的从设备信息,找到从设备信息后做了什么事情

1)、对于 Cortex - A8 

系统启动的时候,会把从设备信息,注册到_i2c_borad_list。

总线驱动的匹配的时候,会调用

i2c_add_numbered_adapter() 
  |
i2c_register_adapter(adap)
  |
i2c_scan_static_board_info()
  |
i2c_new_device()
{
1.产生了i2c_client (填充了从设备信息)
2.注册了client->device
}

6、在IIC总线上驱动如何获取从设备的信息

//i2c_driver的probe函数在调用的时候,会将i2c_client结构体传递过去,i2c_client包含了从设备的信息

int xxx_probe(struct i2c_client  *client, const struct i2c_device_id *id)
{

}

7、数据如何接收

利用中断

8、数据如何发送

adap->algo->master_xfer
static const struct i2c_algorithm s3c24xx_i2c_algorithm = {
.master_xfer        = s3c24xx_i2c_xfer,
.functionality       = s3c24xx_i2c_func,
};

Exynos4412 IIC 总线驱动开发相关问题总结相关推荐

  1. Exynos4412 IIC总线驱动开发(二)—— IIC 驱动开发

    前面在Exynos4412 IIC总线驱动开发(一)-- IIC 基础概念及驱动架构分析 中学习了IIC驱动的架构,下面进入我们的驱动开发过程 首先看一张代码层次图,有助于我们的理解 上面这些代码的展 ...

  2. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析

    关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸机开发 -- IIC总线 ,下面回顾下 IIC 基础概念 一.IIC 基础概念 IIC(Inter-Integrated Ci ...

  3. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析 (iic驱动框架,i2c驱动框架)...

    转载于 : http://blog.csdn.net/zqixiao_09/article/details/50917655 关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸 ...

  4. USB虚拟总线驱动开发扩展之(利用虚拟USB总线驱动实现U盘模拟)

    by fanxiushu 2020-03-25 转载或引用请注明原始作者. USB虚拟总线驱动的使用范围是非常广泛的,可以使用它来模拟各种通用的USB设备. 以前的文章阐述过基于windows平台和基 ...

  5. Esp8266 进阶之路31【外设篇】分享一个乐鑫esp8266 SDK编程使用 IIC总线驱动 0.96寸的OLED显示屏,显示天气预报信息。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  6. STM32F103模拟IIC总线驱动四个VL53L0

    2020-11-29晚更新 最近有私信说代码用不了的问题,上传的第一个版本确实有一些优化的缺陷,但是绝对是可以用的,在笔者之前的使用过程中是可以满足需求的,下载了代码的小伙伴不要有拿来即用的想法,可能 ...

  7. arm linux i2c 总线驱动,ARM-Linux中I2C总线驱动开发

    摘  要: 针对I2C总线的特点,Linux内核中定义了I2C驱动体系结构.在分析Linux的I2C总线驱动体系结构基础上,介绍了在S3C2410中设计I2C总线驱动的方法. 关键词: ARM-Lin ...

  8. iic总线驱动(适配器驱动)详解

    linux系统下,不管什么设备(总线驱动.总线设备驱动..),挂接在总线上都分两种资源:1.驱动设备资源(驱动设备资源注册)2.驱动(针对设备的驱动注册) 所以在实现和学习驱动的时候,就分这两块来进行 ...

  9. ESP32-C3学习笔记(3):ESP32 C3 IIC总线驱动光照强度传感器(基于ESP-IDF Eclipse)

    一.硬件简介 光照强度传感器使用的是物联网俱乐部的智慧路灯案例扩展板E53_SC1,购买连接 https://item.taobao.com/item.htm?spm=2013.1.w4004-222 ...

最新文章

  1. 美团一面,看看你能否回答上来?
  2. Win7环境下搭建GO开发平台——SublimeText 2
  3. Django学习手册 - ORM数据类型
  4. java for循环 嵌套for循环-标签使用
  5. 赞!15个来自 CodePen 的酷炫 CSS 动画效果
  6. 学会Python真的有高收入?「python笔记」Python对象
  7. JAVA NIO基础知识
  8. 807. 保持城市天际线
  9. Android性能提升之强引用、软引用、弱引用、虚引用使用
  10. 啊哈算法——第一章第一节:桶排序
  11. League of Demacia(平面几何)
  12. 放弃 TSLint,使用 ESLint
  13. LaTeX插入矩阵和方程组
  14. java捕鱼源码,java实现捕鱼达人
  15. 程序员做外包,真的没地位没出路吗
  16. 关于华硕飞行堡垒系列无法使用扇热小风扇的问题
  17. Micropython——关于Pico中I2C和SPI的实际应用示例(OLED屏幕显示)
  18. css左侧盒子固定右边自适应
  19. NLP-Job1 赛题理解(天池)
  20. 蒙特卡洛方法求解强化学习任务——蒙特卡洛方法介绍

热门文章

  1. JTable 失去焦点时取消编辑状态
  2. 翻译:Asp.net中多彩下拉框的实现
  3. MOSS中自定义WebService
  4. android webView的缓存机制和资源预加载
  5. leetcode116. 填充每个节点的下一个右侧节点指针(dfs)
  6. css grid布局_如何使用CSS Grid重新创建Medium的文章布局
  7. 数据草拟:使您的团队热爱数据的研讨会
  8. 迅为工业级iMX6Q开发板全新升级兼容PLUS版本|四核商业级|工业级|双核商业级...
  9. 关于C#中委托的一点理解
  10. 034_nginx报错总结