int (*master_xfer)(struct i2c_adapter *adap, struct i2c_msg *msgs, int num); int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr, unsigned short flags, char read_write, u8 command, int size, union i2c_smbus_data *data); /* To determine what the adapter supports */ u32 (...
而attach_adapter就是在clx_i2s.c文件中定义的重要的驱动结构体,定义如下。 static struct i2c_driver soc_cs42l51_i2c_drv = { .driver = { .name = CS41L51_DRV_NAME, .owner = THIS_MODULE, }, //.id = I2C_DRIVERID_CS42L51, /*this should be defined in linux/i2c-id.h */ .attach_ada...
i2c_imx->adapter.dev.parent = &pdev->dev; i2c_imx->adapter.nr = pdev->id; //适配器编号 i2c_imx->adapter.dev.of_node = pdev->dev.of_node; 使用i2c_set_adapdata(&i2c_imx->adapter, i2c_imx)将i2c_imx数据存入到adapter内部私有数据中,然后利用i2c-core中APIi2c_add_numbered_adapter(&i...
processed, or a negative value on error*/int(*master_xfer)(structi2c_adapter *adap,structi2c_msg *msgs,intnum);int(*smbus_xfer) (structi2c_adapter *adap, u16 addr, unsignedshortflags,charread_write, u8 command,intsize, union i2c_smbus_data *data);/*To determine what the adapter sup...
「I2C总线驱动(i2c adapter):」根据平台定制的i2c驱动,其中包含i2c传输的算法设计。主要工作负责生成i2c_client,注册适配器,以及i2c_client与i2c_driver的匹配。 「I2C设备驱动(i2c client driver):」驱动I2C设备的代码。I2C设备驱动定义了外设的交互方式,与不同的I2C外设需要不同的设备驱动。I2C设备驱动对上和用户应...
...「I2C总线驱动(i2c adapter):」 根据平台定制的i2c驱动,其中包含i2c传输的算法设计。...I2C设备驱动对上和用户应用程序打交道,对下和I2C核心对接。 ? 本篇主要对IIC总线驱动的总结。...i2c总线结构体 Linux在分层中,必不可少的将每一层模块封装成一个结构体,然后将结构体作为一个与外接交互的桥梁。
struct i2c_adapter:表示一个 I2C 控制器适配器的结构体,用于管理 I2C 控制器的相关信息。它提供了控制器的配置、数据传输和中断处理等功能。struct i2c_adapter 中包含了 struct i2c_client 的列表,用于存储该适配器上已检测到的从设备。 struct imx_i2c_dma:在 i.MX 平台上,用于描述 I2C 控制器的 DMA 相关...
包含了i2c_adapter、i2c_algorithm和控制I2C适配器产生通信信号的函数。通过I2C总线驱动的代码,我们可以控制I2C适配器以主控方式产生开始位、停止位读写周期,以及以从设备方式被读写,产生ACK等。 I2C设备驱动是对I2C硬件体系结构中设备端的实现,设备一般挂接在受CPU控制的I2C适配器上,通过I2C适配器与CPU交换数据。包含...
1051 imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR); 1052 1053/* Add I2C adapter */ 1054 ret = i2c_add_numbered_adapter(&i2c_imx->adapter); 1055if(ret <0){ 1056 dev_err(&pdev->dev,"registration failed\n"); 1057goto clk_disable; 1058} 1059 10...
I2C总线驱动(i2c adapter):根据平台定制的i2c驱动,其中包含i2c传输的算法设计。主要工作负责生成i2c_client,注册适配器,以及i2c_client与i2c_driver的匹配。 I2C设备驱动(i2c client driver):驱动I2C设备的代码。I2C设备驱动定义了外设的交互方式,对与不同的I2C外设需要不同的设备驱动。I2C设备驱动对上和用户应用程序打...