Andorid:msm8909:MIPI转HDMI调试记录

写在前面

SOC:Qualcomm msm8909

Core-Board:SC20-CE QA/PJ

Base-Board:xxx

Linux Kernel:xxx

Android:7.1

 

本次目的

将核心板输出的MIPI显示信号通过LT8912B芯片转换成HDMI信号输出

 

详细步骤

LT8912B驱动的添加

新增驱动文件:

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 <linux/types.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/platform_device.h>
#include <linux/fs.h>
#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/gpio.h>
#include <linux/interrupt.h>
#include <linux/of_gpio.h>
#include <linux/of_irq.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
#include <linux/mdss_io_util.h>
#include <linux/jiffies.h>
#include <linux/timer.h>
#include <linux/kthread.h>

#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(&lt8912_driver);
}

static void __exit lt8912_exit(void)
{
	i2c_del_driver(&lt8912_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, <mailto:jsimmons@users.sf.net>
# 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 = <&lt8912_dis0_int_active &lt8912_dis0_rst_active>;
//	        pinctrl-1 = <&lt8912_dis0_int_suspend &lt8912_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 = <&lt8912_dis0_int_active &lt8912_dis0_rst_active>;
//	        pinctrl-1 = <&lt8912_dis0_int_suspend &lt8912_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>;
};

Bootloader(LK)的修改

修改文件:

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_*/

本次小结

这个人很懒什么也没有留下!

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值