Platform下的i2c
是由platform创建的
主要的函数调用关系:
mx6_sabresd_board_init-->imx6q_add_imx_i2c->imx_add_platform_device-->imx_add_platform
_device_dmamask-->platform_device_add,当platform_device_add执行时,它执行了如下图中操作:
整个探测过程完成后,回到device_add()函数,接着通过klist_add_tail()函数把设备imx-i2c.0挂到其父设备节点,也就是/sys/devices/platform。
下面在简单的分析一下平台设备驱动的注册过程,在i2c-imx.c中通过platform_driver_probe-->platform_driver_register()注册i2c平台设备驱动
最后此函数通过调用driver_register()函数对驱动进行注册。
具体的i2c设备的初始化
加载i2c设备驱动,以egalax tp驱动为例,即调用egalax_ts.c中的egalax_ts_init。下面截图是函数的调用关系,看红色标记部分(注意箭头方向,是向左的哦)。
接上图的i2c_register_driver
开始调用具体的驱动probe 如egalax就是:
执行到这,下边就会处理中断了。(对于i2c来说主要是数据的收发,另外,上报给input子系统)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库I2C驱动培训文档(6)在线全文阅读。
相关推荐: