如何在lk和preloader阶段进行i2c通讯
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
kernel起来后,I2C通讯可以通过linux的标准接口进行通讯,但有时候也会在lk接单或这preloader阶段进行通讯,在此阶段mtk 提供了相关的API,可以调用进行通讯
[PLATFORM]
MT6575 MT6577 MT6589 MT6572
[SOLUTION]
以89为例,preloader和lk的文件路径如下:
alps\mediatek\platform\mt6589\preloader\src\drivers\mt_i2c.c
alps\mediatek\platform\mt6589\lk\mt_i2c.c
1.使用前先初始化:
调用mt_i2c_init(), 在此函数内调用mt_i2c_channel_init()初始化对应的i2c通道
2. 对mt_i2c_t结构初始化,设定工作参数,如下,设定好i2c通道,地址,速度和方向等,在此阶段目前暂时不支持DMA传
输方式,speed为400就是400kbps,mode为 高速模式,标准模式,快速模式
3. 初始化完成后即可进行读写操作:调用mt_i2c_read_new();mt_i2c_write_new()等接口
kernel起来后,I2C通讯可以通过linux的标准接口进行通讯,但有时候也会在lk接单或这preloader阶段进行通讯,在此阶段mtk 提供了相关的API,可以调用进行通讯
[PLATFORM]
MT6575 MT6577 MT6589 MT6572
[SOLUTION]
以89为例,preloader和lk的文件路径如下:
alps\mediatek\platform\mt6589\preloader\src\drivers\mt_i2c.c
alps\mediatek\platform\mt6589\lk\mt_i2c.c
1.使用前先初始化:
调用mt_i2c_init(), 在此函数内调用mt_i2c_channel_init()初始化对应的i2c通道
2. 对mt_i2c_t结构初始化,设定工作参数,如下,设定好i2c通道,地址,速度和方向等,在此阶段目前暂时不支持DMA传
输方式,speed为400就是400kbps,mode为 高速模式,标准模式,快速模式
3. 初始化完成后即可进行读写操作:调用mt_i2c_read_new();mt_i2c_write_new()等接口