I2C总线(一)核心

基于linux-3.14.16

一、简介

硬件上,i2c总线由,i2c控制器、i2c总线、i2c设备组成。
I2C总线(一)核心_第1张图片
驱动代码将通过设置i2c寄存器,从而在总线上产生数据信息,来和i2c设备通信(读/写)。

i2c核心,主要的功能包括:
1、注册i2c总线类型(Linux设备驱动模型(二)总线,总线驱动和总线设备,有讲到),及定义其附属接口,比如注册i2c设备,注册i2c总线,等等。。。

2、定义i2c总线软件上的规范,

二、注册i2c总线

i2c核心在内核启动,将会执行 i2c_init,做的事情,主要是
注册 i2c总线
注册一个i2c驱动 dummy_driver
I2C总线(一)核心_第2张图片

看下i2c总线的定义,注意有,match,probe
设备驱动模型,我们了解到,当有新的驱动或者设备添加,将会调用match,和probe。
I2C总线(一)核心_第3张图片

记录一下,同时注册的i2c驱动,目前还不了解,具体用处
仅仅记录一下
I2C总线(一)核心_第4张图片

至此,就能在内核中添加i2c驱动和i2c设备了。。。

三、重要接口

你可能感兴趣的:(Linux内核和驱动,linux)