这里以调试mt8735 7.0 中的lvds屏Icn6202为例:
icn6202是一款LVDS 屏:它可以把CPU端传出来的数字信号(譬如mipi信号)转换成lvds信号,再转换成lcd能接收的数字信号,再通过lcd显示对应的图像;lvds信号跟mipi信号一样,虽都可以做到低功耗高数率传输,但lvds信号能远距离传送;
下面开始具体分析调试LCD:
1.从上面原理图可以知道icn6202是一个i2设备,再考虑到lcm的代码在lk kernel里面都有,andorid6.0之后,lk kernel对i2c的处理和gpio口操作函数不一样;
//lk代码名称跟路径
Icn6202_wsvga_lvds_dsi_vdo.c (drivers\vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm\icn6202_wsvga_lvds_dsi_vdo)
lk:直接可以调用系统接口的i2通讯函数操作gpio口函数
//lk的i2c通讯函数
static struct mt_i2c_t icn6202_i2c;
#define LCM_I2C_ID I2C1
#define LCM_I2C_ADDR 0x58
#define LCM_I2C_MODE ST_MODE
#define LCM_I2C_SPEED 100
static int icn6202_reg_i2c_write(kal_uint8 addr, kal_uint8 value)
{
kal_int32 ret_code = I2C_OK;