總結i2c相關驅動註冊層次說明

2021-06-28 17:27:25 字數 807 閱讀 8101

一:

i2c匯流排驅動註冊(介面卡驅動註冊)

i2c-s3c2410.c

(drivers\i2c\busses)

i2c_adap_s3c_init---》platform_driver_register(&s3c24xx_i2c_driver);二:

i2c匯流排註冊

i2c-core.c (drivers\i2c)

i2c_init---》bus_register(&i2c_bus_type) 三:

i2c通用介面驅動註冊(以字元方式註冊通用的i2c驅動介面,建立普通檔案訪問介面)

static const struct file_operations i2cdev_fops = ;

i2c-dev.c (drivers\i2c)

i2c_dev_init---》register_chrdev(i2c_major, "i2c", &i2cdev_fops)---》i2c_master_recv---》i2c_transfer

四: 特定i2c裝置驅動註冊(例如eeprom)(以sysfs的i2c平台方式註冊的i2c特定裝置的驅動介面,建立sysfs的bin二進位制檔案訪問介面)

at24.c (drivers\misc\eeprom)

at24_init---》i2c_add_driver(&at24_driver)--》probe---》at24_bin_read/at24_bin_write--》i2c_transfer(i2c-core.c (drivers\i2c))---》algo->master_xfer

總結,注意三四兩種介面呼叫方式的交匯處。

i2c裝置驅動

1,i2c 裝置註冊 static struct i2c board info i2c2 devices i2c裝置一般在板級 中註冊 static void msm8916 add i2c deivces void 2,i2c驅動註冊 include static const struct i2c...

I2C驅動例項解析

簡單的說,i2c驅動也就三步吧,註冊i2c裝置,註冊i2c裝置驅動,建立sysfs檔案供上層呼叫。1.註冊i2c裝置。先定義乙個i2c board info static struct i2c board info initdata x i2c info 再註冊,一般會註冊乙個client。i2c ...

i2c驅動程式

使用者空間 使用者應用程式 核心空間 sys,dev i2c客戶驅動程式 硬體 i2c裝置 i2c控制器 資料結構 i2c driver include linux i2c.h 代表乙個i2c驅動程式 i2c client address data include linux i2c.h i2c客戶...