linux中i2c子系統代碼結構詳解

本文介紹一下linux驅動代碼中i2c子系統的驅動代碼結構和使用方法,示例平臺文件爲高通msmXXXX平臺
一,i2c子系統代碼結構

i2c-core.c

1,使用bus_register進行總線註冊

2,提供與具體硬件無關的操作邏輯供i2c-dev.c中使用
3,將操作邏輯通過EXPORT_SYMBOL導出到整個內核,供其他基於i2c的設備驅動調用
i2c-dev.c
實現i2c基本read、write功能,創建/dev/i2c-x節點
bus文件夾中的i2c-msm-v2.c
對i2c_core中物理層相關的操作進行實現,如clk配置、收發函數等等
二,i2c-dev中對i2c-croe的使用
i2c-dev.c中沒有probe函數,在初始化函數中註冊了各個設備對應的/dev/i2c-X節點。
static int __init i2c_dev_init(void)
{
	int res;

	res = register_chrdev(I2C_MAJOR, "i2c", &i2cdev_fops);
	i2c_dev_class = class_create(THIS_MODULE, "i2c-dev");
	i2c_dev
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章