i2c驱动

发布时间 2023-04-03 12:39:13作者: yang_dh

I2c驱动分析

  1. 通过rk3399 I2C来通讯eeprom。首先确认下使用哪个I2C控制器,

    image-20230403120923143

    eeprom是接在I2C1上面。

    1. 驱动程序分析

      先来一张图:image-20230403121333757

      I2C_Client用来表示一个I2C dev。这个dev可以来自设备树也可以用C文件来写。使用C文件写来参考:

      linux-4.4\Documentation\i2c\instantiating-devices

      image-20230403123137133

image-20230403121845124

i2c_client中包含有struct i2c_adapter *adapter,表示这个设备使用的哪个I2C控制器,可以使用i2c_get_adapter(nr)函数来获取一个adapter

使用i2c_add_driver来注册I2C驱动,调用i2c_device_probe来对I2C设备进行枚举,最后调用i2c_driver中的probe函数,在枚举过程中,必须有id_table,否则会出错image-20230403122251042

在多的理论都不如实际写代码来

i2c_eerprom