以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。

主要分析i2c-s3c2410.c文件。

8、adapter模块的注册

(1)平台总线方式注册

  • 因为I2C控制器属于内部外设。

(2)找到driver和device,并且确认其配对过程(在platform.c中由匹配函数来匹配);

(3)probe函数

9、probe函数分析

(1)填充一个i2c_adapter结构体,并且调用接口去注册之;

(2)从platform_device接收硬件信息,做必要的处理(request_mem_region & ioremap、request_irq等);

(3)对硬件做初始化(直接操作210内部I2C控制器的寄存器)

10、i2c_algorithm

(1)probe函数中有代码:i2c->adap.algo    = &s3c24xx_i2c_algorithm;

(2)s3c24xx_i2c_doxfer

  • 信息传输函数

(3)functionality:表明I2C接口支持哪些特性。

linux内核的I2C子系统详解4——i2c-s3c2410.c文件中的adapter、algorithm相关推荐

  1. linux内核的I2C子系统详解1——I2C总线概览、驱动框架概览

    以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 1.I2C总线汇总概览 (1)三根通信线:SCL.SDA.GND: (2)同步.串行.电平.低速(几百k).近距离: ...

  2. linux内核管道pipe实现详解

    linux内核管道pipe实现详解 (文件系统暂时不是很了解,文件系统部分暂时不做解释,此文仅解释关键流程,系统调用部分请参考前面已经发布的文章,这里不做展开) 1.管道系统调用(SyS_pipe) ...

  3. linux内核I2C子系统详解

    1.I2C通信协议 参考博客:<I2C通信协议详解和通信流程分析>:https://csdnimg.cn/release/blogv2/dist/pc/themesSkin/skin3-t ...

  4. linux内核的I2C子系统详解2——关键结构体、关键文件

    以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 3.I2C子系统的4个关键结构体 (1)struct i2c_adapter :I2C适配器 用来描述I2C控制器的, ...

  5. linux内核的I2C子系统详解5——i2c_driver的注册、i2c_client的来源

    以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 11.i2c_driver的注册 (1)以gslX680的驱动为例 (2)将驱动添加到内核SI项目中 (3)i2c_d ...

  6. 内核I2C子系统详解

    1.1 I2C总线知识 1.1.1  I2C总线物理拓扑结构       I2C总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成.通信原理是通过对SCL和SDA ...

  7. ARM Linux内核Input输入子系统浅解

    --以触摸屏驱动为例 第一章.了解linux input子系统       Linux输入设备总类繁杂,常见的包括有按键.键盘.触摸屏.鼠标.摇杆等等,他们本身就是字符设备,而linux内核将这些设备 ...

  8. Linux内核线程kernel thread详解--Linux进程的管理与调度(十)【转】

    转自:https://blog.csdn.net/gatieme/article/details/51589205 版权声明:本文为博主原创文章 && 转载请著名出处 @ http:/ ...

  9. Linux内核线程kernel thread详解--Linux进程的管理与调度

    内核线程 为什么需要内核线程 Linux内核可以看作一个服务进程(管理软硬件资源,响应用户进程的种种合理以及不合理的请求). 内核需要多个执行流并行,为了防止可能的阻塞,支持多线程是必要的. 内核线程 ...

  10. linux内核提取ret2usr,Linux内核漏洞利用技术详解 Part 2

    前言 在上一篇文章中,我们不仅为读者详细介绍了如何搭建环境,还通过一个具体的例子演示了最简单的内核漏洞利用技术:ret2usr.在本文中,我们将逐步启用更多的安全防御机制,即SMEP.KPTI和SMA ...

最新文章

  1. nginx虚拟目录设置 alias 和 root
  2. Django数据库开发思想与OPM
  3. beego 使用github.com/astaxie/beego/session异常问题
  4. vld检测不输出_输出轴热处理形变超差,找找原因
  5. JS面向对象——Object.defineProperty
  6. java oracle 分区查询_深入学习Oracle分区表及分区索引
  7. 百度飞桨开源Open Images Dataset V5目标检测比赛最好单模型MSF-DET
  8. Android Http客户端如何选择?
  9. 大数据城市规划 杨东_AI为智慧城市规划做建设
  10. python pywin32模块 修改cad_安装pywin32(Python调用win api必看)
  11. 20190828:(leetcode习题)回文链表
  12. elasticsearch 集群
  13. Win10桌面背景(壁纸)导出工具
  14. 人工智能AI系列 - 音频搜索之声纹搜索
  15. 【Android】spinner下拉框样式修改
  16. 【数字IC】深入浅出理解UART协议
  17. 蚂蚁金服 mPaaS 模块化开发与架构重构深度解析
  18. 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界:光照与材质专场
  19. 数据分析实战 -- 股票量化交易分析
  20. Hyperopt 参数优化

热门文章

  1. js 深拷贝 和 浅拷贝
  2. NodeJS中的require和import
  3. python3字符串属性(二)
  4. 01背包 模板1 2 总结
  5. 关于开源中国手机App的说明
  6. .Net环境下基于Ajax的MVC方案
  7. Python基础班---第一部分(基础)---Python基础知识---第一个Python程序
  8. JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
  9. 阿里云使用笔记-Lrzsz上传下载文件-centos7
  10. linux 每日学一点《明明白白配置lilo启动引导器》