/* Copyright (c) 2015, 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, 0xc3, 0x00,
};

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

static char r69006_1080p_cmd_on_cmd5[] = {
	0X36, 0x90, 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, 0x00, 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, 0x59, 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, 0x30, 0x32,
	0x34, 0x42, 0x4E, 0x56,
	0x62, 0x44, 0x4A, 0x54,
	0x62, 0x6B, 0x73, 0x7F,
	0x08, 0x30, 0x32, 0x34,
	0x42, 0x4E, 0x56, 0x62,
	0x44, 0x4A, 0x54, 0x62,
	0x6B, 0x73, 0x7F, 0xFF,
};

static char r69006_1080p_cmd_on_cmd14[] = {
	0x14, 0x00, 0x29, 0xC0,
	0xC8, 0x00, 0x00, 0x00,
	0x00, 0x00, 0xFC, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0xFC, 0x00, 0x00, 0x00,
	0x00, 0x00, 0xFC, 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, 0x33, 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, 0x6f, 0x6f, 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, 0x27, 0x01, 0x27,
	0x00, 0x6D, 0x00, 0x6D,
};

static char r69006_1080p_cmd_on_cmd20[] = {
	0xD6, 0x81, 0x23, 0x80
};

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

static char r69006_1080p_cmd_on_cmd22[] = {
	0x11, 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},
	{0x4, r69006_1080p_cmd_on_cmd20, 0x00},
	{0x4, r69006_1080p_cmd_on_cmd21, 0x78},
	{0x4, r69006_1080p_cmd_on_cmd22, 0x78}
};

#define R69006_1080P_CMD_ON_COMMAND 23


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, 0, 0, 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[] = {
	0x7d, 0x25, 0x1d, 0x00, 0x37, 0x33, 0x22, 0x27, 0x1e, 0x03, 0x04, 0x00
};

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, }, {20, 2, 20, }, 2
};

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

#endif /*_PANEL_R69006_1080P_CMD_H_*/
