SOC:Qualcomm msm8909
Core-Board:SC20-CE QA/PJ
Base-Board:xxx
Linux Kernel:xxx
Android:7.1
将核心板输出的MIPI显示信号通过LT8912B芯片转换成HDMI信号输出
新增驱动文件:
kernel\drivers\video\lt8912_dsi0.c
/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#define DEBUG
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define EDID_ADDR 0x50
#define LK_VIDEO_CHECK
#define LT8912_REG_CHIP_REVISION_0 (0x00)
#define LT8912_REG_CHIP_REVISION_1 (0x01)
#define LT8912_VAL_CHIP_REVISION_0 (0x12)
#define LT8912_VAL_CHIP_REVISION_1 (0xB2)
#define LT8912_DSI_CEC_I2C_ADDR_REG (0xE1)
#define LT8912_RESET_DELAY (100)
#define PINCTRL_STATE_ACTIVE "pmx_lt8912_active"
#define PINCTRL_STATE_SUSPEND "pmx_lt8912_suspend"
#define MDSS_MAX_PANEL_LEN 256
/* size of audio and speaker info Block */
/* 0x94 interrupts */
#define MONITOR_SENSE_INT_ENABLE BIT(6)
#define ACTIVE_VSYNC_EDGE BIT(5)
#define AUDIO_FIFO_FULL BIT(4)
#define MAX_WAIT_TIME (100)
#define MAX_RW_TRIES (3)
#define MAX_OPERAND_SIZE 14
#define CEC_MSG_SIZE (MAX_OPERAND_SIZE + 2)
#define HDMI_MODE_480P 0
#define HDMI_MODE_720P 1
#define HDMI_MODE_1080P 0
enum lt8912_i2c_addr {
I2C_ADDR_MAIN = 0x48,
I2C_ADDR_CEC_DSI = 0x49,
I2C_ADDR_I2S = 0x4a,
};
struct lt8912_reg_cfg {
u8 i2c_addr;
u8 reg;
u8 val;
int sleep_in_ms;
};
struct lt8912_cec_msg {
u8 buf[CEC_MSG_SIZE];
u8 timestamp;
bool pending;
};
struct lt8912 {
u8 video_mode;
int irq;
u32 irq_gpio;
u32 irq_flags;
u32 rst_gpio;
u32 rst_flags;
// struct regulator *avdd;
struct pinctrl *ts_pinctrl;
struct pinctrl_state *pinctrl_state_active;
struct pinctrl_state *pinctrl_state_suspend;
bool audio;
bool disable_gpios;
bool is_power_on;
void *edid_data;
struct workqueue_struct *workq;
//struct delayed_work lt8912_intr_work_id;
struct delayed_work lt8912_check_hpd_work_id;
// struct msm_dba_device_info dev_info;
struct i2c_client *i2c_client;
struct mutex ops_mutex;
};
static char mdss_mdp_panel[MDSS_MAX_PANEL_LEN];
static struct lt8912_reg_cfg lt8912_init_setup[] = {
/* Digital clock en*/
/* power down */
{I2C_ADDR_MAIN, 0x08, 0xff, 0},
/* HPD override */
{I2C_ADDR_MAIN, 0x09, 0xff, 0},
/* color space */
{I2C_ADDR_MAIN, 0x0a, 0xff, 0},
/* Fixed */
{I2C_ADDR_MAIN, 0x0b, 0x7c, 0},
/* HDCP */
{I2C_ADDR_MAIN, 0x0c, 0xff, 0},
/*Tx Analog*/
/* Fixed */
{I2C_ADDR_MAIN, 0x31, 0xA1, 0},
/* V1P2 */
{I2C_ADDR_MAIN, 0x32, 0xA1, 0},
/* Fixed */
{I2C_ADDR_MAIN, 0x33, 0x03, 0},
/* Fixed */
{I2C_ADDR_MAIN, 0x37, 0x00, 0},
/* Fixed */
{I2C_ADDR_MAIN, 0x38, 0x22, 0},
/* Fixed */
{I2C_ADDR_MAIN, 0x60, 0x82, 0},
/*Cbus Analog*/
/* Fixed */
{I2C_ADDR_MAIN, 0x39, 0x45, 0},
{I2C_ADDR_MAIN, 0x3a, 0x00, 0},/* add 20180818 improve hdmi output signal*/
{I2C_ADDR_MAIN, 0x3b, 0x00, 0},
/*HDMI Pll Analog*/
{I2C_ADDR_MAIN, 0x44, 0x31, 0},
/* Fixed */
{I2C_ADDR_MAIN, 0x55, 0x44, 0},
/* Fixed */
{I2C_ADDR_MAIN, 0x57, 0x01, 0},
{I2C_ADDR_MAIN, 0x5a, 0x02, 0},
/*MIPI Analog*/
/* Fixed */
{I2C_ADDR_MAIN, 0x3e, 0xc6, 0}, /* 20171204 0x8e */
//{I2C_ADDR_MAIN, 0x3f, 0x04, 0},
{I2C_ADDR_MAIN, 0x41, 0x7c, 0}, /* 20171204 0x3c */
//{I2C_ADDR_MAIN, 0x42, 0x05, 0},
};
static struct lt8912_reg_cfg lt8912_mipi_basic_set[] = {
{I2C_ADDR_CEC_DSI, 0x12,0x04, 0},
{I2C_ADDR_CEC_DSI, 0x13,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x14,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x15,0x06, 0},
{I2C_ADDR_CEC_DSI, 0x1a,0x03, 0},
{I2C_ADDR_CEC_DSI, 0x1b,0x03, 0},
};
/*static struct lt8912_reg_cfg lt8912_480p_mode[] = {
{I2C_ADDR_CEC_DSI, 0x10,0x01, 0},
{I2C_ADDR_CEC_DSI, 0x11,0x04, 0},
{I2C_ADDR_CEC_DSI, 0x18,0x60, 0},
{I2C_ADDR_CEC_DSI, 0x19,0x02, 0},
{I2C_ADDR_CEC_DSI, 0x1c,0x80, 0},
{I2C_ADDR_CEC_DSI, 0x1d,0x02, 0},
{I2C_ADDR_CEC_DSI, 0x2f,0x0c, 0},
{I2C_ADDR_CEC_DSI, 0x34,0x10, 0},
{I2C_ADDR_CEC_DSI, 0x35,0x03, 0},
{I2C_ADDR_CEC_DSI, 0x36,0x0d, 0},
{I2C_ADDR_CEC_DSI, 0x37,0x02, 0},
{I2C_ADDR_CEC_DSI, 0x38,0x0a, 0},
{I2C_ADDR_CEC_DSI, 0x39,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3a,0x21, 0},
{I2C_ADDR_CEC_DSI, 0x3b,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3c,0x28, 0},
{I2C_ADDR_CEC_DSI, 0x3d,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3e,0x08, 0},
{I2C_ADDR_CEC_DSI, 0x3f,0x00, 0},
};*/
#if HDMI_MODE_480P
static struct lt8912_reg_cfg lt8912_480p_mode[] = {
{I2C_ADDR_CEC_DSI, 0x10,0x01, 0},
{I2C_ADDR_CEC_DSI, 0x11,0x04, 0},
{I2C_ADDR_CEC_DSI, 0x18,0x80, 0}, //hsync128
{I2C_ADDR_CEC_DSI, 0x19,0x04, 0}, //vsync 4
{I2C_ADDR_CEC_DSI, 0x1c,0x20, 0}, //hline 800
{I2C_ADDR_CEC_DSI, 0x1d,0x03, 0},
{I2C_ADDR_CEC_DSI, 0x2f,0x0c, 0},
{I2C_ADDR_CEC_DSI, 0x34,0x20, 0}, //htotal 1056
{I2C_ADDR_CEC_DSI, 0x35,0x04, 0},
{I2C_ADDR_CEC_DSI, 0x36,0x74, 0}, //vtoal 628
{I2C_ADDR_CEC_DSI, 0x37,0x02, 0},
{I2C_ADDR_CEC_DSI, 0x38,0x17, 0}, //vbp 23
{I2C_ADDR_CEC_DSI, 0x39,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3a,0x01, 0}, //vfp 1
{I2C_ADDR_CEC_DSI, 0x3b,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3c,0x58, 0}, //hbp 88
{I2C_ADDR_CEC_DSI, 0x3d,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3e,0x28, 0}, //hfp 40
{I2C_ADDR_CEC_DSI, 0x3f,0x00, 0},
};
#elif HDMI_MODE_720P
static struct lt8912_reg_cfg lt8912_720p_mode[] = {
{I2C_ADDR_CEC_DSI, 0x10,0x01, 0}, //
{I2C_ADDR_CEC_DSI, 0x11,0x0a, 0}, //0a>>08
{I2C_ADDR_CEC_DSI, 0x18,0x28, 0}, //hsync 40
{I2C_ADDR_CEC_DSI, 0x19,0x05, 0}, //vsync 5
{I2C_ADDR_CEC_DSI, 0x1c,0x00, 0}, //hline 1280
{I2C_ADDR_CEC_DSI, 0x1d,0x05, 0},
{I2C_ADDR_CEC_DSI, 0x2f,0x0c, 0},
{I2C_ADDR_CEC_DSI, 0x34,0x72, 0}, //htotal 1650
{I2C_ADDR_CEC_DSI, 0x35,0x06, 0},
{I2C_ADDR_CEC_DSI, 0x36,0xee, 0}, //vtotal 750
{I2C_ADDR_CEC_DSI, 0x37,0x02, 0},
{I2C_ADDR_CEC_DSI, 0x38,0x14, 0}, //vbp 20
{I2C_ADDR_CEC_DSI, 0x39,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3a,0x05, 0}, //vfp 5
{I2C_ADDR_CEC_DSI, 0x3b,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3c,0xdc, 0}, //hbp 220
{I2C_ADDR_CEC_DSI, 0x3d,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3e,0x6e, 0}, //hfp 110
{I2C_ADDR_CEC_DSI, 0x3f,0x00, 0},
};
#elif HDMI_MODE_1080P
static struct lt8912_reg_cfg lt8912_1080p_mode[] = {
{I2C_ADDR_CEC_DSI, 0x10,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x11,0x20, 0},
{I2C_ADDR_CEC_DSI, 0x18,0x2c, 0},
{I2C_ADDR_CEC_DSI, 0x19,0x05, 0},
{I2C_ADDR_CEC_DSI, 0x1c,0x80, 0},
{I2C_ADDR_CEC_DSI, 0x1d,0x07, 0},
{I2C_ADDR_CEC_DSI, 0x2f,0x0c, 0},
{I2C_ADDR_CEC_DSI, 0x34,0x98, 0},
{I2C_ADDR_CEC_DSI, 0x35,0x08, 0},
{I2C_ADDR_CEC_DSI, 0x36,0x65, 0},
{I2C_ADDR_CEC_DSI, 0x37,0x04, 0},
{I2C_ADDR_CEC_DSI, 0x38,0x24, 0},
{I2C_ADDR_CEC_DSI, 0x39,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3a,0x04, 0},
{I2C_ADDR_CEC_DSI, 0x3b,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3c,0x94, 0},
{I2C_ADDR_CEC_DSI, 0x3d,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x3e,0x58, 0},
{I2C_ADDR_CEC_DSI, 0x3f,0x00, 0},
};
#endif
static struct lt8912_reg_cfg lt8912_ddsconfig[] = {
{I2C_ADDR_CEC_DSI, 0x4e,0xdb, 0}, /* 20171201 start */
{I2C_ADDR_CEC_DSI, 0x4f,0x97, 0},
{I2C_ADDR_CEC_DSI, 0x50,0x69, 0},
{I2C_ADDR_CEC_DSI, 0x51,0x80, 0},
{I2C_ADDR_CEC_DSI, 0x1f,0x5e, 0},
{I2C_ADDR_CEC_DSI, 0x20,0x01, 0},
{I2C_ADDR_CEC_DSI, 0x21,0x2c, 0},
{I2C_ADDR_CEC_DSI, 0x22,0x01, 0},
{I2C_ADDR_CEC_DSI, 0x23,0xfa, 0},
{I2C_ADDR_CEC_DSI, 0x24,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x25,0xc8, 0},
{I2C_ADDR_CEC_DSI, 0x26,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x27,0x5e, 0},
{I2C_ADDR_CEC_DSI, 0x28,0x01, 0},
{I2C_ADDR_CEC_DSI, 0x29,0x2c, 0},
{I2C_ADDR_CEC_DSI, 0x2a,0x01, 0},
{I2C_ADDR_CEC_DSI, 0x2b,0xfa, 0},
{I2C_ADDR_CEC_DSI, 0x2c,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x2d,0xc8, 0},
{I2C_ADDR_CEC_DSI, 0x2e,0x00, 0}, /* 20171201 end */
{I2C_ADDR_CEC_DSI, 0x42,0x64, 0},
{I2C_ADDR_CEC_DSI, 0x43,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x44,0x04, 0},
{I2C_ADDR_CEC_DSI, 0x45,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x46,0x59, 0},
{I2C_ADDR_CEC_DSI, 0x47,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x48,0xf2, 0},
{I2C_ADDR_CEC_DSI, 0x49,0x06, 0},
{I2C_ADDR_CEC_DSI, 0x4a,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x4b,0x72, 0},
{I2C_ADDR_CEC_DSI, 0x4c,0x45, 0},
{I2C_ADDR_CEC_DSI, 0x4d,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x52,0x08, 0},
{I2C_ADDR_CEC_DSI, 0x53,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x54,0xb2, 0},
{I2C_ADDR_CEC_DSI, 0x55,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x56,0xe4, 0},
{I2C_ADDR_CEC_DSI, 0x57,0x0d, 0},
{I2C_ADDR_CEC_DSI, 0x58,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x59,0xe4, 0},
{I2C_ADDR_CEC_DSI, 0x5a,0x8a, 0},
{I2C_ADDR_CEC_DSI, 0x5b,0x00, 0},
{I2C_ADDR_CEC_DSI, 0x5c,0x34, 0},
{I2C_ADDR_CEC_DSI, 0x1e,0x4f, 0},
{I2C_ADDR_CEC_DSI, 0x51,0x00, 0},
};
static struct lt8912_reg_cfg lt8912_rxlogicres[] = {
{I2C_ADDR_MAIN, 0x03,0x7f, 100},
{I2C_ADDR_MAIN, 0x03,0xff, 0},
};
static struct lt8912_reg_cfg I2S_cfg[] = {
{I2C_ADDR_MAIN, 0xB2, 0x01, 0},
{I2C_ADDR_I2S, 0x06, 0x08, 0},
{I2C_ADDR_I2S, 0x07, 0xf0, 0},
{I2C_ADDR_I2S, 0x34, 0xd2, 0},
};
static int lt8912_write(struct lt8912 *pdata, u8 addr, u8 reg, u8 val)
{
int ret = 0;
if (!pdata) {
printk("dsi0 xxxx%s: Invalid argument\n", __func__);
return -EINVAL;
}
pdata->i2c_client->addr = addr;
ret = i2c_smbus_write_byte_data(pdata->i2c_client, reg, val);
if (ret)
pr_err_ratelimited("%s: wr err: addr 0x%x, reg 0x%x, val 0x%x\n",
__func__, addr, reg, val);
return ret;
}
static int lt8912_read(struct lt8912 *pdata, u8 addr,
u8 reg, char *buf, u32 size)
{
int ret = 0;
int index = reg;
if (!pdata) {
printk("dsi0 xxxx%s: Invalid argument\n", __func__);
return -EINVAL;
}
pdata->i2c_client->addr = addr;
for (index = reg; index < (reg + size); index++) {
ret = i2c_smbus_read_byte_data(pdata->i2c_client, index);
if (ret < 0) {
printk("failed to read byte data index=%d\n", index);
return -1;
}
buf[index-reg] = (u8)ret;
}
/*
ret = msm_dba_helper_i2c_read(pdata->i2c_client, addr, reg, buf, size);
if (ret)
pr_err_ratelimited("%s: read err: addr 0x%x, reg 0x%x, size 0x%x\n",
__func__, addr, reg, size);
*/
return 0;
}
//#define LK_TEST_PATTERN_MODE 1
#ifdef LK_TEST_PATTERN_MODE
#define LT8912B_I2C_ADDRESS1 0x48
#define LT8912B_I2C_ADDRESS2 0x49
static void LK_Test_pattern_480P(struct lt8912 *pdata)
{
//static int lt8912_write(struct lt8912 *pdata, u8 addr, u8 reg, u8 val)
//HDMI pattern Out(480P)
printk("====================== richard: LK_Test_pattern_480P begin =================== \n");
//0x48
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x08,0xff);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x09,0xff);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x0a,0xff);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x0b,0xff);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x0c,0xff);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x31,0xa1);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x32,0xa1);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x33,0x03);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x37,0x00);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x38,0x22);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x60,0x82);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x39,0x45);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x3b,0x00);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x44,0x31);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x55,0x44);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x57,0x01);
lt8912_write(pdata,LT8912B_I2C_ADDRESS1,0x5a,0x02);
//0x49
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x10,0x20); // term en To analog phy for trans lp mode to hs mode
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x11,0x04); // settle Set timing for dphy trans state from PRPR to SOT state
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x12,0x04); // trail
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x13,0x00); // 4 lane // 01 lane // 02 2 lane //03 3lane
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x14,0x00); //debug mux
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x15,0x00);
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x1a,0x03); // hshift 3
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x1b,0x03); // vshift 3
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x18,0x3e); // hwidth 62
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x19,0x06); // vwidth 6
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x1c,0xd0); // pix num hactive
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x1d,0x02);
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x1e,0x67); //h v d pol hdmi sel pll sel
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x2f,0x0c); //fifo_buff_length 12
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x34,0x5a); // htotal 858
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x35,0x03); // htotal 858
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x36,0x0d); // vtotal 525
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x37,0x02); // vtotal 525
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x38,0x1e); // vbp 30
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x39,0x00); // vbp 30
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x3a,0x09); // vfp 9
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x3b,0x00); // vfp 9
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x3c,0x3c); // hbp 60
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x3d,0x00); // hbp 60
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x3e,0x10); // hfp 16
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x3f,0x00); // hfp 16
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x72,0x12);
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x73,0x7a); //RGD_PTN_DE_DLY[7:0]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x74,0x00); //RGD_PTN_DE_DLY[11:8] 260
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x75,0x24); //RGD_PTN_DE_TOP[6:0] 150
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x76,0xd0); //RGD_PTN_DE_CNT[7:0]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x77,0xe0); //RGD_PTN_DE_LIN[7:0]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x78,0x12); //RGD_PTN_DE_LIN[10:8],RGD_PTN_DE_CNT[11:8]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x79,0x5a); //RGD_PTN_H_TOTAL[7:0]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x7a,0x0d); //RGD_PTN_V_TOTAL[7:0]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x7b,0x23); //RGD_PTN_V_TOTAL[10:8],RGD_PTN_H_TOTAL[11:8]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x7c,0x3e); //RGD_PTN_HWIDTH[7:0]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x7d,0x06); //RGD_PTN_HWIDTH[9:8],RGD_PTN_VWIDTH[5:0]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x70,0x80);
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x71,0x51);
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x4e,0x66); //strm_sw_freq_word[ 7: 0]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x4f,0x66); //strm_sw_freq_word[15: 8]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x50,0x26); //strm_sw_freq_word[23:16]
lt8912_write(pdata,LT8912B_I2C_ADDRESS2,0x51,0x80); //pattern en
printk("====================== richard: LK_Test_pattern_480P end =================== \n");
}
#endif
static void lt8912_write_array(struct lt8912 *pdata,
struct lt8912_reg_cfg *cfg, int size)
{
int ret = 0;
int i;
size = size / sizeof(struct lt8912_reg_cfg);
for (i = 0; i < size; i++) {
ret = lt8912_write(pdata, cfg[i].i2c_addr,
cfg[i].reg, cfg[i].val);
if (ret != 0){
pr_err("dsi0 xxxx%s: lt8912 reg write %02X to %02X failed.\n",
__func__, cfg[i].val, cfg[i].reg);
}
if (cfg[i].sleep_in_ms)
msleep(cfg[i].sleep_in_ms);
}
}
static int lt8912_read_device_rev(struct lt8912 *pdata)
{
u8 rev = 0;
int ret;
int i = 0;
ret = lt8912_read(pdata, I2C_ADDR_MAIN, LT8912_REG_CHIP_REVISION_0,
&rev, 1);
if (ret || rev != LT8912_VAL_CHIP_REVISION_0)
{
pr_err("dsi0 xxxxcheck chip revision not match ret =%d reg = 0x%x, val = 0x%x\n", ret, LT8912_REG_CHIP_REVISION_0, rev);
// return -1;
}
printk(" i = %d, dsi0 xxxx%s: LT8912_REG_CHIP_REVISION_0= %d\n", i, __func__, rev);
// msleep(1000);
ret = lt8912_read(pdata, I2C_ADDR_MAIN, LT8912_REG_CHIP_REVISION_1,
&rev, 1);
if (ret || rev != LT8912_VAL_CHIP_REVISION_1)
{
pr_err("dsi0 xxxxcheck chip revision not match reg = 0x%x, val = 0x%x\n", LT8912_REG_CHIP_REVISION_1, rev);
// return -1;
}
printk("dsi0 xxxx%s: LT8912_REG_CHIP_REVISION_1= %d\n", __func__, rev);
//return ret;
return 0;
}
static int lt8912_parse_dt(struct device *dev,
struct lt8912 *pdata)
{
struct device_node *np = dev->of_node;
u32 temp_val = 0;
int ret = 0;
ret = of_property_read_u32(np, "instance_id", &temp_val);
printk("dsi0 xxxx%s: DT property %s is %X\n", __func__, "instance_id",
temp_val);
if (ret)
goto end;
//pdata->dev_info.instance_id = temp_val;
pdata->audio = of_property_read_bool(np, "adi,enable-audio");
/* Get pinctrl if target uses pinctrl */
/*
pdata->ts_pinctrl = devm_pinctrl_get(dev);
if (IS_ERR_OR_NULL(pdata->ts_pinctrl)) {
ret = PTR_ERR(pdata->ts_pinctrl);
pr_err("dsi0 xxxx%s: Pincontrol DT property returned %X\n",
__func__, ret);
}
pdata->pinctrl_state_active = pinctrl_lookup_state(pdata->ts_pinctrl,
"pmx_lt8912_active");
if (IS_ERR_OR_NULL(pdata->pinctrl_state_active)) {
ret = PTR_ERR(pdata->pinctrl_state_active);
pr_err("dsi0 xxxxCan not lookup %s pinstate %d\n",
PINCTRL_STATE_ACTIVE, ret);
}
pdata->pinctrl_state_suspend = pinctrl_lookup_state(pdata->ts_pinctrl,
"pmx_lt8912_suspend");
if (IS_ERR_OR_NULL(pdata->pinctrl_state_suspend)) {
ret = PTR_ERR(pdata->pinctrl_state_suspend);
pr_err("dsi0 xxxxCan not lookup %s pinstate %d\n",
PINCTRL_STATE_SUSPEND, ret);
}
pdata->disable_gpios = of_property_read_bool(np,
"adi,disable-gpios");
if (!(pdata->disable_gpios)) {
pdata->irq_gpio = of_get_named_gpio_flags(np,
"adi,irq-gpio", 0, &pdata->irq_flags);
pdata->rst_gpio = of_get_named_gpio_flags(np,
"adi,rst-gpio", 0, &pdata->rst_flags);
}
*/
/*
pdata->avdd = regulator_get_optional(dev, "avdd");
if (IS_ERR(pdata->avdd)) {
ret = PTR_ERR(pdata->avdd);
pr_err("dsi0 xxxxRegulator get failed avdd ret=%d\n", ret);
}
*/
end:
return ret;
}
static int lt8912_gpio_configure(struct lt8912 *pdata, bool on)
{
int ret = 0;
if (pdata->disable_gpios)
return 0;
if (on) {
if (gpio_is_valid(pdata->rst_gpio)) {
ret = gpio_request(pdata->rst_gpio, "lt8912_rst_gpio");
if (ret) {
pr_err("dsi0 xxxx%d unable to request gpio [%d] ret=%d\n",
__LINE__, pdata->rst_gpio, ret);
goto err_none;
}
ret = gpio_direction_output(pdata->rst_gpio, 1);
if (ret) {
pr_err("dsi0 xxxxunable to set dir for gpio[%d]\n",
pdata->rst_gpio);
goto err_rst_gpio;
}
} else {
pr_err("dsi0 xxxxrst gpio not provided\n");
goto err_none;
}
if (gpio_is_valid(pdata->irq_gpio)) {
ret = gpio_request(pdata->irq_gpio, "lt8912_irq_gpio");
if (ret) {
pr_err("dsi0 xxxx%d unable to request gpio [%d] ret=%d\n",
__LINE__, pdata->irq_gpio, ret);
goto err_rst_gpio;
}
ret = gpio_direction_input(pdata->irq_gpio);
if (ret) {
pr_err("dsi0 xxxxunable to set dir for gpio[%d]\n",
pdata->irq_gpio);
goto err_irq_gpio;
}
} else {
pr_err("dsi0 xxxxirq gpio not provided\n");
goto err_rst_gpio;
}
return 0;
} else {
if (gpio_is_valid(pdata->rst_gpio))
gpio_free(pdata->rst_gpio);
if (gpio_is_valid(pdata->irq_gpio))
gpio_free(pdata->irq_gpio);
return 0;
}
err_irq_gpio:
if (gpio_is_valid(pdata->irq_gpio))
gpio_free(pdata->irq_gpio);
err_rst_gpio:
if (gpio_is_valid(pdata->rst_gpio))
gpio_free(pdata->rst_gpio);
err_none:
return ret;
}
static struct i2c_device_id lt8912_id[] = {
{ "lt8912_dsi0", 0},
{}
};
/* Device Operations */
static int lt8912_power_on(struct lt8912 *pdata)
{
lt8912_write_array(pdata, lt8912_init_setup,
sizeof(lt8912_init_setup));
lt8912_write_array(pdata, lt8912_mipi_basic_set,
sizeof(lt8912_mipi_basic_set));
return 0;
}
static int lt8912_video_on(struct lt8912 *pdata)
{
/*
int i = 0;
LK_Test_pattern_480P(pdata);
for (i = 0; i < 15; i++) {
printk("i = %d\n" ,i);
msleep(1000);
}
*/
//#if HDMI_MODE_480P
// lt8912_write_array(pdata, lt8912_480p_mode,
// sizeof(lt8912_480p_mode));
//#elif HDMI_MODE_720P
lt8912_write_array(pdata, lt8912_720p_mode,
sizeof(lt8912_720p_mode));
//#elif HDMI_MODE_1080P
// lt8912_write_array(pdata, lt8912_1080p_mode,
// sizeof(lt8912_1080p_mode));
//#endif
lt8912_write_array(pdata, lt8912_ddsconfig,
sizeof(lt8912_ddsconfig));
lt8912_write_array(pdata, lt8912_rxlogicres,
sizeof(lt8912_rxlogicres));
return 0;
}
#ifdef LK_VIDEO_CHECK
static struct lt8912 *gpdata;
static int show_check_video(void *data)
{
int ret = 0;
int connected = 0;
u8 rev0 = 0, rev1=1, rev2=1, rev3=1, rev4=1;
if (rev4) {
msleep(5000);
}
while(1) {
lt8912_read(gpdata, I2C_ADDR_MAIN, 0xC1, &rev0, 1);
connected = (rev0 & BIT(7));
printk("dsi0 xxxxlt8912======connected = %d\n", connected);
printk("dsi0 xxxxlt8912======video check=======\n");
ret = lt8912_read(gpdata, I2C_ADDR_MAIN, 0x9C, &rev1, 1);
ret = lt8912_read(gpdata, I2C_ADDR_MAIN, 0x9D, &rev2, 1);
ret = lt8912_read(gpdata, I2C_ADDR_MAIN, 0x9E, &rev3, 1);
ret = lt8912_read(gpdata, I2C_ADDR_MAIN, 0x9F, &rev4, 1);
printk( "dsi0 xxxxlt8912======= video check reg0x9C: %x, reg0x9D: %x, reg0x9E: %x, reg0x9F: %x ============ \n", rev1,rev2,rev3,rev4);
msleep(5000);
}
return 0;
}
#endif
static int lt8912_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
static struct lt8912 *pdata;
int ret = 0;
int connected = 0;
#ifdef LK_VIDEO_CHECK
unsigned char rev1=1, rev2=1, rev3=1, rev4 = 1;
static struct task_struct *test_task=NULL;
#endif
printk("dsi0 xxxx%s enter\n", __func__);
if (!client || !client->dev.of_node) {
pr_err("dsi0 xxxx%s: invalid input\n", __func__);
return -EINVAL;
}
pdata = devm_kzalloc(&client->dev,
sizeof(struct lt8912), GFP_KERNEL);
if (!pdata)
{
pr_err("dsi0 xxxxalloc pdata failed\n");
return -ENOMEM;
}
ret = lt8912_parse_dt(&client->dev, pdata);
if (ret) {
pr_err("dsi0 xxxx%s: Failed to parse DT\n", __func__);
goto err_dt_parse;
}
pdata->i2c_client = client;
/*
if (!IS_ERR(pdata->avdd)) {
ret = regulator_enable(pdata->avdd);
if (ret) {
pr_err("dsi0 xxxx%s: Regulator avdd enable failed ret=%d\n",__func__, ret);
regulator_disable(pdata->avdd);
}
}
*/
pdata->disable_gpios = 1;
ret = lt8912_gpio_configure(pdata, true);
if (ret) {
pr_err("dsi0 xxxx%s: Failed to configure GPIOs\n", __func__);
goto err_dt_parse;
}
mutex_init(&pdata->ops_mutex);
ret = lt8912_read_device_rev(pdata);
if (ret) {
pr_err("dsi0 xxxx%s: Failed to read chip rev\n", __func__);
goto err_i2c_rev;
}
/*
ret = pinctrl_select_state(pdata->ts_pinctrl,
pdata->pinctrl_state_active);
if (ret < 0)
pr_err("dsi0 xxxx%s: Failed to select %s pinstate %d\n",
__func__, PINCTRL_STATE_ACTIVE, ret);
*/
if (pdata->audio) {
printk("dsi0 xxxx%s: enabling default audio configs\n", __func__);
lt8912_write_array(pdata, I2S_cfg, sizeof(I2S_cfg));
}
msleep(500);
printk("dsi0 xxxx%s start power on .......------------------------------------------__>\n", __func__);
lt8912_power_on(pdata);
printk("dsi0 xxxx%s start video on .......\n", __func__);
lt8912_video_on(pdata);
#ifdef LK_VIDEO_CHECK
msleep(1000);
lt8912_read(gpdata, I2C_ADDR_MAIN, 0xC1, &rev1, 1);
connected = (rev1 & BIT(7));
printk("dsi0 xxxxlt8912======connected = %d\n", connected);
printk("dsi0 xxxxlt8912======video check=======\n");
ret = lt8912_read(pdata, I2C_ADDR_MAIN, 0x9c, &rev1, 1);
ret = lt8912_read(pdata, I2C_ADDR_MAIN, 0x9d, &rev2, 1);
ret = lt8912_read(pdata, I2C_ADDR_MAIN, 0x9e, &rev3, 1);
ret = lt8912_read(pdata, I2C_ADDR_MAIN, 0x9f, &rev4, 1);
printk( "dsi0 xxxxlt8912======= video check reg0x9c: %x, reg0x9d: %x, reg0x9e: %x, reg0x9f: %x ============ \n", rev1,rev2,rev3,rev4);
gpdata=pdata;
test_task = kthread_run(show_check_video,NULL,"test_task");
#endif
#ifdef LK_LT8912_INIT
if (rev4 != 2) {
printk("dsi0 xxxx%s start power on .......------------------------------------------__>\n", __func__);
lt8912_power_on(pdata);
printk("dsi0 xxxx%s start video on .......\n", __func__);
lt8912_video_on(pdata);
}
#endif
pm_runtime_enable(&client->dev);
pm_runtime_set_active(&client->dev);
return 0;
err_i2c_rev:
lt8912_gpio_configure(pdata, false);
err_dt_parse:
devm_kfree(&client->dev, pdata);
return ret;
}
static int lt8912_remove(struct i2c_client *client)
{
int ret = -EINVAL;
struct msm_dba_device_info *dev;
struct lt8912 *pdata;
if (!client)
goto end;
dev = dev_get_drvdata(&client->dev);
if (!dev)
goto end;
pm_runtime_disable(&client->dev);
ret = lt8912_gpio_configure(pdata, false);
mutex_destroy(&pdata->ops_mutex);
devm_kfree(&client->dev, pdata);
end:
return ret;
}
static const struct of_device_id lt8912_dt_match[] = {
{.compatible = "qcom,lt8912_dsi0"},
{}
};
static struct i2c_driver lt8912_driver = {
.driver = {
.name = "lt8912_dsi0",
.of_match_table = lt8912_dt_match,
.owner = THIS_MODULE,
},
.probe = lt8912_probe,
.remove = lt8912_remove,
.id_table = lt8912_id,
};
static int __init lt8912_init(void)
{
printk("------------------------------------------dsi0 xxxx%s enter\n", __func__);
return i2c_add_driver(<8912_driver);
}
static void __exit lt8912_exit(void)
{
i2c_del_driver(<8912_driver);
}
module_param_string(panel, mdss_mdp_panel, MDSS_MAX_PANEL_LEN, 0);
module_init(lt8912_init);
module_exit(lt8912_exit);
MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("lt8912 driver");
修改Makefile:
kernel\drivers\video\Makefile
加入新编译项
obj-y += lt8912_dsi0.o
完整的文件:
# Makefile for the Linux video drivers.
# 5 Aug 1999, James Simmons,
# Rewritten to use lists instead of if-statements.
# Each configuration option enables a list of files.
obj-$(CONFIG_VGASTATE) += vgastate.o
obj-$(CONFIG_HDMI) += hdmi.o
obj-y += fb_notify.o
#add by rid
obj-y += lt8912_dsi0.o
obj-$(CONFIG_FB) += fb.o
fb-y := fbmem.o fbmon.o fbcmap.o fbsysfs.o \
modedb.o fbcvt.o
fb-objs := $(fb-y)
obj-$(CONFIG_ADF) += adf/
obj-$(CONFIG_VT) += console/
obj-$(CONFIG_LOGO) += logo/
obj-y += backlight/
obj-$(CONFIG_EXYNOS_VIDEO) += exynos/
obj-$(CONFIG_FB_CFB_FILLRECT) += cfbfillrect.o
obj-$(CONFIG_FB_CFB_COPYAREA) += cfbcopyarea.o
obj-$(CONFIG_FB_CFB_IMAGEBLIT) += cfbimgblt.o
obj-$(CONFIG_FB_SYS_FILLRECT) += sysfillrect.o
obj-$(CONFIG_FB_SYS_COPYAREA) += syscopyarea.o
obj-$(CONFIG_FB_SYS_IMAGEBLIT) += sysimgblt.o
obj-$(CONFIG_FB_SYS_FOPS) += fb_sys_fops.o
obj-$(CONFIG_FB_SVGALIB) += svgalib.o
obj-$(CONFIG_FB_MACMODES) += macmodes.o
obj-$(CONFIG_FB_DDC) += fb_ddc.o
obj-$(CONFIG_FB_DEFERRED_IO) += fb_defio.o
obj-$(CONFIG_FB_WMT_GE_ROPS) += wmt_ge_rops.o
# Hardware specific drivers go first
obj-$(CONFIG_FB_AMIGA) += amifb.o c2p_planar.o
obj-$(CONFIG_FB_ARC) += arcfb.o
obj-$(CONFIG_FB_CLPS711X) += clps711xfb.o
obj-$(CONFIG_FB_CYBER2000) += cyber2000fb.o
obj-$(CONFIG_FB_GRVGA) += grvga.o
obj-$(CONFIG_FB_PM2) += pm2fb.o
obj-$(CONFIG_FB_PM3) += pm3fb.o
obj-$(CONFIG_FB_I740) += i740fb.o
obj-$(CONFIG_FB_MATROX) += matrox/
obj-$(CONFIG_FB_RIVA) += riva/
obj-$(CONFIG_FB_NVIDIA) += nvidia/
obj-$(CONFIG_FB_ATY) += aty/ macmodes.o
obj-$(CONFIG_FB_ATY128) += aty/ macmodes.o
obj-$(CONFIG_FB_RADEON) += aty/
obj-$(CONFIG_FB_SIS) += sis/
obj-$(CONFIG_FB_VIA) += via/
obj-$(CONFIG_FB_KYRO) += kyro/
obj-$(CONFIG_FB_SAVAGE) += savage/
obj-$(CONFIG_FB_GEODE) += geode/
obj-$(CONFIG_FB_MBX) += mbx/
obj-$(CONFIG_FB_NEOMAGIC) += neofb.o
obj-$(CONFIG_FB_3DFX) += tdfxfb.o
obj-$(CONFIG_FB_CONTROL) += controlfb.o
obj-$(CONFIG_FB_PLATINUM) += platinumfb.o
obj-$(CONFIG_FB_VALKYRIE) += valkyriefb.o
obj-$(CONFIG_FB_CT65550) += chipsfb.o
obj-$(CONFIG_FB_IMSTT) += imsttfb.o
obj-$(CONFIG_FB_FM2) += fm2fb.o
obj-$(CONFIG_FB_VT8623) += vt8623fb.o
obj-$(CONFIG_FB_TRIDENT) += tridentfb.o
obj-$(CONFIG_FB_LE80578) += vermilion/
obj-$(CONFIG_FB_S3) += s3fb.o
obj-$(CONFIG_FB_ARK) += arkfb.o
obj-$(CONFIG_FB_STI) += stifb.o
obj-$(CONFIG_FB_FFB) += ffb.o sbuslib.o
obj-$(CONFIG_FB_CG6) += cg6.o sbuslib.o
obj-$(CONFIG_FB_CG3) += cg3.o sbuslib.o
obj-$(CONFIG_FB_BW2) += bw2.o sbuslib.o
obj-$(CONFIG_FB_CG14) += cg14.o sbuslib.o
obj-$(CONFIG_FB_P9100) += p9100.o sbuslib.o
obj-$(CONFIG_FB_TCX) += tcx.o sbuslib.o
obj-$(CONFIG_FB_LEO) += leo.o sbuslib.o
obj-$(CONFIG_FB_SGIVW) += sgivwfb.o
obj-$(CONFIG_FB_ACORN) += acornfb.o
obj-$(CONFIG_FB_ATARI) += atafb.o c2p_iplan2.o atafb_mfb.o \
atafb_iplan2p2.o atafb_iplan2p4.o atafb_iplan2p8.o
obj-$(CONFIG_FB_MAC) += macfb.o
obj-$(CONFIG_FB_HECUBA) += hecubafb.o
obj-$(CONFIG_FB_N411) += n411.o
obj-$(CONFIG_FB_HGA) += hgafb.o
obj-$(CONFIG_FB_XVR500) += sunxvr500.o
obj-$(CONFIG_FB_XVR2500) += sunxvr2500.o
obj-$(CONFIG_FB_XVR1000) += sunxvr1000.o
obj-$(CONFIG_FB_IGA) += igafb.o
obj-$(CONFIG_FB_APOLLO) += dnfb.o
obj-$(CONFIG_FB_Q40) += q40fb.o
obj-$(CONFIG_FB_TGA) += tgafb.o
obj-$(CONFIG_FB_HP300) += hpfb.o
obj-$(CONFIG_FB_G364) += g364fb.o
obj-$(CONFIG_FB_EP93XX) += ep93xx-fb.o
obj-$(CONFIG_FB_SA1100) += sa1100fb.o
obj-$(CONFIG_FB_HIT) += hitfb.o
obj-$(CONFIG_FB_ATMEL) += atmel_lcdfb.o
obj-$(CONFIG_FB_PVR2) += pvr2fb.o
obj-$(CONFIG_FB_VOODOO1) += sstfb.o
obj-$(CONFIG_FB_ARMCLCD) += amba-clcd.o
obj-$(CONFIG_FB_GOLDFISH) += goldfishfb.o
obj-$(CONFIG_FB_68328) += 68328fb.o
obj-$(CONFIG_FB_GBE) += gbefb.o
obj-$(CONFIG_FB_CIRRUS) += cirrusfb.o
obj-$(CONFIG_FB_ASILIANT) += asiliantfb.o
obj-$(CONFIG_FB_PXA) += pxafb.o
obj-$(CONFIG_FB_PXA168) += pxa168fb.o
obj-$(CONFIG_PXA3XX_GCU) += pxa3xx-gcu.o
obj-$(CONFIG_MMP_DISP) += mmp/
obj-$(CONFIG_FB_W100) += w100fb.o
obj-$(CONFIG_FB_TMIO) += tmiofb.o
obj-$(CONFIG_FB_AU1100) += au1100fb.o
obj-$(CONFIG_FB_AU1200) += au1200fb.o
obj-$(CONFIG_FB_VT8500) += vt8500lcdfb.o
obj-$(CONFIG_FB_WM8505) += wm8505fb.o
obj-$(CONFIG_FB_PMAG_AA) += pmag-aa-fb.o
obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o
obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o
obj-$(CONFIG_FB_MAXINE) += maxinefb.o
obj-$(CONFIG_FB_METRONOME) += metronomefb.o
obj-$(CONFIG_FB_BROADSHEET) += broadsheetfb.o
obj-$(CONFIG_FB_AUO_K190X) += auo_k190x.o
obj-$(CONFIG_FB_AUO_K1900) += auo_k1900fb.o
obj-$(CONFIG_FB_AUO_K1901) += auo_k1901fb.o
obj-$(CONFIG_FB_S1D13XXX) += s1d13xxxfb.o
obj-$(CONFIG_FB_SH7760) += sh7760fb.o
obj-$(CONFIG_FB_IMX) += imxfb.o
obj-$(CONFIG_FB_S3C) += s3c-fb.o
obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o
obj-$(CONFIG_FB_FSL_DIU) += fsl-diu-fb.o
obj-$(CONFIG_FB_COBALT) += cobalt_lcdfb.o
obj-$(CONFIG_FB_IBM_GXT4500) += gxt4500.o
obj-$(CONFIG_FB_PS3) += ps3fb.o
obj-$(CONFIG_FB_SM501) += sm501fb.o
obj-$(CONFIG_FB_UDL) += udlfb.o
obj-$(CONFIG_FB_SMSCUFX) += smscufx.o
obj-$(CONFIG_FB_XILINX) += xilinxfb.o
obj-$(CONFIG_SH_MIPI_DSI) += sh_mipi_dsi.o
obj-$(CONFIG_FB_SH_MOBILE_HDMI) += sh_mobile_hdmi.o
obj-$(CONFIG_FB_SH_MOBILE_MERAM) += sh_mobile_meram.o
obj-$(CONFIG_FB_SH_MOBILE_LCDC) += sh_mobile_lcdcfb.o
obj-$(CONFIG_FB_OMAP) += omap/
obj-y += omap2/
obj-$(CONFIG_XEN_FBDEV_FRONTEND) += xen-fbfront.o
obj-$(CONFIG_FB_CARMINE) += carminefb.o
obj-$(CONFIG_FB_MB862XX) += mb862xx/
obj-$(CONFIG_FB_MSM) += msm/
obj-$(CONFIG_FB_NUC900) += nuc900fb.o
obj-$(CONFIG_FB_JZ4740) += jz4740_fb.o
obj-$(CONFIG_FB_PUV3_UNIGFX) += fb-puv3.o
obj-$(CONFIG_FB_HYPERV) += hyperv_fb.o
# Platform or fallback drivers go here
obj-$(CONFIG_FB_UVESA) += uvesafb.o
obj-$(CONFIG_FB_VESA) += vesafb.o
obj-$(CONFIG_FB_EFI) += efifb.o
obj-$(CONFIG_FB_VGA16) += vga16fb.o
obj-$(CONFIG_FB_OF) += offb.o
obj-$(CONFIG_FB_BF537_LQ035) += bf537-lq035.o
obj-$(CONFIG_FB_BF54X_LQ043) += bf54x-lq043fb.o
obj-$(CONFIG_FB_BFIN_LQ035Q1) += bfin-lq035q1-fb.o
obj-$(CONFIG_FB_BFIN_T350MCQB) += bfin-t350mcqb-fb.o
obj-$(CONFIG_FB_BFIN_7393) += bfin_adv7393fb.o
obj-$(CONFIG_FB_MX3) += mx3fb.o
obj-$(CONFIG_FB_DA8XX) += da8xx-fb.o
obj-$(CONFIG_FB_MXS) += mxsfb.o
obj-$(CONFIG_FB_SSD1307) += ssd1307fb.o
obj-$(CONFIG_FB_SIMPLE) += simplefb.o
# the test framebuffer is last
obj-$(CONFIG_FB_VIRTUAL) += vfb.o
#video output switch sysfs driver
obj-$(CONFIG_VIDEO_OUTPUT_CONTROL) += output.o
obj-$(CONFIG_VIDEOMODE_HELPERS) += display_timing.o videomode.o
ifeq ($(CONFIG_OF),y)
obj-$(CONFIG_VIDEOMODE_HELPERS) += of_display_timing.o of_videomode.o
endif
修改文件:
kernel\arch\arm\boot\dts\qcom\dsi-panel-ili9881c-720p-video.dtsi
修改“&mdss_mdp”中“dsi_ili9881c_720p_video: qcom,mdss_dsi_ili9881c_720p_video”中对应内容如下:
qcom,mdss-dsi-panel-width = <1280>;
qcom,mdss-dsi-panel-height = <720>;
qcom,mdss-dsi-h-front-porch = <110>;
qcom,mdss-dsi-h-back-porch = <220>;
qcom,mdss-dsi-h-pulse-width = <40>;
qcom,mdss-dsi-v-front-porch = <5>;
qcom,mdss-dsi-v-pulse-width = <5>;
删除以下内容:
qcom,mdss-dsi-color-order = "rgb_swap_rgb";
qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 FF 98 81 03
39 01 00 00 00 00 02 01 00
39 01 00 00 00 00 02 02 00
39 01 00 00 00 00 02 03 73
39 01 00 00 00 00 02 04 03
39 01 00 00 00 00 02 05 00
39 01 00 00 00 00 02 06 06
39 01 00 00 00 00 02 07 06
39 01 00 00 00 00 02 08 00
39 01 00 00 00 00 02 09 18
39 01 00 00 00 00 02 0A 04
39 01 00 00 00 00 02 0B 00
39 01 00 00 00 00 02 0C 02
39 01 00 00 00 00 02 0D 03
39 01 00 00 00 00 02 0E 00
39 01 00 00 00 00 02 0F 25
39 01 00 00 00 00 02 10 25
39 01 00 00 00 00 02 11 00
39 01 00 00 00 00 02 12 00
39 01 00 00 00 00 02 13 00
39 01 00 00 00 00 02 14 00
39 01 00 00 00 00 02 15 00
39 01 00 00 00 00 02 16 0c
39 01 00 00 00 00 02 17 00
39 01 00 00 00 00 02 18 00
39 01 00 00 00 00 02 19 00
39 01 00 00 00 00 02 1A 00
39 01 00 00 00 00 02 1B 00
39 01 00 00 00 00 02 1C 00
39 01 00 00 00 00 02 1D 00
39 01 00 00 00 00 02 1E C0
39 01 00 00 00 00 02 1F 80
39 01 00 00 00 00 02 20 04
39 01 00 00 00 00 02 21 01
39 01 00 00 00 00 02 22 00
39 01 00 00 00 00 02 23 00
39 01 00 00 00 00 02 24 00
39 01 00 00 00 00 02 25 00
39 01 00 00 00 00 02 26 00
39 01 00 00 00 00 02 27 00
39 01 00 00 00 00 02 28 33
39 01 00 00 00 00 02 29 03
39 01 00 00 00 00 02 2A 00
39 01 00 00 00 00 02 2B 00
39 01 00 00 00 00 02 2C 00
39 01 00 00 00 00 02 2D 00
39 01 00 00 00 00 02 2E 00
39 01 00 00 00 00 02 2F 00
39 01 00 00 00 00 02 30 00
39 01 00 00 00 00 02 31 00
39 01 00 00 00 00 02 32 00
39 01 00 00 00 00 02 33 00
39 01 00 00 00 00 02 34 04
39 01 00 00 00 00 02 35 00
39 01 00 00 00 00 02 36 00
39 01 00 00 00 00 02 37 00
39 01 00 00 00 00 02 38 3c
39 01 00 00 00 00 02 39 00
39 01 00 00 00 00 02 3A 00
39 01 00 00 00 00 02 3B 00
39 01 00 00 00 00 02 3C 00
39 01 00 00 00 00 02 3D 00
39 01 00 00 00 00 02 3E 00
39 01 00 00 00 00 02 3F 00
39 01 00 00 00 00 02 40 00
39 01 00 00 00 00 02 41 00
39 01 00 00 00 00 02 42 00
39 01 00 00 00 00 02 43 00
39 01 00 00 00 00 02 44 00
39 01 00 00 00 00 02 50 01
39 01 00 00 00 00 02 51 23
39 01 00 00 00 00 02 52 45
39 01 00 00 00 00 02 53 67
39 01 00 00 00 00 02 54 89
39 01 00 00 00 00 02 55 ab
39 01 00 00 00 00 02 56 01
39 01 00 00 00 00 02 57 23
39 01 00 00 00 00 02 58 45
39 01 00 00 00 00 02 59 67
39 01 00 00 00 00 02 5A 89
39 01 00 00 00 00 02 5B ab
39 01 00 00 00 00 02 5C cd
39 01 00 00 00 00 02 5D ef
39 01 00 00 00 00 02 5E 11
39 01 00 00 00 00 02 5F 02
39 01 00 00 00 00 02 60 02
39 01 00 00 00 00 02 61 02
39 01 00 00 00 00 02 62 02
39 01 00 00 00 00 02 63 02
39 01 00 00 00 00 02 64 02
39 01 00 00 00 00 02 65 02
39 01 00 00 00 00 02 66 02
39 01 00 00 00 00 02 67 02
39 01 00 00 00 00 02 68 02
39 01 00 00 00 00 02 69 02
39 01 00 00 00 00 02 6A 0c
39 01 00 00 00 00 02 6B 02
39 01 00 00 00 00 02 6C 0f
39 01 00 00 00 00 02 6D 0e
39 01 00 00 00 00 02 6E 0d
39 01 00 00 00 00 02 6F 06
39 01 00 00 00 00 02 70 07
39 01 00 00 00 00 02 71 02
39 01 00 00 00 00 02 72 02
39 01 00 00 00 00 02 73 02
39 01 00 00 00 00 02 74 02
39 01 00 00 00 00 02 75 02
39 01 00 00 00 00 02 76 02
39 01 00 00 00 00 02 77 02
39 01 00 00 00 00 02 78 02
39 01 00 00 00 00 02 79 02
39 01 00 00 00 00 02 7A 02
39 01 00 00 00 00 02 7B 02
39 01 00 00 00 00 02 7C 02
39 01 00 00 00 00 02 7D 02
39 01 00 00 00 00 02 7E 02
39 01 00 00 00 00 02 7F 02
39 01 00 00 00 00 02 80 0c
39 01 00 00 00 00 02 81 02
39 01 00 00 00 00 02 82 0f
39 01 00 00 00 00 02 83 0e
39 01 00 00 00 00 02 84 0d
39 01 00 00 00 00 02 85 06
39 01 00 00 00 00 02 86 07
39 01 00 00 00 00 02 87 02
39 01 00 00 00 00 02 88 02
39 01 00 00 00 00 02 89 02
39 01 00 00 00 00 02 8A 02
39 01 00 00 00 00 04 FF 98 81 04
39 01 00 00 00 00 02 6c 15
39 01 00 00 00 00 02 6e 22
39 01 00 00 00 00 02 6f 33
39 01 00 00 00 00 02 3a a4
39 01 00 00 00 00 02 8d 0d
39 01 00 00 00 00 02 87 ba
39 01 00 00 00 00 02 26 76
39 01 00 00 00 00 02 b2 d1
39 01 00 00 00 00 04 FF 98 81 01
39 01 00 00 00 00 02 22 0a
39 01 00 00 00 00 02 53 be
39 01 00 00 00 00 02 55 a7
39 01 00 00 00 00 02 50 74
39 01 00 00 00 00 02 51 74
39 01 00 00 00 00 02 31 02
39 01 00 00 00 00 02 60 14
39 01 00 00 00 00 02 a0 15
39 01 00 00 00 00 02 a1 26
39 01 00 00 00 00 02 a2 2b
39 01 00 00 00 00 02 a3 14
39 01 00 00 00 00 02 a4 17
39 01 00 00 00 00 02 a5 2c
39 01 00 00 00 00 02 a6 20
39 01 00 00 00 00 02 a7 21
39 01 00 00 00 00 02 a8 95
39 01 00 00 00 00 02 a9 1d
39 01 00 00 00 00 02 aa 27
39 01 00 00 00 00 02 ab 89
39 01 00 00 00 00 02 ac 1a
39 01 00 00 00 00 02 ad 18
39 01 00 00 00 00 02 ae 4b
39 01 00 00 00 00 02 af 21
39 01 00 00 00 00 02 b0 26
39 01 00 00 00 00 02 b1 60
39 01 00 00 00 00 02 b2 71
39 01 00 00 00 00 02 b3 3f
39 01 00 00 00 00 02 c0 05
39 01 00 00 00 00 02 c1 26
39 01 00 00 00 00 02 c2 3f
39 01 00 00 00 00 02 c3 0f
39 01 00 00 00 00 02 c4 14
39 01 00 00 00 00 02 c5 27
39 01 00 00 00 00 02 c6 1a
39 01 00 00 00 00 02 c7 1e
39 01 00 00 00 00 02 c8 9e
39 01 00 00 00 00 02 c9 1a
39 01 00 00 00 00 02 ca 29
39 01 00 00 00 00 02 cb 82
39 01 00 00 00 00 02 cc 18
39 01 00 00 00 00 02 cd 16
39 01 00 00 00 00 02 ce 4c
39 01 00 00 00 00 02 cf 1f
39 01 00 00 00 00 02 d0 28
39 01 00 00 00 00 02 d1 53
39 01 00 00 00 00 02 d2 62
39 01 00 00 00 00 02 d3 3f
39 01 00 00 00 00 04 FF 98 81 00
05 01 00 00 78 00 02 11 00
05 01 00 00 0A 00 02 29 00
39 01 00 00 00 00 02 35 00];
qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00
05 01 00 00 78 00 02 10 00];
修改以下内容:
qcom,mdss-dsi-panel-timings = [7F 1C 12 00 40 44 16 1E 17 03 04 00];
qcom,mdss-dsi-t-clk-post = <0x04>;
qcom,mdss-dsi-t-clk-pre = <0x1B>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-reset-sequence = <1 20>, <0 20>, <1 120>;
完整的文件如下:
/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/*---------------------------------------------------------------------------
* This file is autogenerated file using gcdb parser. Please do not edit it.
* Update input XML file to add a new entry or update variable in this file
* VERSION = "1.0"
*---------------------------------------------------------------------------*/
&mdss_mdp {
dsi_ili9881c_720p_video: qcom,mdss_dsi_ili9881c_720p_video {
qcom,mdss-dsi-panel-name = "ili9881c 720p video mode dsi panel";
qcom,mdss-dsi-panel-controller = <&mdss_dsi0>;
qcom,mdss-dsi-panel-type = "dsi_video_mode";
qcom,mdss-dsi-panel-destination = "display_1";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <1280>;
qcom,mdss-dsi-panel-height = <720>;
qcom,mdss-dsi-h-front-porch = <110>;
qcom,mdss-dsi-h-back-porch = <220>;
qcom,mdss-dsi-h-pulse-width = <40>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <20>;
qcom,mdss-dsi-v-front-porch = <5>;
qcom,mdss-dsi-v-pulse-width = <5>;
qcom,mdss-dsi-h-left-border = <0>;
qcom,mdss-dsi-h-right-border = <0>;
qcom,mdss-dsi-v-top-border = <0>;
qcom,mdss-dsi-v-bottom-border = <0>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
qcom,mdss-dsi-h-sync-pulse = <1>;
qcom,mdss-dsi-traffic-mode = "burst_mode";
qcom,mdss-dsi-lane-map = "lane_map_0123";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-panel-timings = [7F 1C 12 00 40 44 16 1E 17 03 04 00];
qcom,mdss-dsi-t-clk-post = <0x04>;
qcom,mdss-dsi-t-clk-pre = <0x1B>;
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-reset-sequence = <1 20>, <0 20>, <1 120>;
qcom,mdss-dsi-post-init-delay = <4>;
qcom,mdss-pan-physical-width-dimension = <59>;
qcom,mdss-pan-physical-height-dimension = <104>;
};
};
修改文件:
kernel\arch\arm\boot\dts\qcom\msm8909-mtp.dtsi
在“&soc”中“i2c@78b9000”加入
/*add by rid start*/
lt8912@48 {
compatible = "qcom,lt8912_dsi0";
reg = <0x48>;
instance_id = <0>;
//adi,enable-audio;
// pinctrl-names = "pmx_lt8912_active","pmx_lt8912_suspend";
// pinctrl-0 = <<8912_dis0_int_active <8912_dis0_rst_active>;
// pinctrl-1 = <<8912_dis0_int_suspend <8912_dis0_rst_suspend>;
// avdd-supply= <&pm8953_l17>;
// adi,irq-gpio = <&tlmm 24 0x2002>;
// adi,rst-gpio = <&tlmm 61 0x2002>;
};
/*add by rid end*/
修改“&i2c_1”中“mpu6050@68”对应内容如下:
invn,place = "Portrait Down Back Side";
完整文件内容如下:
/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "msm8909.dtsi"
#include "msm8909-pinctrl.dtsi"
#include "msm8909-camera-sensor-mtp.dtsi"
#include "msm8909-regulator.dtsi"
&soc {
gpio-clock {
compatible = "qcom,gpio_clk";
pwm-gpio = <31>;
};
/*
* DT node to add support for SMB135x charger and integrate
* with VM-BMS.
*/
i2c@78b8000 {
smb1357_otg_vreg: smb1357-charger@57 {
compatible = "qcom,smb1357-charger";
reg = <0x57>;
interrupt-parent = <&msm_gpio>;
interrupts = <58 8>;
pinctrl-names = "default";
pinctrl-0 = <&smb_int_default>;
qcom,bmd-algo-disabled;
qcom,float-voltage-mv = <4200>;
qcom,charging-timeout = <1536>;
qcom,recharge-thresh-mv = <100>;
regulator-name = "smb1357_otg_vreg";
qcom,soft-vfloat-comp-disabled;
qcom,thermal-mitigation = <1500 700 600 0>;
qcom,bms-psy-name = "bms";
/*
* Disable SMB1357 based charging termination as BMS
* controls charging.
*/
qcom,iterm-disabled;
/*
* Disable charge inhibit feature to start chargin on
* charger insertion independent of battery voltage.
*/
qcom,inhibit-disabled;
/* BMS is controlling charging/re-charge */
qcom,bms-controlled-charging;
/*
* To enable charger node:
* set status = "ok" and
* add 'qcom,use-external-charger' to pm8909_chg node
*/
status = "disabled";
};
};
i2c@78b9000 { /* BLSP1 QUP5 */
goodix@5d {
compatible = "goodix,gt9xx";
reg = <0x5d>;
interrupt-parent = <&msm_gpio>;
interrupts = <13 0x2008>;
reset-gpios = <&msm_gpio 12 0x0>;
interrupt-gpios = <&msm_gpio 13 0x2008>;
power-gpios = <&msm_gpio 23 0x0>;
vcc-i2c-supply = <&pm8909_l6>;
goodix,panel-coords = <0 0 719 1405>;
goodix,display-coords = <0 0 719 1279>;
goodix,button-map= <139 172 158>;
goodix,enable-power-off;
goodix,product-id = "9147";
goodix,fw_name = "gtp_fw.bin";
pinctrl-names = "pmx_ts_active","pmx_ts_suspend";
pinctrl-0 = <&ts_int_active &ts_reset_active>;
pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
goodix,cfg-data0 = [
44 DA 02 05 05 05 35 C1 01 09
28 08 48 35 03 05 00 00 FF 7F
10 50 85 14 17 1A 14 92 00 0A
31 2F D3 07 03 00 00 A2 33 1D
00 01 00 00 00 1E 00 09 10 00
2A 1E 50 94 C5 02 00 0E 00 04
B1 21 00 96 28 00 7F 31 00 6F
3B 00 60 48 00 60 10 30 48 00
F0 4A 3A FF EF 27 00 00 00 00
00 01 1C 19 17 0F 01 00 01 0F
0F 03 04 10 42 8F 0F 19 00 00
46 37 08 0A 0C 0E 10 12 14 16
18 1A 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 08 20 0A 1F 0C 1E 0E 1D
22 05 24 04 28 00 29 02 2A 06
00 00 00 00 00 00 00 00 00 00
00 FF FF FF FF FF FF FF FF AF
FF FF FF FF 87 01
];
goodix,have-touch-key;
goodix,driver-send-cfg;
};
goodix_ts@14 {
compatible = "goodix,gt1x";
reg = <0x14>;
interrupt-parent = <&msm_gpio>;
interrupts = <13 0x2008>;
goodix,rst-gpio = <&msm_gpio 12 0x0>;
goodix,irq-gpio = <&msm_gpio 13 0x2008>;
goodix,power-gpio = <&msm_gpio 23 0x0>;
//vdd_ana-supply = <&pm8909_l17>;
vcc_i2c-supply = <&pm8909_l6>;
pinctrl-names = "pmx_ts_active","pmx_ts_suspend";
pinctrl-0 = <&ts_int_active &ts_reset_active>;
pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
};
/*add by rid start*/
lt8912@48 {
compatible = "qcom,lt8912_dsi0";
reg = <0x48>;
instance_id = <0>;
//adi,enable-audio;
// pinctrl-names = "pmx_lt8912_active","pmx_lt8912_suspend";
// pinctrl-0 = <<8912_dis0_int_active <8912_dis0_rst_active>;
// pinctrl-1 = <<8912_dis0_int_suspend <8912_dis0_rst_suspend>;
// avdd-supply= <&pm8953_l17>;
// adi,irq-gpio = <&tlmm 24 0x2002>;
// adi,rst-gpio = <&tlmm 61 0x2002>;
};
/*add by rid end*/
};
gen-vkeys {
compatible = "qcom,gen-vkeys";
label = "synaptics_dsx";
qcom,disp-maxx = <719>;
qcom,disp-maxy = <1279>;
qcom,panel-maxx = <719>;
qcom,panel-maxy = <1405>;
qcom,key-codes = <158 139 172 217>;
};
i2c@78b6000 { /* BLSP1 QUP2 */
nfc-nci@e {
compatible = "qcom,nfc-nci";
reg = <0x0e>;
qcom,irq-gpio = <&msm_gpio 21 0x00>;
qcom,dis-gpio = <&msm_gpio 20 0x00>;
qcom,clk-src = "BBCLK2";
interrupt-parent = <&msm_gpio>;
interrupts = <21 0>;
interrupt-names = "nfc_irq";
pinctrl-names = "nfc_active","nfc_suspend";
pinctrl-0 = <&nfc_int_active &nfc_disable_active>;
pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>;
qcom,clk-gpio = <&pm8909_gpios 2 0>;
clocks = <&clock_rpm clk_bb_clk2_pin>;
clock-names = "ref_clk";
};
nq@28 {
compatible = "qcom,nq-nci";
reg = <0x28>;
qcom,nq-irq = <&msm_gpio 21 0x00>;
qcom,nq-ven = <&msm_gpio 20 0x00>;
qcom,nq-firm = <&msm_gpio 45 0x00>;
qcom,clk-src = "BBCLK2";
interrupt-parent = <&msm_gpio>;
interrupts = <21 0>;
interrupt-names = "nfc_irq";
pinctrl-names = "nfc_active","nfc_suspend";
pinctrl-0 = <&nfc_int_active &nfc_disable_active>;
pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>;
clocks = <&clock_rpm clk_bb_clk2_pin>;
clock-names = "ref_clk";
};
};
gpio_keys {
compatible = "gpio-keys";
input-name = "gpio-keys";
pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend";
pinctrl-0 = <&gpio_key_active>;
pinctrl-1 = <&gpio_key_suspend>;
camera_focus {
label = "camera_focus";
gpios = <&msm_gpio 93 0x1>;
linux,input-type = <1>;
linux,code = <0x210>;
// gpio-key,wakeup; //law:del for system sleep abnormal,before modify sleep-current is 22mA ,after sleep-current is 7mA 2015-12-19
debounce-interval = <15>;
};
camera_snapshot {
label = "camera_snapshot";
gpios = <&msm_gpio 92 0x1>;
linux,input-type = <1>;
linux,code = <0x2fe>;
gpio-key,wakeup;
debounce-interval = <15>;
};
vol_up {
label = "volume_up";
gpios = <&msm_gpio 90 0x1>;
linux,input-type = <1>;
linux,code = <115>;
gpio-key,wakeup;
debounce-interval = <15>;
};
vol_down {
label = "volume_down";
gpios = <&msm_gpio 91 0x1>;
linux,input-type = <1>;
linux,code = <114>;
gpio-key,wakeup;
debounce-interval = <15>;
};
home {
label = "home";
gpios = <&msm_gpio 11 0x1>;
linux,input-type = <1>;
linux,code = <102>;
gpio-key,wakeup;
debounce-interval = <15>;
};
menu {
label = "menu";
gpios = <&msm_gpio 17 0x1>;
linux,input-type = <1>;
linux,code = <139>;
// gpio-key,wakeup; //law:del for system sleep abnormal,before modify sleep-current is 22mA ,after sleep-current is 7mA 2015-12-19
debounce-interval = <15>;
};
back {
label = "back";
gpios = <&msm_gpio 98 0x1>;
linux,input-type = <1>;
linux,code = <158>;
gpio-key,wakeup;
debounce-interval = <15>;
};
};
audio_codec_mtp: sound {
compatible = "qcom,msm8x16-audio-codec";
qcom,model = "msm8909-snd-card";
qcom,msm-snd-card-id = <0>;
qcom,msm-codec-type = "internal";
qcom,msm-ext-pa = "primary";
qcom,msm-mclk-freq = <9600000>;
qcom,msm-mbhc-hphl-swh = <1>; /*joseph modified*/
qcom,msm-mbhc-gnd-swh = <0>;
qcom,msm-hs-micbias-type = "internal";
qcom,msm-micbias1-ext-cap;
qcom,audio-routing =
"RX_BIAS", "MCLK",
"SPK_RX_BIAS", "MCLK",
"INT_LDO_H", "MCLK",
"MIC BIAS Internal1", "Handset Mic", /**joseph modified for internal bias**/
"MIC BIAS Internal2", "Headset Mic",
"MIC BIAS Internal1", "Secondary Mic",
"AMIC1", "MIC BIAS Internal1",
"AMIC2", "MIC BIAS Internal2",
"AMIC3", "MIC BIAS Internal1";
pinctrl-names = "cdc_lines_act",
"cdc_lines_sus",
"cross_conn_det_act",
"cross_conn_det_sus";
pinctrl-0 = <&cdc_pdm_lines_act>;
pinctrl-1 = <&cdc_pdm_lines_sus>;
pinctrl-2 = <&cross_conn_det_act>;
pinctrl-3 = <&cross_conn_det_sus>;
qcom,cdc-us-euro-gpios = <&msm_gpio 97 0>;
asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
<&loopback>, <&compress>, <&hostless>,
<&afe>, <&lsm>, <&routing>, <&lpa>,
<&voice_svc>;
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
"msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe",
"msm-lsm-client", "msm-pcm-routing", "msm-pcm-lpa",
"msm-voice-svc";
asoc-cpu = <&dai_pri_auxpcm>, <&dai_hdmi>,
<&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>,
<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
<&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>,
<&bt_sco_rx>, <&bt_sco_tx>,<&bt_a2dp_rx>,
<&int_fm_rx>, <&int_fm_tx>,
<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
<&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>,
<&incall_music_2_rx>;
asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8",
"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
"msm-dai-q6-dev.12290", "msm-dai-q6-dev.12292",
"msm-dai-q6-dev.12293", "msm-dai-q6-dev.224",
"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
"msm-dai-q6-dev.32770";
asoc-codec = <&stub_codec>, <&pm8909_conga_dig>;
asoc-codec-names = "msm-stub-codec.1", "tombak_codec";
};
};
&blsp1_uart1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_sleep>;
};
/*add by evan.hai for ttyHSL1*/
&blsp1_uart2 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_sleep1>;
};
/ {
mtp_batterydata: qcom,battery-data {
qcom,rpull-up-kohm = <100>;
qcom,vref-batt-therm = <1800000>;
#include "batterydata-palladium.dtsi"
};
};
&qcom_rng {
status = "okay";
};
&qcom_crypto {
status = "okay";
};
&qcom_cedev {
status = "okay";
};
&qcom_seecom {
status = "okay";
};
&qcom_tzlog {
status = "okay";
};
&sdhc_1 {
vdd-supply = <&pm8909_l8>;
qcom,vdd-voltage-level = <2900000 2900000>;
qcom,vdd-current-level = <200 400000>;
vdd-io-supply = <&pm8909_l5>;
qcom,vdd-io-always-on;
qcom,vdd-io-lpm-sup;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <200 60000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
qcom,bus-speed-mode = "HS200_1p8v", "DDR_1p8v";
qcom,nonremovable;
status = "ok";
};
//law---2016.4.14-11:47----modify for usb otg-------
&usb_otg {
interrupts = <0 134 0>,<0 140 0>,<0 136 0>;
interrupt-names = "core_irq", "async_irq", "phy_irq";
qcom,hsusb-otg-mode = <3>;
vbus_otg-supply = <&oem_otg_ext_vreg>;
};
//------------------end-----------------------------
&sdhc_2 {
#address-cells = <0>;
interrupt-parent = <&sdhc_2>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 125 0
1 &intc 0 221 0
2 &msm_gpio 38 0>;
interrupt-names = "hc_irq", "pwr_irq", "status_irq";
cd-gpios = <&msm_gpio 38 0x1>;
vdd-supply = <&pm8909_l11>;
qcom,vdd-voltage-level = <1800000 2950000>;
qcom,vdd-current-level = <15000 400000>;
vdd-io-supply = <&pm8909_l12>;
qcom,vdd-io-voltage-level = <1800000 2950000>;
qcom,vdd-io-current-level = <200 50000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
status = "ok";
};
&tlmm_pinmux {
mpu6050_int_pin {
qcom,pins = <&gp 96>;
qcom,pin-func = <0>;
qcom,num-grp-pins = <1>;
label = "mpu6050-irq";
mpu6050_default: mpu6050_default {
drive-strength = <6>;
bias-pull-down;
};
mpu6050_sleep: mpu6050_sleep {
drive-strength = <2>;
bias-pull-down;
};
};
apds99xx_int_pin {
qcom,pins = <&gp 94>;
qcom,pin-func = <0>;
qcom,num-grp-pins = <1>;
label = "apds99xx-irq";
apds99xx_default: apds99xx_default {
drive-strength = <6>;
bias-pull-up;
};
apds99xx_sleep: apds99xx_sleep {
drive-strength = <2>;
bias-pull-down;
};
};
ak8963_int_pin {
qcom,pins = <&gp 65>;
qcom,pin-func = <0>;
qcom,num-grp-pins = <1>;
label = "ak8963-irq";
ak8963_default: ak8963_default {
drive-strength = <6>;
bias-pull-up;
};
ak8963_sleep: ak8963_sleep {
drive-strength = <2>;
bias-pull-down;
};
};
};
&i2c_1 { /* BLSP1 QUP1 */
mpu6050@68 { /* Gyroscope and accelerometer sensor combo */
compatible = "invn,mpu6050";
reg = <0x68>;
pinctrl-names = "mpu_default","mpu_sleep";
pinctrl-0 = <&mpu6050_default>;
pinctrl-1 = <&mpu6050_sleep>;
interrupt-parent = <&msm_gpio>;
interrupts = <96 0x1>;
vdd-supply = <&pm8909_l17>;
vlogic-supply = <&pm8909_l6>;
invn,gpio-int = <&msm_gpio 96 0x1>;
invn,place = "Portrait Down Back Side";
};
avago@39 { /* Ambient light and proximity sensor */
compatible = "avago,apds9900";
reg = <0x39>;
pinctrl-names = "default","sleep";
pinctrl-0 = <&apds99xx_default>;
pinctrl-1 = <&apds99xx_sleep>;
interrupt-parent = <&msm_gpio>;
interrupts = <94 0x2002>;
vdd-supply = <&pm8909_l17>;
vio-supply = <&pm8909_l6>;
avago,irq-gpio = <&msm_gpio 94 0x2002>;
avago,ps-threshold = <600>;
avago,ps-hysteresis-threshold = <500>;
avago,ps-pulse = <8>;
avago,ps-pgain = <0>;
avago,als-B = <186>;
avago,als-C = <75>;
avago,als-D = <129>;
avago,ga-value = <256>;
};
memsic@30 { /* Magnetic field sensor */
compatible = "memsic,mmc3416x";
reg = <0x30>;
vdd-supply = <&pm8909_l17>;
vio-supply = <&pm8909_l6>;
memsic,dir = "obverse-x-axis-forward";
memsic,auto-report;
};
akm@c { /* Magnetic field sensor */
compatible = "ak,ak8963";
reg = <0x0c>;
pinctrl-names = "ak8963_default", "ak8963_sleep";
pinctrl-0 = <&ak8963_default>;
pinctrl-1 = <&ak8963_sleep>;
interrupt-parent = <&msm_gpio>;
interrupts = <65 0x2>;
vdd-supply = <&pm8909_l17>;
vio-supply = <&pm8909_l6>;
ak,layout = <0x6>;
ak,auto-report;
};
stk@48 {/*law modify for p-sensor--------2015.11.18-13:07*/
compatible = "stk,stk3x1x";
reg = <0x48>;
interrupt-parent = <&msm_gpio>;
interrupts = <94 0x2>;
vdd-supply = <&pm8909_l17>;
vio-supply = <&pm8909_l6>;
stk,irq-gpio = <&msm_gpio 94 0x02>;
stk,transmittance = <500>;
stk,state-reg = <0x00>;
stk,psctrl-reg = <0x71>;
stk,alsctrl-reg = <0x38>;
stk,ledctrl-reg = <0xFF>;
stk,wait-reg = <0x07>;
stk,ps-thdh = <1700>;
stk,ps-thdl = <1500>;
stk,use-fir;
};
};
#include "dsi-panel-auo-qvga-cmd.dtsi"
#include "dsi-panel-auo-cx-qvga-cmd.dtsi"
#include "dsi-panel-hx8394d-480p-video.dtsi"
#include "dsi-panel-hx8394d-720p-video.dtsi"
#include "dsi-panel-hx8394d-qhd-video.dtsi"
#include "dsi-panel-ili9881c-720p-video.dtsi"
#include "dsi-panel-hx8394f-720p-video.dtsi"
&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
};
&dsi_hx8394f_720p_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
qcom,mdss-dsi-bl-pmic-bank-select = <0>;
qcom,mdss-dsi-pwm-gpio = <&pm8909_mpps 2 0>;
qcom,cont-splash-enabled;
};
&dsi_ili9881c_720p_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
qcom,mdss-dsi-bl-pmic-bank-select = <0>;
qcom,mdss-dsi-pwm-gpio = <&pm8909_mpps 2 0>;
qcom,cont-splash-enabled;
};
&dsi_auo_cx_qvga_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
qcom,mdss-dsi-bl-pmic-bank-select = <0>;
qcom,mdss-dsi-pwm-gpio = <&pm8909_mpps 2 0>;
qcom,cont-splash-enabled;
};
&dsi_auo_qvga_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
qcom,mdss-dsi-bl-pmic-bank-select = <0>;
qcom,mdss-dsi-pwm-gpio = <&pm8909_mpps 2 0>;
qcom,cont-splash-enabled;
};
&dsi_hx8394d_480_vid {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
qcom,mdss-dsi-bl-pmic-bank-select = <0>;
qcom,mdss-dsi-pwm-gpio = <&pm8909_mpps 2 0>;
qcom,cont-splash-enabled;
};
&dsi_hx8394d_720_vid {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
qcom,mdss-dsi-bl-pmic-bank-select = <0>;
qcom,mdss-dsi-pwm-gpio = <&pm8909_mpps 2 0>;
qcom,cont-splash-enabled;
};
&dsi_hx8394d_qhd_vid {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
qcom,mdss-dsi-bl-pmic-bank-select = <0>;
qcom,mdss-dsi-pwm-gpio = <&pm8909_mpps 2 0>;
qcom,cont-splash-enabled;
};
&pmx_mdss {
qcom,num-grp-pins = <2>;
qcom,pins = <&gp 25>, <&gp 95>;
};
&pmx_mdss_te {
qcom,num-grp-pins = <1>;
qcom,pins = <&gp 24>;
};
&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_ili9881c_720p_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-enable-gpio = <&msm_gpio 95 0>;
qcom,platform-reset-gpio = <&msm_gpio 25 0>;
//qcom,platform-bklight-en-gpio = <&msm_gpio 37 0>;
};
/* CoreSight */
&tpiu {
pinctrl-names = "sdcard", "trace", "swduart",
"swdtrc", "jtag", "spmi";
/* NIDnT */
pinctrl-0 = <&qdsd_clk_sdcard &qdsd_cmd_sdcard
&qdsd_data0_sdcard &qdsd_data1_sdcard
&qdsd_data2_sdcard &qdsd_data3_sdcard>;
pinctrl-1 = <&qdsd_clk_trace &qdsd_cmd_trace
&qdsd_data0_trace &qdsd_data1_trace
&qdsd_data2_trace &qdsd_data3_trace>;
pinctrl-2 = <&qdsd_cmd_swduart &qdsd_data0_swduart
&qdsd_data1_swduart &qdsd_data2_swduart
&qdsd_data3_swduart>;
pinctrl-3 = <&qdsd_clk_swdtrc &qdsd_cmd_swdtrc
&qdsd_data0_swdtrc &qdsd_data1_swdtrc
&qdsd_data2_swdtrc &qdsd_data3_swdtrc>;
pinctrl-4 = <&qdsd_cmd_jtag &qdsd_data0_jtag
&qdsd_data1_jtag &qdsd_data2_jtag
&qdsd_data3_jtag>;
pinctrl-5 = <&qdsd_clk_spmi &qdsd_cmd_spmi
&qdsd_data0_spmi &qdsd_data3_spmi>;
};
修改文件:
bootable\bootloader\lk\dev\gcdb\display\include\panel_ili9881c_720p_video.h
修改“panel_resolution ili9881c_720p_video_panel_res”如下:
static struct panel_resolution ili9881c_720p_video_panel_res = {
1280, 720, 110, 220, 40, 0, 5, 20, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
删除,注释掉以下内容,如下:
/*static char ili9881c_720p_video_on_cmd0[] = {
0x04, 0x00, 0x39, 0xC0,
0xFF, 0x98, 0x81, 0x03,
};
static char ili9881c_720p_video_on_cmd1[] = {
0x02, 0x00, 0x39, 0xC0,
0x01, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd2[] = {
0x02, 0x00, 0x39, 0xC0,
0x02, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd3[] = {
0x02, 0x00, 0x39, 0xC0,
0x03, 0x73, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd4[] = {
0x02, 0x00, 0x39, 0xC0,
0x04, 0x03, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd5[] = {
0x02, 0x00, 0x39, 0xC0,
0x05, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd6[] = {
0x02, 0x00, 0x39, 0xC0,
0x06, 0x06, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd7[] = {
0x02, 0x00, 0x39, 0xC0,
0x07, 0x06, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd8[] = {
0x02, 0x00, 0x39, 0xC0,
0x08, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd9[] = {
0x02, 0x00, 0x39, 0xC0,
0x09, 0x18, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd10[] = {
0x02, 0x00, 0x39, 0xC0,
0x0A, 0x04, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd11[] = {
0x02, 0x00, 0x39, 0xC0,
0x0B, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd12[] = {
0x02, 0x00, 0x39, 0xC0,
0x0C, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd13[] = {
0x02, 0x00, 0x39, 0xC0,
0x0D, 0x03, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd14[] = {
0x02, 0x00, 0x39, 0xC0,
0x0E, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd15[] = {
0x02, 0x00, 0x39, 0xC0,
0x0F, 0x25, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd16[] = {
0x02, 0x00, 0x39, 0xC0,
0x10, 0x25, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd17[] = {
0x02, 0x00, 0x39, 0xC0,
0x11, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd18[] = {
0x02, 0x00, 0x39, 0xC0,
0x12, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd19[] = {
0x02, 0x00, 0x39, 0xC0,
0x13, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd20[] = {
0x02, 0x00, 0x39, 0xC0,
0x14, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd21[] = {
0x02, 0x00, 0x39, 0xC0,
0x15, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd22[] = {
0x02, 0x00, 0x39, 0xC0,
0x16, 0x0c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd23[] = {
0x02, 0x00, 0x39, 0xC0,
0x17, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd24[] = {
0x02, 0x00, 0x39, 0xC0,
0x18, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd25[] = {
0x02, 0x00, 0x39, 0xC0,
0x19, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd26[] = {
0x02, 0x00, 0x39, 0xC0,
0x1A, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd27[] = {
0x02, 0x00, 0x39, 0xC0,
0x1B, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd28[] = {
0x02, 0x00, 0x39, 0xC0,
0x1C, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd29[] = {
0x02, 0x00, 0x39, 0xC0,
0x1D, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd30[] = {
0x02, 0x00, 0x39, 0xC0,
0x1E, 0xC0, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd31[] = {
0x02, 0x00, 0x39, 0xC0,
0x1F, 0x80, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd32[] = {
0x02, 0x00, 0x39, 0xC0,
0x20, 0x04, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd33[] = {
0x02, 0x00, 0x39, 0xC0,
0x21, 0x01, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd34[] = {
0x02, 0x00, 0x39, 0xC0,
0x22, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd35[] = {
0x02, 0x00, 0x39, 0xC0,
0x23, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd36[] = {
0x02, 0x00, 0x39, 0xC0,
0x24, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd37[] = {
0x02, 0x00, 0x39, 0xC0,
0x25, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd38[] = {
0x02, 0x00, 0x39, 0xC0,
0x26, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd39[] = {
0x02, 0x00, 0x39, 0xC0,
0x27, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd40[] = {
0x02, 0x00, 0x39, 0xC0,
0x28, 0x33, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd41[] = {
0x02, 0x00, 0x39, 0xC0,
0x29, 0x03, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd42[] = {
0x02, 0x00, 0x39, 0xC0,
0x2A, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd43[] = {
0x02, 0x00, 0x39, 0xC0,
0x2B, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd44[] = {
0x02, 0x00, 0x39, 0xC0,
0x2C, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd45[] = {
0x02, 0x00, 0x39, 0xC0,
0x2D, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd46[] = {
0x02, 0x00, 0x39, 0xC0,
0x2E, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd47[] = {
0x02, 0x00, 0x39, 0xC0,
0x2F, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd48[] = {
0x02, 0x00, 0x39, 0xC0,
0x30, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd49[] = {
0x02, 0x00, 0x39, 0xC0,
0x31, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd50[] = {
0x02, 0x00, 0x39, 0xC0,
0x32, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd51[] = {
0x02, 0x00, 0x39, 0xC0,
0x33, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd52[] = {
0x02, 0x00, 0x39, 0xC0,
0x34, 0x04, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd53[] = {
0x02, 0x00, 0x39, 0xC0,
0x35, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd54[] = {
0x02, 0x00, 0x39, 0xC0,
0x36, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd55[] = {
0x02, 0x00, 0x39, 0xC0,
0x37, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd56[] = {
0x02, 0x00, 0x39, 0xC0,
0x38, 0x3c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd57[] = {
0x02, 0x00, 0x39, 0xC0,
0x39, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd58[] = {
0x02, 0x00, 0x39, 0xC0,
0x3A, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd59[] = {
0x02, 0x00, 0x39, 0xC0,
0x3B, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd60[] = {
0x02, 0x00, 0x39, 0xC0,
0x3C, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd61[] = {
0x02, 0x00, 0x39, 0xC0,
0x3D, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd62[] = {
0x02, 0x00, 0x39, 0xC0,
0x3E, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd63[] = {
0x02, 0x00, 0x39, 0xC0,
0x3F, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd64[] = {
0x02, 0x00, 0x39, 0xC0,
0x40, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd65[] = {
0x02, 0x00, 0x39, 0xC0,
0x41, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd66[] = {
0x02, 0x00, 0x39, 0xC0,
0x42, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd67[] = {
0x02, 0x00, 0x39, 0xC0,
0x43, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd68[] = {
0x02, 0x00, 0x39, 0xC0,
0x44, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd69[] = {
0x02, 0x00, 0x39, 0xC0,
0x50, 0x01, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd70[] = {
0x02, 0x00, 0x39, 0xC0,
0x51, 0x23, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd71[] = {
0x02, 0x00, 0x39, 0xC0,
0x52, 0x45, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd72[] = {
0x02, 0x00, 0x39, 0xC0,
0x53, 0x67, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd73[] = {
0x02, 0x00, 0x39, 0xC0,
0x54, 0x89, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd74[] = {
0x02, 0x00, 0x39, 0xC0,
0x55, 0xab, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd75[] = {
0x02, 0x00, 0x39, 0xC0,
0x56, 0x01, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd76[] = {
0x02, 0x00, 0x39, 0xC0,
0x57, 0x23, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd77[] = {
0x02, 0x00, 0x39, 0xC0,
0x58, 0x45, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd78[] = {
0x02, 0x00, 0x39, 0xC0,
0x59, 0x67, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd79[] = {
0x02, 0x00, 0x39, 0xC0,
0x5A, 0x89, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd80[] = {
0x02, 0x00, 0x39, 0xC0,
0x5B, 0xab, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd81[] = {
0x02, 0x00, 0x39, 0xC0,
0x5C, 0xcd, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd82[] = {
0x02, 0x00, 0x39, 0xC0,
0x5D, 0xef, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd83[] = {
0x02, 0x00, 0x39, 0xC0,
0x5E, 0x11, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd84[] = {
0x02, 0x00, 0x39, 0xC0,
0x5F, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd85[] = {
0x02, 0x00, 0x39, 0xC0,
0x60, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd86[] = {
0x02, 0x00, 0x39, 0xC0,
0x61, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd87[] = {
0x02, 0x00, 0x39, 0xC0,
0x62, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd88[] = {
0x02, 0x00, 0x39, 0xC0,
0x63, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd89[] = {
0x02, 0x00, 0x39, 0xC0,
0x64, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd90[] = {
0x02, 0x00, 0x39, 0xC0,
0x65, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd91[] = {
0x02, 0x00, 0x39, 0xC0,
0x66, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd92[] = {
0x02, 0x00, 0x39, 0xC0,
0x67, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd93[] = {
0x02, 0x00, 0x39, 0xC0,
0x68, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd94[] = {
0x02, 0x00, 0x39, 0xC0,
0x69, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd95[] = {
0x02, 0x00, 0x39, 0xC0,
0x6A, 0x0c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd96[] = {
0x02, 0x00, 0x39, 0xC0,
0x6B, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd97[] = {
0x02, 0x00, 0x39, 0xC0,
0x6C, 0x0f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd98[] = {
0x02, 0x00, 0x39, 0xC0,
0x6D, 0x0e, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd99[] = {
0x02, 0x00, 0x39, 0xC0,
0x6E, 0x0d, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd100[] = {
0x02, 0x00, 0x39, 0xC0,
0x6F, 0x06, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd101[] = {
0x02, 0x00, 0x39, 0xC0,
0x70, 0x07, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd102[] = {
0x02, 0x00, 0x39, 0xC0,
0x71, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd103[] = {
0x02, 0x00, 0x39, 0xC0,
0x72, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd104[] = {
0x02, 0x00, 0x39, 0xC0,
0x73, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd105[] = {
0x02, 0x00, 0x39, 0xC0,
0x74, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd106[] = {
0x02, 0x00, 0x39, 0xC0,
0x75, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd107[] = {
0x02, 0x00, 0x39, 0xC0,
0x76, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd108[] = {
0x02, 0x00, 0x39, 0xC0,
0x77, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd109[] = {
0x02, 0x00, 0x39, 0xC0,
0x78, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd110[] = {
0x02, 0x00, 0x39, 0xC0,
0x79, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd111[] = {
0x02, 0x00, 0x39, 0xC0,
0x7A, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd112[] = {
0x02, 0x00, 0x39, 0xC0,
0x7B, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd113[] = {
0x02, 0x00, 0x39, 0xC0,
0x7C, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd114[] = {
0x02, 0x00, 0x39, 0xC0,
0x7D, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd115[] = {
0x02, 0x00, 0x39, 0xC0,
0x7E, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd116[] = {
0x02, 0x00, 0x39, 0xC0,
0x7F, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd117[] = {
0x02, 0x00, 0x39, 0xC0,
0x80, 0x0c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd118[] = {
0x02, 0x00, 0x39, 0xC0,
0x81, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd119[] = {
0x02, 0x00, 0x39, 0xC0,
0x82, 0x0f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd120[] = {
0x02, 0x00, 0x39, 0xC0,
0x83, 0x0e, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd121[] = {
0x02, 0x00, 0x39, 0xC0,
0x84, 0x0d, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd122[] = {
0x02, 0x00, 0x39, 0xC0,
0x85, 0x06, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd123[] = {
0x02, 0x00, 0x39, 0xC0,
0x86, 0x07, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd124[] = {
0x02, 0x00, 0x39, 0xC0,
0x87, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd125[] = {
0x02, 0x00, 0x39, 0xC0,
0x88, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd126[] = {
0x02, 0x00, 0x39, 0xC0,
0x89, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd127[] = {
0x02, 0x00, 0x39, 0xC0,
0x8A, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd128[] = {
0x04, 0x00, 0x39, 0xC0,
0xFF, 0x98, 0x81, 0x04,
};
static char ili9881c_720p_video_on_cmd129[] = {
0x02, 0x00, 0x39, 0xC0,
0x6c, 0x15, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd130[] = {
0x02, 0x00, 0x39, 0xC0,
0x6e, 0x22, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd131[] = {
0x02, 0x00, 0x39, 0xC0,
0x6f, 0x33, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd132[] = {
0x02, 0x00, 0x39, 0xC0,
0x3a, 0xa4, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd133[] = {
0x02, 0x00, 0x39, 0xC0,
0x8d, 0x0d, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd134[] = {
0x02, 0x00, 0x39, 0xC0,
0x87, 0xba, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd135[] = {
0x02, 0x00, 0x39, 0xC0,
0x26, 0x76, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd136[] = {
0x02, 0x00, 0x39, 0xC0,
0xb2, 0xd1, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd137[] = {
0x04, 0x00, 0x39, 0xC0,
0xFF, 0x98, 0x81, 0x01,
};
static char ili9881c_720p_video_on_cmd138[] = {
0x02, 0x00, 0x39, 0xC0,
0x22, 0x0a, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd139[] = {
0x02, 0x00, 0x39, 0xC0,
0x53, 0xbe, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd140[] = {
0x02, 0x00, 0x39, 0xC0,
0x55, 0xa7, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd141[] = {
0x02, 0x00, 0x39, 0xC0,
0x50, 0x74, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd142[] = {
0x02, 0x00, 0x39, 0xC0,
0x51, 0x74, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd143[] = {
0x02, 0x00, 0x39, 0xC0,
0x31, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd144[] = {
0x02, 0x00, 0x39, 0xC0,
0x60, 0x14, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd145[] = {
0x02, 0x00, 0x39, 0xC0,
0xa0, 0x15, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd146[] = {
0x02, 0x00, 0x39, 0xC0,
0xa1, 0x26, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd147[] = {
0x02, 0x00, 0x39, 0xC0,
0xa2, 0x2b, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd148[] = {
0x02, 0x00, 0x39, 0xC0,
0xa3, 0x14, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd149[] = {
0x02, 0x00, 0x39, 0xC0,
0xa4, 0x17, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd150[] = {
0x02, 0x00, 0x39, 0xC0,
0xa5, 0x2c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd151[] = {
0x02, 0x00, 0x39, 0xC0,
0xa6, 0x20, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd152[] = {
0x02, 0x00, 0x39, 0xC0,
0xa7, 0x21, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd153[] = {
0x02, 0x00, 0x39, 0xC0,
0xa8, 0x95, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd154[] = {
0x02, 0x00, 0x39, 0xC0,
0xa9, 0x1d, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd155[] = {
0x02, 0x00, 0x39, 0xC0,
0xaa, 0x27, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd156[] = {
0x02, 0x00, 0x39, 0xC0,
0xab, 0x89, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd157[] = {
0x02, 0x00, 0x39, 0xC0,
0xac, 0x1a, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd158[] = {
0x02, 0x00, 0x39, 0xC0,
0xad, 0x18, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd159[] = {
0x02, 0x00, 0x39, 0xC0,
0xae, 0x4b, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd160[] = {
0x02, 0x00, 0x39, 0xC0,
0xaf, 0x21, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd161[] = {
0x02, 0x00, 0x39, 0xC0,
0xb0, 0x26, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd162[] = {
0x02, 0x00, 0x39, 0xC0,
0xb1, 0x60, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd163[] = {
0x02, 0x00, 0x39, 0xC0,
0xb2, 0x71, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd164[] = {
0x02, 0x00, 0x39, 0xC0,
0xb3, 0x3f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd165[] = {
0x02, 0x00, 0x39, 0xC0,
0xc0, 0x05, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd166[] = {
0x02, 0x00, 0x39, 0xC0,
0xc1, 0x26, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd167[] = {
0x02, 0x00, 0x39, 0xC0,
0xc2, 0x3f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd168[] = {
0x02, 0x00, 0x39, 0xC0,
0xc3, 0x0f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd169[] = {
0x02, 0x00, 0x39, 0xC0,
0xc4, 0x14, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd170[] = {
0x02, 0x00, 0x39, 0xC0,
0xc5, 0x27, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd171[] = {
0x02, 0x00, 0x39, 0xC0,
0xc6, 0x1a, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd172[] = {
0x02, 0x00, 0x39, 0xC0,
0xc7, 0x1e, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd173[] = {
0x02, 0x00, 0x39, 0xC0,
0xc8, 0x9e, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd174[] = {
0x02, 0x00, 0x39, 0xC0,
0xc9, 0x1a, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd175[] = {
0x02, 0x00, 0x39, 0xC0,
0xca, 0x29, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd176[] = {
0x02, 0x00, 0x39, 0xC0,
0xcb, 0x82, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd177[] = {
0x02, 0x00, 0x39, 0xC0,
0xcc, 0x18, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd178[] = {
0x02, 0x00, 0x39, 0xC0,
0xcd, 0x16, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd179[] = {
0x02, 0x00, 0x39, 0xC0,
0xce, 0x4c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd180[] = {
0x02, 0x00, 0x39, 0xC0,
0xcf, 0x1f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd181[] = {
0x02, 0x00, 0x39, 0xC0,
0xd0, 0x28, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd182[] = {
0x02, 0x00, 0x39, 0xC0,
0xd1, 0x53, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd183[] = {
0x02, 0x00, 0x39, 0xC0,
0xd2, 0x62, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd184[] = {
0x02, 0x00, 0x39, 0xC0,
0xd3, 0x3f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd185[] = {
0x04, 0x00, 0x39, 0xC0,
0xFF, 0x98, 0x81, 0x00,
};
static char ili9881c_720p_video_on_cmd186[] = {
0x11, 0x00, 0x05, 0x80
};
static char ili9881c_720p_video_on_cmd187[] = {
0x29, 0x00, 0x05, 0x80
};
static char ili9881c_720p_video_on_cmd188[] = {
0x02, 0x00, 0x39, 0xC0,
0x35, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd189[] = {
0x04, 0x00, 0x39, 0xC0,
0xff, 0x98, 0x81, 0x01,
};
static char ili9881c_720p_video_on_cmd190[] = {
0x37, 0x00, 0x05, 0x80,
};
static struct mipi_dsi_cmd ili9881c_720p_video_on_command[] = {
{0x8, ili9881c_720p_video_on_cmd0, 0x00},
{0x8, ili9881c_720p_video_on_cmd1, 0x00},
{0x8, ili9881c_720p_video_on_cmd2, 0x00},
{0x8, ili9881c_720p_video_on_cmd3, 0x00},
{0x8, ili9881c_720p_video_on_cmd4, 0x00},
{0x8, ili9881c_720p_video_on_cmd5, 0x00},
{0x8, ili9881c_720p_video_on_cmd6, 0x00},
{0x8, ili9881c_720p_video_on_cmd7, 0x00},
{0x8, ili9881c_720p_video_on_cmd8, 0x00},
{0x8, ili9881c_720p_video_on_cmd9, 0x00},
{0x8, ili9881c_720p_video_on_cmd10, 0x00},
{0x8, ili9881c_720p_video_on_cmd11, 0x00},
{0x8, ili9881c_720p_video_on_cmd12, 0x00},
{0x8, ili9881c_720p_video_on_cmd13, 0x00},
{0x8, ili9881c_720p_video_on_cmd14, 0x00},
{0x8, ili9881c_720p_video_on_cmd15, 0x00},
{0x8, ili9881c_720p_video_on_cmd16, 0x00},
{0x8, ili9881c_720p_video_on_cmd17, 0x00},
{0x8, ili9881c_720p_video_on_cmd18, 0x00},
{0x8, ili9881c_720p_video_on_cmd19, 0x00},
{0x8, ili9881c_720p_video_on_cmd20, 0x00},
{0x8, ili9881c_720p_video_on_cmd21, 0x00},
{0x8, ili9881c_720p_video_on_cmd22, 0x00},
{0x8, ili9881c_720p_video_on_cmd23, 0x00},
{0x8, ili9881c_720p_video_on_cmd24, 0x00},
{0x8, ili9881c_720p_video_on_cmd25, 0x00},
{0x8, ili9881c_720p_video_on_cmd26, 0x00},
{0x8, ili9881c_720p_video_on_cmd27, 0x00},
{0x8, ili9881c_720p_video_on_cmd28, 0x00},
{0x8, ili9881c_720p_video_on_cmd29, 0x00},
{0x8, ili9881c_720p_video_on_cmd30, 0x00},
{0x8, ili9881c_720p_video_on_cmd31, 0x00},
{0x8, ili9881c_720p_video_on_cmd32, 0x00},
{0x8, ili9881c_720p_video_on_cmd33, 0x00},
{0x8, ili9881c_720p_video_on_cmd34, 0x00},
{0x8, ili9881c_720p_video_on_cmd35, 0x00},
{0x8, ili9881c_720p_video_on_cmd36, 0x00},
{0x8, ili9881c_720p_video_on_cmd37, 0x00},
{0x8, ili9881c_720p_video_on_cmd38, 0x00},
{0x8, ili9881c_720p_video_on_cmd39, 0x00},
{0x8, ili9881c_720p_video_on_cmd40, 0x00},
{0x8, ili9881c_720p_video_on_cmd41, 0x00},
{0x8, ili9881c_720p_video_on_cmd42, 0x00},
{0x8, ili9881c_720p_video_on_cmd43, 0x00},
{0x8, ili9881c_720p_video_on_cmd44, 0x00},
{0x8, ili9881c_720p_video_on_cmd45, 0x00},
{0x8, ili9881c_720p_video_on_cmd46, 0x00},
{0x8, ili9881c_720p_video_on_cmd47, 0x00},
{0x8, ili9881c_720p_video_on_cmd48, 0x00},
{0x8, ili9881c_720p_video_on_cmd49, 0x00},
{0x8, ili9881c_720p_video_on_cmd50, 0x00},
{0x8, ili9881c_720p_video_on_cmd51, 0x00},
{0x8, ili9881c_720p_video_on_cmd52, 0x00},
{0x8, ili9881c_720p_video_on_cmd53, 0x00},
{0x8, ili9881c_720p_video_on_cmd54, 0x00},
{0x8, ili9881c_720p_video_on_cmd55, 0x00},
{0x8, ili9881c_720p_video_on_cmd56, 0x00},
{0x8, ili9881c_720p_video_on_cmd57, 0x00},
{0x8, ili9881c_720p_video_on_cmd58, 0x00},
{0x8, ili9881c_720p_video_on_cmd59, 0x00},
{0x8, ili9881c_720p_video_on_cmd60, 0x00},
{0x8, ili9881c_720p_video_on_cmd61, 0x00},
{0x8, ili9881c_720p_video_on_cmd62, 0x00},
{0x8, ili9881c_720p_video_on_cmd63, 0x00},
{0x8, ili9881c_720p_video_on_cmd64, 0x00},
{0x8, ili9881c_720p_video_on_cmd65, 0x00},
{0x8, ili9881c_720p_video_on_cmd66, 0x00},
{0x8, ili9881c_720p_video_on_cmd67, 0x00},
{0x8, ili9881c_720p_video_on_cmd68, 0x00},
{0x8, ili9881c_720p_video_on_cmd69, 0x00},
{0x8, ili9881c_720p_video_on_cmd70, 0x00},
{0x8, ili9881c_720p_video_on_cmd71, 0x00},
{0x8, ili9881c_720p_video_on_cmd72, 0x00},
{0x8, ili9881c_720p_video_on_cmd73, 0x00},
{0x8, ili9881c_720p_video_on_cmd74, 0x00},
{0x8, ili9881c_720p_video_on_cmd75, 0x00},
{0x8, ili9881c_720p_video_on_cmd76, 0x00},
{0x8, ili9881c_720p_video_on_cmd77, 0x00},
{0x8, ili9881c_720p_video_on_cmd78, 0x00},
{0x8, ili9881c_720p_video_on_cmd79, 0x00},
{0x8, ili9881c_720p_video_on_cmd80, 0x00},
{0x8, ili9881c_720p_video_on_cmd81, 0x00},
{0x8, ili9881c_720p_video_on_cmd82, 0x00},
{0x8, ili9881c_720p_video_on_cmd83, 0x00},
{0x8, ili9881c_720p_video_on_cmd84, 0x00},
{0x8, ili9881c_720p_video_on_cmd85, 0x00},
{0x8, ili9881c_720p_video_on_cmd86, 0x00},
{0x8, ili9881c_720p_video_on_cmd87, 0x00},
{0x8, ili9881c_720p_video_on_cmd88, 0x00},
{0x8, ili9881c_720p_video_on_cmd89, 0x00},
{0x8, ili9881c_720p_video_on_cmd90, 0x00},
{0x8, ili9881c_720p_video_on_cmd91, 0x00},
{0x8, ili9881c_720p_video_on_cmd92, 0x00},
{0x8, ili9881c_720p_video_on_cmd93, 0x00},
{0x8, ili9881c_720p_video_on_cmd94, 0x00},
{0x8, ili9881c_720p_video_on_cmd95, 0x00},
{0x8, ili9881c_720p_video_on_cmd96, 0x00},
{0x8, ili9881c_720p_video_on_cmd97, 0x00},
{0x8, ili9881c_720p_video_on_cmd98, 0x00},
{0x8, ili9881c_720p_video_on_cmd99, 0x00},
{0x8, ili9881c_720p_video_on_cmd100, 0x00},
{0x8, ili9881c_720p_video_on_cmd101, 0x00},
{0x8, ili9881c_720p_video_on_cmd102, 0x00},
{0x8, ili9881c_720p_video_on_cmd103, 0x00},
{0x8, ili9881c_720p_video_on_cmd104, 0x00},
{0x8, ili9881c_720p_video_on_cmd105, 0x00},
{0x8, ili9881c_720p_video_on_cmd106, 0x00},
{0x8, ili9881c_720p_video_on_cmd107, 0x00},
{0x8, ili9881c_720p_video_on_cmd108, 0x00},
{0x8, ili9881c_720p_video_on_cmd109, 0x00},
{0x8, ili9881c_720p_video_on_cmd110, 0x00},
{0x8, ili9881c_720p_video_on_cmd111, 0x00},
{0x8, ili9881c_720p_video_on_cmd112, 0x00},
{0x8, ili9881c_720p_video_on_cmd113, 0x00},
{0x8, ili9881c_720p_video_on_cmd114, 0x00},
{0x8, ili9881c_720p_video_on_cmd115, 0x00},
{0x8, ili9881c_720p_video_on_cmd116, 0x00},
{0x8, ili9881c_720p_video_on_cmd117, 0x00},
{0x8, ili9881c_720p_video_on_cmd118, 0x00},
{0x8, ili9881c_720p_video_on_cmd119, 0x00},
{0x8, ili9881c_720p_video_on_cmd120, 0x00},
{0x8, ili9881c_720p_video_on_cmd121, 0x00},
{0x8, ili9881c_720p_video_on_cmd122, 0x00},
{0x8, ili9881c_720p_video_on_cmd123, 0x00},
{0x8, ili9881c_720p_video_on_cmd124, 0x00},
{0x8, ili9881c_720p_video_on_cmd125, 0x00},
{0x8, ili9881c_720p_video_on_cmd126, 0x00},
{0x8, ili9881c_720p_video_on_cmd127, 0x00},
{0x8, ili9881c_720p_video_on_cmd128, 0x00},
{0x8, ili9881c_720p_video_on_cmd129, 0x00},
{0x8, ili9881c_720p_video_on_cmd130, 0x00},
{0x8, ili9881c_720p_video_on_cmd131, 0x00},
{0x8, ili9881c_720p_video_on_cmd132, 0x00},
{0x8, ili9881c_720p_video_on_cmd133, 0x00},
{0x8, ili9881c_720p_video_on_cmd134, 0x00},
{0x8, ili9881c_720p_video_on_cmd135, 0x00},
{0x8, ili9881c_720p_video_on_cmd136, 0x00},
{0x8, ili9881c_720p_video_on_cmd137, 0x00},
{0x8, ili9881c_720p_video_on_cmd138, 0x00},
{0x8, ili9881c_720p_video_on_cmd139, 0x00},
{0x8, ili9881c_720p_video_on_cmd140, 0x00},
{0x8, ili9881c_720p_video_on_cmd141, 0x00},
{0x8, ili9881c_720p_video_on_cmd142, 0x00},
{0x8, ili9881c_720p_video_on_cmd143, 0x00},
{0x8, ili9881c_720p_video_on_cmd144, 0x00},
{0x8, ili9881c_720p_video_on_cmd145, 0x00},
{0x8, ili9881c_720p_video_on_cmd146, 0x00},
{0x8, ili9881c_720p_video_on_cmd147, 0x00},
{0x8, ili9881c_720p_video_on_cmd148, 0x00},
{0x8, ili9881c_720p_video_on_cmd149, 0x00},
{0x8, ili9881c_720p_video_on_cmd150, 0x00},
{0x8, ili9881c_720p_video_on_cmd151, 0x00},
{0x8, ili9881c_720p_video_on_cmd152, 0x00},
{0x8, ili9881c_720p_video_on_cmd153, 0x00},
{0x8, ili9881c_720p_video_on_cmd154, 0x00},
{0x8, ili9881c_720p_video_on_cmd155, 0x00},
{0x8, ili9881c_720p_video_on_cmd156, 0x00},
{0x8, ili9881c_720p_video_on_cmd157, 0x00},
{0x8, ili9881c_720p_video_on_cmd158, 0x00},
{0x8, ili9881c_720p_video_on_cmd159, 0x00},
{0x8, ili9881c_720p_video_on_cmd160, 0x00},
{0x8, ili9881c_720p_video_on_cmd161, 0x00},
{0x8, ili9881c_720p_video_on_cmd162, 0x00},
{0x8, ili9881c_720p_video_on_cmd163, 0x00},
{0x8, ili9881c_720p_video_on_cmd164, 0x00},
{0x8, ili9881c_720p_video_on_cmd165, 0x00},
{0x8, ili9881c_720p_video_on_cmd166, 0x00},
{0x8, ili9881c_720p_video_on_cmd167, 0x00},
{0x8, ili9881c_720p_video_on_cmd168, 0x00},
{0x8, ili9881c_720p_video_on_cmd169, 0x00},
{0x8, ili9881c_720p_video_on_cmd170, 0x00},
{0x8, ili9881c_720p_video_on_cmd171, 0x00},
{0x8, ili9881c_720p_video_on_cmd172, 0x00},
{0x8, ili9881c_720p_video_on_cmd173, 0x00},
{0x8, ili9881c_720p_video_on_cmd174, 0x00},
{0x8, ili9881c_720p_video_on_cmd175, 0x00},
{0x8, ili9881c_720p_video_on_cmd176, 0x00},
{0x8, ili9881c_720p_video_on_cmd177, 0x00},
{0x8, ili9881c_720p_video_on_cmd178, 0x00},
{0x8, ili9881c_720p_video_on_cmd179, 0x00},
{0x8, ili9881c_720p_video_on_cmd180, 0x00},
{0x8, ili9881c_720p_video_on_cmd181, 0x00},
{0x8, ili9881c_720p_video_on_cmd182, 0x00},
{0x8, ili9881c_720p_video_on_cmd183, 0x00},
{0x8, ili9881c_720p_video_on_cmd184, 0x00},
{0x8, ili9881c_720p_video_on_cmd185, 0x00},
{0x4, ili9881c_720p_video_on_cmd186, 0x78},
{0x4, ili9881c_720p_video_on_cmd187, 0x0A},
{0x8, ili9881c_720p_video_on_cmd188, 0x00},
{0x8, ili9881c_720p_video_on_cmd189, 0x00},
{0x4, ili9881c_720p_video_on_cmd190, 0x00},
};
#define ILI9881C_720P_VIDEO_ON_COMMAND 191
*/
修改“videopanel_info ili9881c_720p_video_video_panel”如下:
static struct videopanel_info ili9881c_720p_video_video_panel = {
0, 0, 0, 0, 1, 1, 1, 0, 0x9
};
修改“uint32_t ili9881c_720p_video_timings[]”如下:
static const uint32_t ili9881c_720p_video_timings[] = {
0x7F, 0x1c, 0x12, 0x00, 0x40, 0x44, 0x16, 0x1e, 0x17, 0x03, 0x04, 0x00
};
修改“panel_timing ili9881c_720p_video_timing_info”如下:
static struct panel_timing ili9881c_720p_video_timing_info = {
0x0, 0x04, 0x04, 0x1B
};
修改“panel_reset_sequence ili9881c_720p_video_reset_seq”如下:
static struct panel_reset_sequence ili9881c_720p_video_reset_seq = {
{ 1, 0, 1, }, { 20, 10, 200, }, 2
};
修改“backlight ili9881c_720p_video_backlight”如下:
static struct backlight ili9881c_720p_video_backlight = {
1, 1, 4095, 200, 1, "PMIC_8941"
};
完整内容如下:
/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*---------------------------------------------------------------------------
* This file is autogenerated file using gcdb parser. Please do not edit it.
* Update input XML file to add a new entry or update variable in this file
* VERSION = "1.0"
*---------------------------------------------------------------------------*/
#ifndef _PANEL_ILI9881C_720P_VIDEO_H_
#define _PANEL_ILI9881C_720P_VIDEO_H_
/*---------------------------------------------------------------------------*/
/* HEADER files */
/*---------------------------------------------------------------------------*/
#include "panel.h"
/*---------------------------------------------------------------------------*/
/* Panel configuration */
/*---------------------------------------------------------------------------*/
static struct panel_config ili9881c_720p_video_panel_data = {
"qcom,mdss_dsi_ili9881c_720p_video", "dsi:0:", "qcom,mdss-dsi-panel",
10, 0, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
/*---------------------------------------------------------------------------*/
/* Panel resolution */
/*---------------------------------------------------------------------------*/
static struct panel_resolution ili9881c_720p_video_panel_res = {
1280, 720, 110, 220, 40, 0, 5, 20, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
/*---------------------------------------------------------------------------*/
/* Panel color information */
/*---------------------------------------------------------------------------*/
static struct color_info ili9881c_720p_video_color = {
24, 0, 0xff, 0, 0, 0
};
/*---------------------------------------------------------------------------*/
/* Panel on/off command information */
/*---------------------------------------------------------------------------*/
/*static char ili9881c_720p_video_on_cmd0[] = {
0x04, 0x00, 0x39, 0xC0,
0xFF, 0x98, 0x81, 0x03,
};
static char ili9881c_720p_video_on_cmd1[] = {
0x02, 0x00, 0x39, 0xC0,
0x01, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd2[] = {
0x02, 0x00, 0x39, 0xC0,
0x02, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd3[] = {
0x02, 0x00, 0x39, 0xC0,
0x03, 0x73, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd4[] = {
0x02, 0x00, 0x39, 0xC0,
0x04, 0x03, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd5[] = {
0x02, 0x00, 0x39, 0xC0,
0x05, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd6[] = {
0x02, 0x00, 0x39, 0xC0,
0x06, 0x06, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd7[] = {
0x02, 0x00, 0x39, 0xC0,
0x07, 0x06, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd8[] = {
0x02, 0x00, 0x39, 0xC0,
0x08, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd9[] = {
0x02, 0x00, 0x39, 0xC0,
0x09, 0x18, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd10[] = {
0x02, 0x00, 0x39, 0xC0,
0x0A, 0x04, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd11[] = {
0x02, 0x00, 0x39, 0xC0,
0x0B, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd12[] = {
0x02, 0x00, 0x39, 0xC0,
0x0C, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd13[] = {
0x02, 0x00, 0x39, 0xC0,
0x0D, 0x03, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd14[] = {
0x02, 0x00, 0x39, 0xC0,
0x0E, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd15[] = {
0x02, 0x00, 0x39, 0xC0,
0x0F, 0x25, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd16[] = {
0x02, 0x00, 0x39, 0xC0,
0x10, 0x25, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd17[] = {
0x02, 0x00, 0x39, 0xC0,
0x11, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd18[] = {
0x02, 0x00, 0x39, 0xC0,
0x12, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd19[] = {
0x02, 0x00, 0x39, 0xC0,
0x13, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd20[] = {
0x02, 0x00, 0x39, 0xC0,
0x14, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd21[] = {
0x02, 0x00, 0x39, 0xC0,
0x15, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd22[] = {
0x02, 0x00, 0x39, 0xC0,
0x16, 0x0c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd23[] = {
0x02, 0x00, 0x39, 0xC0,
0x17, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd24[] = {
0x02, 0x00, 0x39, 0xC0,
0x18, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd25[] = {
0x02, 0x00, 0x39, 0xC0,
0x19, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd26[] = {
0x02, 0x00, 0x39, 0xC0,
0x1A, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd27[] = {
0x02, 0x00, 0x39, 0xC0,
0x1B, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd28[] = {
0x02, 0x00, 0x39, 0xC0,
0x1C, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd29[] = {
0x02, 0x00, 0x39, 0xC0,
0x1D, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd30[] = {
0x02, 0x00, 0x39, 0xC0,
0x1E, 0xC0, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd31[] = {
0x02, 0x00, 0x39, 0xC0,
0x1F, 0x80, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd32[] = {
0x02, 0x00, 0x39, 0xC0,
0x20, 0x04, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd33[] = {
0x02, 0x00, 0x39, 0xC0,
0x21, 0x01, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd34[] = {
0x02, 0x00, 0x39, 0xC0,
0x22, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd35[] = {
0x02, 0x00, 0x39, 0xC0,
0x23, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd36[] = {
0x02, 0x00, 0x39, 0xC0,
0x24, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd37[] = {
0x02, 0x00, 0x39, 0xC0,
0x25, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd38[] = {
0x02, 0x00, 0x39, 0xC0,
0x26, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd39[] = {
0x02, 0x00, 0x39, 0xC0,
0x27, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd40[] = {
0x02, 0x00, 0x39, 0xC0,
0x28, 0x33, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd41[] = {
0x02, 0x00, 0x39, 0xC0,
0x29, 0x03, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd42[] = {
0x02, 0x00, 0x39, 0xC0,
0x2A, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd43[] = {
0x02, 0x00, 0x39, 0xC0,
0x2B, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd44[] = {
0x02, 0x00, 0x39, 0xC0,
0x2C, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd45[] = {
0x02, 0x00, 0x39, 0xC0,
0x2D, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd46[] = {
0x02, 0x00, 0x39, 0xC0,
0x2E, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd47[] = {
0x02, 0x00, 0x39, 0xC0,
0x2F, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd48[] = {
0x02, 0x00, 0x39, 0xC0,
0x30, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd49[] = {
0x02, 0x00, 0x39, 0xC0,
0x31, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd50[] = {
0x02, 0x00, 0x39, 0xC0,
0x32, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd51[] = {
0x02, 0x00, 0x39, 0xC0,
0x33, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd52[] = {
0x02, 0x00, 0x39, 0xC0,
0x34, 0x04, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd53[] = {
0x02, 0x00, 0x39, 0xC0,
0x35, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd54[] = {
0x02, 0x00, 0x39, 0xC0,
0x36, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd55[] = {
0x02, 0x00, 0x39, 0xC0,
0x37, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd56[] = {
0x02, 0x00, 0x39, 0xC0,
0x38, 0x3c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd57[] = {
0x02, 0x00, 0x39, 0xC0,
0x39, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd58[] = {
0x02, 0x00, 0x39, 0xC0,
0x3A, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd59[] = {
0x02, 0x00, 0x39, 0xC0,
0x3B, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd60[] = {
0x02, 0x00, 0x39, 0xC0,
0x3C, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd61[] = {
0x02, 0x00, 0x39, 0xC0,
0x3D, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd62[] = {
0x02, 0x00, 0x39, 0xC0,
0x3E, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd63[] = {
0x02, 0x00, 0x39, 0xC0,
0x3F, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd64[] = {
0x02, 0x00, 0x39, 0xC0,
0x40, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd65[] = {
0x02, 0x00, 0x39, 0xC0,
0x41, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd66[] = {
0x02, 0x00, 0x39, 0xC0,
0x42, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd67[] = {
0x02, 0x00, 0x39, 0xC0,
0x43, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd68[] = {
0x02, 0x00, 0x39, 0xC0,
0x44, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd69[] = {
0x02, 0x00, 0x39, 0xC0,
0x50, 0x01, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd70[] = {
0x02, 0x00, 0x39, 0xC0,
0x51, 0x23, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd71[] = {
0x02, 0x00, 0x39, 0xC0,
0x52, 0x45, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd72[] = {
0x02, 0x00, 0x39, 0xC0,
0x53, 0x67, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd73[] = {
0x02, 0x00, 0x39, 0xC0,
0x54, 0x89, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd74[] = {
0x02, 0x00, 0x39, 0xC0,
0x55, 0xab, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd75[] = {
0x02, 0x00, 0x39, 0xC0,
0x56, 0x01, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd76[] = {
0x02, 0x00, 0x39, 0xC0,
0x57, 0x23, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd77[] = {
0x02, 0x00, 0x39, 0xC0,
0x58, 0x45, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd78[] = {
0x02, 0x00, 0x39, 0xC0,
0x59, 0x67, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd79[] = {
0x02, 0x00, 0x39, 0xC0,
0x5A, 0x89, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd80[] = {
0x02, 0x00, 0x39, 0xC0,
0x5B, 0xab, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd81[] = {
0x02, 0x00, 0x39, 0xC0,
0x5C, 0xcd, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd82[] = {
0x02, 0x00, 0x39, 0xC0,
0x5D, 0xef, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd83[] = {
0x02, 0x00, 0x39, 0xC0,
0x5E, 0x11, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd84[] = {
0x02, 0x00, 0x39, 0xC0,
0x5F, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd85[] = {
0x02, 0x00, 0x39, 0xC0,
0x60, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd86[] = {
0x02, 0x00, 0x39, 0xC0,
0x61, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd87[] = {
0x02, 0x00, 0x39, 0xC0,
0x62, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd88[] = {
0x02, 0x00, 0x39, 0xC0,
0x63, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd89[] = {
0x02, 0x00, 0x39, 0xC0,
0x64, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd90[] = {
0x02, 0x00, 0x39, 0xC0,
0x65, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd91[] = {
0x02, 0x00, 0x39, 0xC0,
0x66, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd92[] = {
0x02, 0x00, 0x39, 0xC0,
0x67, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd93[] = {
0x02, 0x00, 0x39, 0xC0,
0x68, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd94[] = {
0x02, 0x00, 0x39, 0xC0,
0x69, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd95[] = {
0x02, 0x00, 0x39, 0xC0,
0x6A, 0x0c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd96[] = {
0x02, 0x00, 0x39, 0xC0,
0x6B, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd97[] = {
0x02, 0x00, 0x39, 0xC0,
0x6C, 0x0f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd98[] = {
0x02, 0x00, 0x39, 0xC0,
0x6D, 0x0e, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd99[] = {
0x02, 0x00, 0x39, 0xC0,
0x6E, 0x0d, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd100[] = {
0x02, 0x00, 0x39, 0xC0,
0x6F, 0x06, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd101[] = {
0x02, 0x00, 0x39, 0xC0,
0x70, 0x07, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd102[] = {
0x02, 0x00, 0x39, 0xC0,
0x71, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd103[] = {
0x02, 0x00, 0x39, 0xC0,
0x72, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd104[] = {
0x02, 0x00, 0x39, 0xC0,
0x73, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd105[] = {
0x02, 0x00, 0x39, 0xC0,
0x74, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd106[] = {
0x02, 0x00, 0x39, 0xC0,
0x75, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd107[] = {
0x02, 0x00, 0x39, 0xC0,
0x76, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd108[] = {
0x02, 0x00, 0x39, 0xC0,
0x77, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd109[] = {
0x02, 0x00, 0x39, 0xC0,
0x78, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd110[] = {
0x02, 0x00, 0x39, 0xC0,
0x79, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd111[] = {
0x02, 0x00, 0x39, 0xC0,
0x7A, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd112[] = {
0x02, 0x00, 0x39, 0xC0,
0x7B, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd113[] = {
0x02, 0x00, 0x39, 0xC0,
0x7C, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd114[] = {
0x02, 0x00, 0x39, 0xC0,
0x7D, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd115[] = {
0x02, 0x00, 0x39, 0xC0,
0x7E, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd116[] = {
0x02, 0x00, 0x39, 0xC0,
0x7F, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd117[] = {
0x02, 0x00, 0x39, 0xC0,
0x80, 0x0c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd118[] = {
0x02, 0x00, 0x39, 0xC0,
0x81, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd119[] = {
0x02, 0x00, 0x39, 0xC0,
0x82, 0x0f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd120[] = {
0x02, 0x00, 0x39, 0xC0,
0x83, 0x0e, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd121[] = {
0x02, 0x00, 0x39, 0xC0,
0x84, 0x0d, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd122[] = {
0x02, 0x00, 0x39, 0xC0,
0x85, 0x06, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd123[] = {
0x02, 0x00, 0x39, 0xC0,
0x86, 0x07, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd124[] = {
0x02, 0x00, 0x39, 0xC0,
0x87, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd125[] = {
0x02, 0x00, 0x39, 0xC0,
0x88, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd126[] = {
0x02, 0x00, 0x39, 0xC0,
0x89, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd127[] = {
0x02, 0x00, 0x39, 0xC0,
0x8A, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd128[] = {
0x04, 0x00, 0x39, 0xC0,
0xFF, 0x98, 0x81, 0x04,
};
static char ili9881c_720p_video_on_cmd129[] = {
0x02, 0x00, 0x39, 0xC0,
0x6c, 0x15, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd130[] = {
0x02, 0x00, 0x39, 0xC0,
0x6e, 0x22, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd131[] = {
0x02, 0x00, 0x39, 0xC0,
0x6f, 0x33, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd132[] = {
0x02, 0x00, 0x39, 0xC0,
0x3a, 0xa4, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd133[] = {
0x02, 0x00, 0x39, 0xC0,
0x8d, 0x0d, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd134[] = {
0x02, 0x00, 0x39, 0xC0,
0x87, 0xba, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd135[] = {
0x02, 0x00, 0x39, 0xC0,
0x26, 0x76, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd136[] = {
0x02, 0x00, 0x39, 0xC0,
0xb2, 0xd1, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd137[] = {
0x04, 0x00, 0x39, 0xC0,
0xFF, 0x98, 0x81, 0x01,
};
static char ili9881c_720p_video_on_cmd138[] = {
0x02, 0x00, 0x39, 0xC0,
0x22, 0x0a, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd139[] = {
0x02, 0x00, 0x39, 0xC0,
0x53, 0xbe, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd140[] = {
0x02, 0x00, 0x39, 0xC0,
0x55, 0xa7, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd141[] = {
0x02, 0x00, 0x39, 0xC0,
0x50, 0x74, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd142[] = {
0x02, 0x00, 0x39, 0xC0,
0x51, 0x74, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd143[] = {
0x02, 0x00, 0x39, 0xC0,
0x31, 0x02, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd144[] = {
0x02, 0x00, 0x39, 0xC0,
0x60, 0x14, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd145[] = {
0x02, 0x00, 0x39, 0xC0,
0xa0, 0x15, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd146[] = {
0x02, 0x00, 0x39, 0xC0,
0xa1, 0x26, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd147[] = {
0x02, 0x00, 0x39, 0xC0,
0xa2, 0x2b, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd148[] = {
0x02, 0x00, 0x39, 0xC0,
0xa3, 0x14, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd149[] = {
0x02, 0x00, 0x39, 0xC0,
0xa4, 0x17, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd150[] = {
0x02, 0x00, 0x39, 0xC0,
0xa5, 0x2c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd151[] = {
0x02, 0x00, 0x39, 0xC0,
0xa6, 0x20, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd152[] = {
0x02, 0x00, 0x39, 0xC0,
0xa7, 0x21, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd153[] = {
0x02, 0x00, 0x39, 0xC0,
0xa8, 0x95, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd154[] = {
0x02, 0x00, 0x39, 0xC0,
0xa9, 0x1d, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd155[] = {
0x02, 0x00, 0x39, 0xC0,
0xaa, 0x27, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd156[] = {
0x02, 0x00, 0x39, 0xC0,
0xab, 0x89, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd157[] = {
0x02, 0x00, 0x39, 0xC0,
0xac, 0x1a, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd158[] = {
0x02, 0x00, 0x39, 0xC0,
0xad, 0x18, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd159[] = {
0x02, 0x00, 0x39, 0xC0,
0xae, 0x4b, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd160[] = {
0x02, 0x00, 0x39, 0xC0,
0xaf, 0x21, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd161[] = {
0x02, 0x00, 0x39, 0xC0,
0xb0, 0x26, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd162[] = {
0x02, 0x00, 0x39, 0xC0,
0xb1, 0x60, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd163[] = {
0x02, 0x00, 0x39, 0xC0,
0xb2, 0x71, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd164[] = {
0x02, 0x00, 0x39, 0xC0,
0xb3, 0x3f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd165[] = {
0x02, 0x00, 0x39, 0xC0,
0xc0, 0x05, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd166[] = {
0x02, 0x00, 0x39, 0xC0,
0xc1, 0x26, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd167[] = {
0x02, 0x00, 0x39, 0xC0,
0xc2, 0x3f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd168[] = {
0x02, 0x00, 0x39, 0xC0,
0xc3, 0x0f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd169[] = {
0x02, 0x00, 0x39, 0xC0,
0xc4, 0x14, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd170[] = {
0x02, 0x00, 0x39, 0xC0,
0xc5, 0x27, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd171[] = {
0x02, 0x00, 0x39, 0xC0,
0xc6, 0x1a, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd172[] = {
0x02, 0x00, 0x39, 0xC0,
0xc7, 0x1e, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd173[] = {
0x02, 0x00, 0x39, 0xC0,
0xc8, 0x9e, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd174[] = {
0x02, 0x00, 0x39, 0xC0,
0xc9, 0x1a, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd175[] = {
0x02, 0x00, 0x39, 0xC0,
0xca, 0x29, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd176[] = {
0x02, 0x00, 0x39, 0xC0,
0xcb, 0x82, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd177[] = {
0x02, 0x00, 0x39, 0xC0,
0xcc, 0x18, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd178[] = {
0x02, 0x00, 0x39, 0xC0,
0xcd, 0x16, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd179[] = {
0x02, 0x00, 0x39, 0xC0,
0xce, 0x4c, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd180[] = {
0x02, 0x00, 0x39, 0xC0,
0xcf, 0x1f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd181[] = {
0x02, 0x00, 0x39, 0xC0,
0xd0, 0x28, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd182[] = {
0x02, 0x00, 0x39, 0xC0,
0xd1, 0x53, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd183[] = {
0x02, 0x00, 0x39, 0xC0,
0xd2, 0x62, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd184[] = {
0x02, 0x00, 0x39, 0xC0,
0xd3, 0x3f, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd185[] = {
0x04, 0x00, 0x39, 0xC0,
0xFF, 0x98, 0x81, 0x00,
};
static char ili9881c_720p_video_on_cmd186[] = {
0x11, 0x00, 0x05, 0x80
};
static char ili9881c_720p_video_on_cmd187[] = {
0x29, 0x00, 0x05, 0x80
};
static char ili9881c_720p_video_on_cmd188[] = {
0x02, 0x00, 0x39, 0xC0,
0x35, 0x00, 0xFF, 0xFF,
};
static char ili9881c_720p_video_on_cmd189[] = {
0x04, 0x00, 0x39, 0xC0,
0xff, 0x98, 0x81, 0x01,
};
static char ili9881c_720p_video_on_cmd190[] = {
0x37, 0x00, 0x05, 0x80,
};
static struct mipi_dsi_cmd ili9881c_720p_video_on_command[] = {
{0x8, ili9881c_720p_video_on_cmd0, 0x00},
{0x8, ili9881c_720p_video_on_cmd1, 0x00},
{0x8, ili9881c_720p_video_on_cmd2, 0x00},
{0x8, ili9881c_720p_video_on_cmd3, 0x00},
{0x8, ili9881c_720p_video_on_cmd4, 0x00},
{0x8, ili9881c_720p_video_on_cmd5, 0x00},
{0x8, ili9881c_720p_video_on_cmd6, 0x00},
{0x8, ili9881c_720p_video_on_cmd7, 0x00},
{0x8, ili9881c_720p_video_on_cmd8, 0x00},
{0x8, ili9881c_720p_video_on_cmd9, 0x00},
{0x8, ili9881c_720p_video_on_cmd10, 0x00},
{0x8, ili9881c_720p_video_on_cmd11, 0x00},
{0x8, ili9881c_720p_video_on_cmd12, 0x00},
{0x8, ili9881c_720p_video_on_cmd13, 0x00},
{0x8, ili9881c_720p_video_on_cmd14, 0x00},
{0x8, ili9881c_720p_video_on_cmd15, 0x00},
{0x8, ili9881c_720p_video_on_cmd16, 0x00},
{0x8, ili9881c_720p_video_on_cmd17, 0x00},
{0x8, ili9881c_720p_video_on_cmd18, 0x00},
{0x8, ili9881c_720p_video_on_cmd19, 0x00},
{0x8, ili9881c_720p_video_on_cmd20, 0x00},
{0x8, ili9881c_720p_video_on_cmd21, 0x00},
{0x8, ili9881c_720p_video_on_cmd22, 0x00},
{0x8, ili9881c_720p_video_on_cmd23, 0x00},
{0x8, ili9881c_720p_video_on_cmd24, 0x00},
{0x8, ili9881c_720p_video_on_cmd25, 0x00},
{0x8, ili9881c_720p_video_on_cmd26, 0x00},
{0x8, ili9881c_720p_video_on_cmd27, 0x00},
{0x8, ili9881c_720p_video_on_cmd28, 0x00},
{0x8, ili9881c_720p_video_on_cmd29, 0x00},
{0x8, ili9881c_720p_video_on_cmd30, 0x00},
{0x8, ili9881c_720p_video_on_cmd31, 0x00},
{0x8, ili9881c_720p_video_on_cmd32, 0x00},
{0x8, ili9881c_720p_video_on_cmd33, 0x00},
{0x8, ili9881c_720p_video_on_cmd34, 0x00},
{0x8, ili9881c_720p_video_on_cmd35, 0x00},
{0x8, ili9881c_720p_video_on_cmd36, 0x00},
{0x8, ili9881c_720p_video_on_cmd37, 0x00},
{0x8, ili9881c_720p_video_on_cmd38, 0x00},
{0x8, ili9881c_720p_video_on_cmd39, 0x00},
{0x8, ili9881c_720p_video_on_cmd40, 0x00},
{0x8, ili9881c_720p_video_on_cmd41, 0x00},
{0x8, ili9881c_720p_video_on_cmd42, 0x00},
{0x8, ili9881c_720p_video_on_cmd43, 0x00},
{0x8, ili9881c_720p_video_on_cmd44, 0x00},
{0x8, ili9881c_720p_video_on_cmd45, 0x00},
{0x8, ili9881c_720p_video_on_cmd46, 0x00},
{0x8, ili9881c_720p_video_on_cmd47, 0x00},
{0x8, ili9881c_720p_video_on_cmd48, 0x00},
{0x8, ili9881c_720p_video_on_cmd49, 0x00},
{0x8, ili9881c_720p_video_on_cmd50, 0x00},
{0x8, ili9881c_720p_video_on_cmd51, 0x00},
{0x8, ili9881c_720p_video_on_cmd52, 0x00},
{0x8, ili9881c_720p_video_on_cmd53, 0x00},
{0x8, ili9881c_720p_video_on_cmd54, 0x00},
{0x8, ili9881c_720p_video_on_cmd55, 0x00},
{0x8, ili9881c_720p_video_on_cmd56, 0x00},
{0x8, ili9881c_720p_video_on_cmd57, 0x00},
{0x8, ili9881c_720p_video_on_cmd58, 0x00},
{0x8, ili9881c_720p_video_on_cmd59, 0x00},
{0x8, ili9881c_720p_video_on_cmd60, 0x00},
{0x8, ili9881c_720p_video_on_cmd61, 0x00},
{0x8, ili9881c_720p_video_on_cmd62, 0x00},
{0x8, ili9881c_720p_video_on_cmd63, 0x00},
{0x8, ili9881c_720p_video_on_cmd64, 0x00},
{0x8, ili9881c_720p_video_on_cmd65, 0x00},
{0x8, ili9881c_720p_video_on_cmd66, 0x00},
{0x8, ili9881c_720p_video_on_cmd67, 0x00},
{0x8, ili9881c_720p_video_on_cmd68, 0x00},
{0x8, ili9881c_720p_video_on_cmd69, 0x00},
{0x8, ili9881c_720p_video_on_cmd70, 0x00},
{0x8, ili9881c_720p_video_on_cmd71, 0x00},
{0x8, ili9881c_720p_video_on_cmd72, 0x00},
{0x8, ili9881c_720p_video_on_cmd73, 0x00},
{0x8, ili9881c_720p_video_on_cmd74, 0x00},
{0x8, ili9881c_720p_video_on_cmd75, 0x00},
{0x8, ili9881c_720p_video_on_cmd76, 0x00},
{0x8, ili9881c_720p_video_on_cmd77, 0x00},
{0x8, ili9881c_720p_video_on_cmd78, 0x00},
{0x8, ili9881c_720p_video_on_cmd79, 0x00},
{0x8, ili9881c_720p_video_on_cmd80, 0x00},
{0x8, ili9881c_720p_video_on_cmd81, 0x00},
{0x8, ili9881c_720p_video_on_cmd82, 0x00},
{0x8, ili9881c_720p_video_on_cmd83, 0x00},
{0x8, ili9881c_720p_video_on_cmd84, 0x00},
{0x8, ili9881c_720p_video_on_cmd85, 0x00},
{0x8, ili9881c_720p_video_on_cmd86, 0x00},
{0x8, ili9881c_720p_video_on_cmd87, 0x00},
{0x8, ili9881c_720p_video_on_cmd88, 0x00},
{0x8, ili9881c_720p_video_on_cmd89, 0x00},
{0x8, ili9881c_720p_video_on_cmd90, 0x00},
{0x8, ili9881c_720p_video_on_cmd91, 0x00},
{0x8, ili9881c_720p_video_on_cmd92, 0x00},
{0x8, ili9881c_720p_video_on_cmd93, 0x00},
{0x8, ili9881c_720p_video_on_cmd94, 0x00},
{0x8, ili9881c_720p_video_on_cmd95, 0x00},
{0x8, ili9881c_720p_video_on_cmd96, 0x00},
{0x8, ili9881c_720p_video_on_cmd97, 0x00},
{0x8, ili9881c_720p_video_on_cmd98, 0x00},
{0x8, ili9881c_720p_video_on_cmd99, 0x00},
{0x8, ili9881c_720p_video_on_cmd100, 0x00},
{0x8, ili9881c_720p_video_on_cmd101, 0x00},
{0x8, ili9881c_720p_video_on_cmd102, 0x00},
{0x8, ili9881c_720p_video_on_cmd103, 0x00},
{0x8, ili9881c_720p_video_on_cmd104, 0x00},
{0x8, ili9881c_720p_video_on_cmd105, 0x00},
{0x8, ili9881c_720p_video_on_cmd106, 0x00},
{0x8, ili9881c_720p_video_on_cmd107, 0x00},
{0x8, ili9881c_720p_video_on_cmd108, 0x00},
{0x8, ili9881c_720p_video_on_cmd109, 0x00},
{0x8, ili9881c_720p_video_on_cmd110, 0x00},
{0x8, ili9881c_720p_video_on_cmd111, 0x00},
{0x8, ili9881c_720p_video_on_cmd112, 0x00},
{0x8, ili9881c_720p_video_on_cmd113, 0x00},
{0x8, ili9881c_720p_video_on_cmd114, 0x00},
{0x8, ili9881c_720p_video_on_cmd115, 0x00},
{0x8, ili9881c_720p_video_on_cmd116, 0x00},
{0x8, ili9881c_720p_video_on_cmd117, 0x00},
{0x8, ili9881c_720p_video_on_cmd118, 0x00},
{0x8, ili9881c_720p_video_on_cmd119, 0x00},
{0x8, ili9881c_720p_video_on_cmd120, 0x00},
{0x8, ili9881c_720p_video_on_cmd121, 0x00},
{0x8, ili9881c_720p_video_on_cmd122, 0x00},
{0x8, ili9881c_720p_video_on_cmd123, 0x00},
{0x8, ili9881c_720p_video_on_cmd124, 0x00},
{0x8, ili9881c_720p_video_on_cmd125, 0x00},
{0x8, ili9881c_720p_video_on_cmd126, 0x00},
{0x8, ili9881c_720p_video_on_cmd127, 0x00},
{0x8, ili9881c_720p_video_on_cmd128, 0x00},
{0x8, ili9881c_720p_video_on_cmd129, 0x00},
{0x8, ili9881c_720p_video_on_cmd130, 0x00},
{0x8, ili9881c_720p_video_on_cmd131, 0x00},
{0x8, ili9881c_720p_video_on_cmd132, 0x00},
{0x8, ili9881c_720p_video_on_cmd133, 0x00},
{0x8, ili9881c_720p_video_on_cmd134, 0x00},
{0x8, ili9881c_720p_video_on_cmd135, 0x00},
{0x8, ili9881c_720p_video_on_cmd136, 0x00},
{0x8, ili9881c_720p_video_on_cmd137, 0x00},
{0x8, ili9881c_720p_video_on_cmd138, 0x00},
{0x8, ili9881c_720p_video_on_cmd139, 0x00},
{0x8, ili9881c_720p_video_on_cmd140, 0x00},
{0x8, ili9881c_720p_video_on_cmd141, 0x00},
{0x8, ili9881c_720p_video_on_cmd142, 0x00},
{0x8, ili9881c_720p_video_on_cmd143, 0x00},
{0x8, ili9881c_720p_video_on_cmd144, 0x00},
{0x8, ili9881c_720p_video_on_cmd145, 0x00},
{0x8, ili9881c_720p_video_on_cmd146, 0x00},
{0x8, ili9881c_720p_video_on_cmd147, 0x00},
{0x8, ili9881c_720p_video_on_cmd148, 0x00},
{0x8, ili9881c_720p_video_on_cmd149, 0x00},
{0x8, ili9881c_720p_video_on_cmd150, 0x00},
{0x8, ili9881c_720p_video_on_cmd151, 0x00},
{0x8, ili9881c_720p_video_on_cmd152, 0x00},
{0x8, ili9881c_720p_video_on_cmd153, 0x00},
{0x8, ili9881c_720p_video_on_cmd154, 0x00},
{0x8, ili9881c_720p_video_on_cmd155, 0x00},
{0x8, ili9881c_720p_video_on_cmd156, 0x00},
{0x8, ili9881c_720p_video_on_cmd157, 0x00},
{0x8, ili9881c_720p_video_on_cmd158, 0x00},
{0x8, ili9881c_720p_video_on_cmd159, 0x00},
{0x8, ili9881c_720p_video_on_cmd160, 0x00},
{0x8, ili9881c_720p_video_on_cmd161, 0x00},
{0x8, ili9881c_720p_video_on_cmd162, 0x00},
{0x8, ili9881c_720p_video_on_cmd163, 0x00},
{0x8, ili9881c_720p_video_on_cmd164, 0x00},
{0x8, ili9881c_720p_video_on_cmd165, 0x00},
{0x8, ili9881c_720p_video_on_cmd166, 0x00},
{0x8, ili9881c_720p_video_on_cmd167, 0x00},
{0x8, ili9881c_720p_video_on_cmd168, 0x00},
{0x8, ili9881c_720p_video_on_cmd169, 0x00},
{0x8, ili9881c_720p_video_on_cmd170, 0x00},
{0x8, ili9881c_720p_video_on_cmd171, 0x00},
{0x8, ili9881c_720p_video_on_cmd172, 0x00},
{0x8, ili9881c_720p_video_on_cmd173, 0x00},
{0x8, ili9881c_720p_video_on_cmd174, 0x00},
{0x8, ili9881c_720p_video_on_cmd175, 0x00},
{0x8, ili9881c_720p_video_on_cmd176, 0x00},
{0x8, ili9881c_720p_video_on_cmd177, 0x00},
{0x8, ili9881c_720p_video_on_cmd178, 0x00},
{0x8, ili9881c_720p_video_on_cmd179, 0x00},
{0x8, ili9881c_720p_video_on_cmd180, 0x00},
{0x8, ili9881c_720p_video_on_cmd181, 0x00},
{0x8, ili9881c_720p_video_on_cmd182, 0x00},
{0x8, ili9881c_720p_video_on_cmd183, 0x00},
{0x8, ili9881c_720p_video_on_cmd184, 0x00},
{0x8, ili9881c_720p_video_on_cmd185, 0x00},
{0x4, ili9881c_720p_video_on_cmd186, 0x78},
{0x4, ili9881c_720p_video_on_cmd187, 0x0A},
{0x8, ili9881c_720p_video_on_cmd188, 0x00},
{0x8, ili9881c_720p_video_on_cmd189, 0x00},
{0x4, ili9881c_720p_video_on_cmd190, 0x00},
};
#define ILI9881C_720P_VIDEO_ON_COMMAND 191
*/
static char read_id_00h_cmd[] = {0x00, 0x00, 0x06, 0xa0}; /* DTYPE_DCS_READ */
static struct mipi_dsi_cmd ili9881c_720p_read_id_command =
{sizeof(read_id_00h_cmd), read_id_00h_cmd};
static char ili9881c_720p_videooff_cmd0[] = {
0x28, 0x00, 0x05, 0x80
};
static char ili9881c_720p_videooff_cmd1[] = {
0x10, 0x00, 0x05, 0x80
};
static struct mipi_dsi_cmd ili9881c_720p_video_off_command[] = {
{0x4, ili9881c_720p_videooff_cmd0, 0x32},
{0x4, ili9881c_720p_videooff_cmd1, 0x78}
};
#define ILI9881C_720P_VIDEO_OFF_COMMAND 2
static struct command_state ili9881c_720p_video_state = {
0, 1
};
/*---------------------------------------------------------------------------*/
/* Command mode panel information */
/*---------------------------------------------------------------------------*/
static struct commandpanel_info ili9881c_720p_video_command_panel = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
/*---------------------------------------------------------------------------*/
/* Video mode panel information */
/*---------------------------------------------------------------------------*/
static struct videopanel_info ili9881c_720p_video_video_panel = {
0, 0, 0, 0, 1, 1, 1, 0, 0x9
};
/*---------------------------------------------------------------------------*/
/* Lane configuration */
/*---------------------------------------------------------------------------*/
static struct lane_configuration ili9881c_720p_video_lane_config = {
4, 0, 1, 1, 1, 1
};
/*---------------------------------------------------------------------------*/
/* Panel timing */
/*---------------------------------------------------------------------------*/
static const uint32_t ili9881c_720p_video_timings[] = {
0x7F, 0x1c, 0x12, 0x00, 0x40, 0x44, 0x16, 0x1e, 0x17, 0x03, 0x04, 0x00
};
static struct panel_timing ili9881c_720p_video_timing_info = {
0x0, 0x04, 0x04, 0x1B
};
/*---------------------------------------------------------------------------*/
/* Panel reset sequence */
/*---------------------------------------------------------------------------*/
static struct panel_reset_sequence ili9881c_720p_video_reset_seq = {
{ 1, 0, 1, }, { 20, 10, 200, }, 2
};
/*---------------------------------------------------------------------------*/
/* Backlight setting */
/*---------------------------------------------------------------------------*/
static struct backlight ili9881c_720p_video_backlight = {
1, 1, 4095, 200, 1, "PMIC_8941"
};
#define ILI9881C_720P_VIDEO_SIGNATURE 0x9800
#endif /*_PANEL_ILI9881C_720P_VIDEO_H_*/
这个人很懒什么也没有留下!