/* Copyright (c) 2015-2016, 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_R69006_1080P_CMD_H_
#define _PANEL_R69006_1080P_CMD_H_
/*---------------------------------------------------------------------------*/
/* HEADER files                                                              */
/*---------------------------------------------------------------------------*/
#include "panel.h"

/*---------------------------------------------------------------------------*/
/* Panel configuration                                                       */
/*---------------------------------------------------------------------------*/
static struct panel_config r69006_1080p_cmd_panel_data = {
	"qcom,mdss_dsi_r69006_1080p_cmd", "dsi:0:", "qcom,mdss-dsi-panel",
	10, 1, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL
};

/*---------------------------------------------------------------------------*/
/* Panel resolution                                                          */
/*---------------------------------------------------------------------------*/
static struct panel_resolution r69006_1080p_cmd_panel_res = {
	1080, 1920, 100, 82, 20, 0, 3, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

/*---------------------------------------------------------------------------*/
/* Panel color information                                                   */
/*---------------------------------------------------------------------------*/
static struct color_info r69006_1080p_cmd_color = {
	24, 0, 0xff, 0, 0, 0
};

/*---------------------------------------------------------------------------*/
/* Panel on/off command information                                          */
/*---------------------------------------------------------------------------*/
static char r69006_1080p_cmd_on_cmd0[] = {
	0xB0, 0x00, 0x23, 0x80
};

static char r69006_1080p_cmd_on_cmd1[] = {
	0x06, 0x00, 0x29, 0xC0,
	0xB3, 0x04, 0x10, 0x00,
	0x00, 0x00, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd2[] = {
	0x03, 0x00, 0x29, 0xC0,
	0xB4, 0x0C, 0x00, 0xFF,
};

static char r69006_1080p_cmd_on_cmd3[] = {
	0x04, 0x00, 0x29, 0xC0,
	0xB6, 0x3B, 0xD3, 0x00,
};

static char r69006_1080p_cmd_on_cmd4[] = {
	0xC0, 0x00, 0x23, 0x80
};

static char r69006_1080p_cmd_on_cmd5[] = {
	0x36, 0x98, 0x15, 0x80
};

static char r69006_1080p_cmd_on_cmd6[] = {
	0xCC, 0x04, 0x23, 0x80
};

static char r69006_1080p_cmd_on_cmd7[] = {
	0x20, 0x00, 0x29, 0xC0,
	0xC1, 0x84, 0x00, 0x10,
	0xEF, 0x8B, 0xF1, 0xFF,
	0xFF, 0xDF, 0x9C, 0xC5,
	0x9A, 0x73, 0x8D, 0xAD,
	0x63, 0xFE, 0xFF, 0xFF,
	0xCB, 0xF8, 0x01, 0x00,
	0xAA, 0x40, 0x02, 0xC2,
	0x01, 0x08, 0x00, 0x01,
};

static char r69006_1080p_cmd_on_cmd8[] = {
	0x0A, 0x00, 0x29, 0xC0,
	0xCB, 0x0D, 0xFE, 0x1F,
	0x2C, 0x00, 0x00, 0x00,
	0x00, 0x00, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd9[] = {
	0x0B, 0x00, 0x29, 0xC0,
	0xC2, 0x01, 0xF7, 0x80,
	0x04, 0x63, 0x00, 0x60,
	0x00, 0x01, 0x30, 0xFF,
};

static char r69006_1080p_cmd_on_cmd10[] = {
	0x07, 0x00, 0x29, 0xC0,
	0xC3, 0x55, 0x01, 0x00,
	0x01, 0x00, 0x00, 0xFF,
};

static char r69006_1080p_cmd_on_cmd11[] = {
	0x12, 0x00, 0x29, 0xC0,
	0xC4, 0x70, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x02, 0x01,
	0x00, 0x05, 0x01, 0x00,
	0x00, 0x00, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd12[] = {
	0x0F, 0x00, 0x29, 0xC0,
	0xC6, 0x57, 0x07, 0x4A,
	0x07, 0x4A, 0x01, 0x0E,
	0x01, 0x02, 0x01, 0x02,
	0x09, 0x15, 0x07, 0xFF,
};

static char r69006_1080p_cmd_on_cmd13[] = {
	0x1F, 0x00, 0x29, 0xC0,
	0xC7, 0x00, 0x06, 0x0C,
	0x16, 0x27, 0x35, 0x3F,
	0x4D, 0x33, 0x3C, 0x49,
	0x5B, 0x64, 0x66, 0x67,
	0x00, 0x06, 0x0C, 0x16,
	0x27, 0x35, 0x3F, 0x4D,
	0x33, 0x3C, 0x49, 0x5B,
	0x64, 0x66, 0x67, 0xFF,
};

static char r69006_1080p_cmd_on_cmd14[] = {
	0x14, 0x00, 0x29, 0xC0,
	0xC8, 0x00, 0x00, 0xFE,
	0x01, 0x08, 0xE7, 0x00,
	0x00, 0xFD, 0x02, 0x03,
	0xA8, 0x00, 0x00, 0xFC,
	0xE7, 0xE9, 0xC9, 0x00,
};

static char r69006_1080p_cmd_on_cmd15[] = {
	0x09, 0x00, 0x29, 0xC0,
	0xC9, 0x1F, 0x68, 0x1F,
	0x68, 0x4C, 0x4C, 0xC4,
	0x11, 0xFF, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd16[] = {
	0x11, 0x00, 0x29, 0xC0,
	0xD0, 0x11, 0x01, 0x91,
	0x0B, 0xD9, 0x19, 0x19,
	0x00, 0x00, 0x00, 0x19,
	0x99, 0x00, 0x00, 0x00,
	0x00, 0xFF, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd17[] = {
	0x1D, 0x00, 0x29, 0xC0,
	0xD3, 0x1B, 0x3B, 0xBB,
	0xAD, 0xA5, 0x33, 0x33,
	0x33, 0x00, 0x80, 0xAD,
	0xA8, 0x37, 0x33, 0x33,
	0x33, 0x33, 0xF7, 0xF2,
	0x1F, 0x7D, 0x7C, 0xFF,
	0x0F, 0x99, 0x00, 0xFF,
	0xFF, 0xFF, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd18[] = {
	0x04, 0x00, 0x29, 0xC0,
	0xD4, 0x57, 0x33, 0x03,
};

static char r69006_1080p_cmd_on_cmd19[] = {
	0x0C, 0x00, 0x29, 0xC0,
	0xD5, 0x66, 0x00, 0x00,
	0x01, 0x32, 0x01, 0x32,
	0x00, 0x0b, 0x00, 0x0b,
};

static char r69006_1080p_cmd_on_cmd20[] = {
	0x02, 0x00, 0x29, 0xC0,
	0xBE, 0x04, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd21[] = {
	0x11, 0x00, 0x29, 0xC0,
	0xCF, 0x40, 0x10, 0x00,
	0x00, 0x00, 0x00, 0x32,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0xFF, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd22[] = {
	0x06, 0x00, 0x29, 0xC0,
	0xDE, 0x00, 0x00, 0x3F,
	0xFF, 0x10, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd23[] = {
	0x02, 0x00, 0x29, 0xC0,
	0xE9, 0x00, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd24[] = {
	0x02, 0x00, 0x29, 0xC0,
	0xF2, 0x00, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd25[] = {
	0xD6, 0x01, 0x23, 0x80
};

static char r69006_1080p_cmd_on_cmd26[] = {
	0x02, 0x00, 0x39, 0xC0,
	0x35, 0x00, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd27[] = {
	0x02, 0x00, 0x39, 0xC0,
	0x51, 0xff, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd28[] = {
	0x02, 0x00, 0x39, 0xC0,
	0x53, 0x2c, 0xFF, 0xFF,
};

static char r69006_1080p_cmd_on_cmd29[] = {
	0x02, 0x00, 0x39, 0xC0,
	0x55, 0x00, 0xFF, 0xFF,
};


static char r69006_1080p_cmd_on_cmd30[] = {
	0x11, 0x00, 0x05, 0x80
};

static char r69006_1080p_cmd_on_cmd31[] = {
	0x29, 0x00, 0x05, 0x80
};


static struct mipi_dsi_cmd r69006_1080p_cmd_on_command[] = {
	{0x4, r69006_1080p_cmd_on_cmd0, 0x00},
	{0xc, r69006_1080p_cmd_on_cmd1, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd2, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd3, 0x00},
	{0x4, r69006_1080p_cmd_on_cmd4, 0x00},
	{0x4, r69006_1080p_cmd_on_cmd5, 0x00},
	{0x4, r69006_1080p_cmd_on_cmd6, 0x00},
	{0x24, r69006_1080p_cmd_on_cmd7, 0x00},
	{0x10, r69006_1080p_cmd_on_cmd8, 0x00},
	{0x10, r69006_1080p_cmd_on_cmd9, 0x00},
	{0xc, r69006_1080p_cmd_on_cmd10, 0x00},
	{0x18, r69006_1080p_cmd_on_cmd11, 0x00},
	{0x14, r69006_1080p_cmd_on_cmd12, 0x00},
	{0x24, r69006_1080p_cmd_on_cmd13, 0x00},
	{0x18, r69006_1080p_cmd_on_cmd14, 0x00},
	{0x10, r69006_1080p_cmd_on_cmd15, 0x00},
	{0x18, r69006_1080p_cmd_on_cmd16, 0x00},
	{0x24, r69006_1080p_cmd_on_cmd17, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd18, 0x00},
	{0x10, r69006_1080p_cmd_on_cmd19, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd20, 0x00},
	{0x18, r69006_1080p_cmd_on_cmd21, 0x00},
	{0xc, r69006_1080p_cmd_on_cmd22, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd23, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd24, 0x00},
	{0x4, r69006_1080p_cmd_on_cmd25, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd26, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd27, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd28, 0x00},
	{0x8, r69006_1080p_cmd_on_cmd29, 0x00},
	{0x4, r69006_1080p_cmd_on_cmd30, 0x78},
	{0x4, r69006_1080p_cmd_on_cmd31, 0x14}
};

#define R69006_1080P_CMD_ON_COMMAND 32


static char r69006_1080p_cmdoff_cmd0[] = {
	0x28, 0x00, 0x05, 0x80
};

static char r69006_1080p_cmdoff_cmd1[] = {
	0x10, 0x00, 0x05, 0x80
};

static struct mipi_dsi_cmd r69006_1080p_cmd_off_command[] = {
	{0x4, r69006_1080p_cmdoff_cmd0, 0x78},
	{0x4, r69006_1080p_cmdoff_cmd1, 0x96}
};

#define R69006_1080P_CMD_OFF_COMMAND 2


static struct command_state r69006_1080p_cmd_state = {
	0, 1
};

/*---------------------------------------------------------------------------*/
/* Command mode panel information                                            */
/*---------------------------------------------------------------------------*/
static struct commandpanel_info r69006_1080p_cmd_command_panel = {
	1, 1, 1, 1, 1, 0x2c, 0, 0, 0, 1, 0, 0
};

/*---------------------------------------------------------------------------*/
/* Video mode panel information                                              */
/*---------------------------------------------------------------------------*/
static struct videopanel_info r69006_1080p_cmd_video_panel = {
	1, 0, 0, 0, 1, 1, 2, 0, 0x9
};

/*---------------------------------------------------------------------------*/
/* Lane configuration                                                        */
/*---------------------------------------------------------------------------*/
static struct lane_configuration r69006_1080p_cmd_lane_config = {
	4, 0, 1, 1, 1, 1, 0
};

/*---------------------------------------------------------------------------*/
/* Panel timing                                                              */
/*---------------------------------------------------------------------------*/
static const uint32_t r69006_1080p_cmd_timings[] = {
	0x6E, 0x3F, 0x36, 0x00, 0x5A, 0x4F, 0x38, 0x41, 0x54, 0x03, 0x04, 0x00
};

static const uint32_t r69006_1080p_14nm_cmd_timings[] = {
	0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
	0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
	0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
	0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
	0x24, 0x1b, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
};

static struct panel_timing r69006_1080p_cmd_timing_info = {
	0, 4, 0x20, 0x2c
};

/*---------------------------------------------------------------------------*/
/* Panel reset sequence                                                      */
/*---------------------------------------------------------------------------*/
static struct panel_reset_sequence r69006_1080p_cmd_reset_seq = {
	{1, 0, 1, }, {10, 10, 10, }, 2
};

/*---------------------------------------------------------------------------*/
/* Backlight setting                                                         */
/*---------------------------------------------------------------------------*/
static struct backlight r69006_1080p_cmd_backlight = {
	1, 1, 4095, 100, 1, "PMIC_8941"
};

static struct labibb_desc r69006_1080p_cmd_labibb = {
	0, 1, 5700000, 5700000, 5700000, 5700000, 3, 3, 1, 0
};

#define R69006_1080P_CMD_PANEL_ON_DELAY 32

#define R69006_1080P_CMD_SIGNATURE 0xFFFF

#endif /*_PANEL_R69006_1080P_CMD_H_*/
