Exynos4412 IIC 总线驱动开发相关问题总结
生活随笔
收集整理的這篇文章主要介紹了
Exynos4412 IIC 总线驱动开发相关问题总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一 、問題
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 总线驱动开发相关问题总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 旧项目适配iphone6和iphone
- 下一篇: 分布式系统必读中文版-分布式系统模式-分