static int i2c_imx_probestruct platform_device pdev const struct of_device_id of_id = of_match_devicei2c_imx_dt_ids &pdev-dev; struct imx_i2c_struct i2c_imx; struct resource res; struct
- 获取设备树中匹配的设备信息或者从平台数据中获取设备信息。
- 获取资源信息,包括IO资源和中断资源。
- 映射IO资源,获取物理地址,并分配内存空间。
- 分配并初始化i2c_imx结构体。
- 设置i2c_imx适配器的各个参数,包括名称、所有权、算法、父设备等。
- 获取I2C时钟,并开启时钟使能。
- 请求中断,并初始化等待队列。
- 设置i2c_imx的adapter数据。
- 设置平台驱动数据。
- 设置电源管理相关参数,并开启电源管理。
- 设置时钟分频。
- 初始化芯片寄存器,将中断使能位置为0,清空中断状态。
- 初始化可选的总线恢复函数。
- 添加I2C适配器。
- 初始化DMA配置(如果支持)。
- 返回成功或者错误码,如果失败则进行相应的清理工作。
原文地址: http://www.cveoy.top/t/topic/fef5 著作权归作者所有。请勿转载和采集!