51CTO博客已为您找到关于i2c、i2s音频驱动的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及i2c、i2s音频驱动问答内容。更多i2c、i2s音频驱动相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
而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...
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 (...
Linux 内核将 SOC 的 I2C 适配器(控制器)抽象成 i2c_adapter, i2c_adapter 结构体定义在 include/linux/i2c.h 文件中,结构体内容如下: /*...小结 I2C驱动有4个重要的东西:I2C总线、I2C驱动、I2C设备、I2C设备器。 I2C总线:维护着两个链表(I2C驱动、I2C设备),管理I2C设备和I2C驱动的匹配和删除等。......
和其他类似驱动一样,进来应该是分配一个驱动上下文对象,也就是实现该控制器驱动需要的一些数据类型的结合,在s3c里用struct s3c24xx_i2c来描述该上下文对象,它封装了I2C核心层定义的struct i2c_adapter(核心层以它来描述一个I2C控制器)。 Probe主要的工作有: ...
staticinti2c_do_add_adapter(struct i2c_driver*driver,struct i2c_adapter*adap){i2c_detect(adap,driver);} i2c_detect在设备驱动注册的时候也会使用到,这里也不过分追究,只需要知道其功能是为i2c_driver匹配合适的i2c_client。在文章后续i2c设备驱动会详细追一下这个函数。
struct i2c_adapter:表示一个 I2C 控制器适配器的结构体,用于管理 I2C 控制器的相关信息。它提供了控制器的配置、数据传输和中断处理等功能。struct i2c_adapter 中包含了 struct i2c_client 的列表,用于存储该适配器上已检测到的从设备。 struct imx_i2c_dma:在 i.MX 平台上,用于描述 I2C 控制器的 DMA 相关...
I2C总线驱动是对适配器端的实现,其含有适配器数据结构struct i2c_adapter,适配器算法数据结构struct i2c_algorithm。I2C设备驱动是对设备端的实现和控制,其含有设备驱动结构i2c_driver和设备客户端结构struct i2c_client。 struct i2c_adapter { struct module *owner; ...
I2C总线驱动(i2c adapter):根据平台定制的i2c驱动,其中包含i2c传输的算法设计。主要工作负责生成i2c_client,注册适配器,以及i2c_client与i2c_driver的匹配。 I2C设备驱动(i2c client driver):驱动I2C设备的代码。I2C设备驱动定义了外设的交互方式,对与不同的I2C外设需要不同的设备驱动。I2C设备驱动对上和用户应用程序打...