驱动里的这个 ctx->regmap = devm_regmap_init_i2c(client, &sn65dsi83_regmap_config);是如何实现i2c读写功能的
时间: 2024-03-14 14:50:01 浏览: 188
字符设备驱动程序实现读写功能
3星 · 编辑精心推荐
这段代码实现了使用 I2C 协议进行读写操作的功能。devm_regmap_init_i2c() 函数会创建一个与 I2C 设备相关联的寄存器映射(regmap)实例,以便于读写 I2C 设备的寄存器。
具体来说,该函数会传入两个参数:一个是指向 I2C 设备的指针 client,另一个是指向 regmap 配置的指针 sn65dsi83_regmap_config。其中,sn65dsi83_regmap_config 包含了一些关于 I2C 设备地址、字节序等信息的配置。
在函数内部,通过调用 i2c_new_dummy() 函数创建一个虚拟的 I2C 设备,然后将该设备与传入的 I2C 设备相关联。接着,将创建的虚拟设备作为参数传给 devm_regmap_init() 函数,创建一个 regmap 实例。
最后,将创建的 regmap 实例赋值给 ctx->regmap 变量,以便在后续的代码中使用该实例进行 I2C 设备的读写操作。
阅读全文