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

#ifndef _PANEL_TRULY_1080P_VIDEO_H_

#define _PANEL_TRULY_1080P_VIDEO_H_
/*---------------------------------------------------------------------------*/
/* HEADER files                                                              */
/*---------------------------------------------------------------------------*/
#include "panel.h"

/*---------------------------------------------------------------------------*/
/* Panel configuration                                                       */
/*---------------------------------------------------------------------------*/

static struct panel_config truly_1080p_video_panel_data = {
  "qcom,mdss_dsi_truly_1080p_video", "dsi:0:", "qcom,mdss-dsi-panel",
  10, 0, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, NULL
};

/*---------------------------------------------------------------------------*/
/* Panel resolution                                                          */
/*---------------------------------------------------------------------------*/
static struct panel_resolution truly_1080p_video_panel_res = {
  1080, 1920, 96, 64, 16, 0, 4, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

/*---------------------------------------------------------------------------*/
/* Panel Color Information                                                   */
/*---------------------------------------------------------------------------*/
static struct color_info truly_1080p_video_color = {
  24, 0, 0xff, 0, 0, 0
};

/*---------------------------------------------------------------------------*/
/* Panel Command information                                                 */
/*---------------------------------------------------------------------------*/
static char truly_1080p_video_on_cmd0[] = {
0x35, 0x00, 0x015, 0x80, };


static char truly_1080p_video_on_cmd1[] = {
0x51, 0xff, 0x15, 0x80, };


static char truly_1080p_video_on_cmd2[] = {
0x53, 0x2c, 0x15, 0x80, };


static char truly_1080p_video_on_cmd3[] = {
0x55, 0x03, 0x15, 0x80, };


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


static char truly_1080p_video_on_cmd5[] = {
0xb0, 0x00, 0x23, 0x80, };


static char truly_1080p_video_on_cmd6[] = {
0x07, 0x00, 0x29, 0xC0,
0xb3, 0x14, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, };


static char truly_1080p_video_on_cmd7[] = {
0x03, 0x00, 0x29, 0xC0,
0xb6, 0x3a, 0xd3, 0xFF, };


static char truly_1080p_video_on_cmd8[] = {
0x03, 0x00, 0x29, 0xc0,
0xc0, 0x00, 0x00, 0xff, };


static char truly_1080p_video_on_cmd9[] = {
0x23, 0x00, 0x29, 0xC0,
0xc1, 0x84, 0x60, 0x10,
0xeb, 0xff, 0x6f, 0xce,
0xff, 0xff, 0x17, 0x02,
0x58, 0x73, 0xae, 0xb1,
0x20, 0xc6, 0xff, 0xff,
0x1f, 0xf3, 0xff, 0x5f,
0x10, 0x10, 0x10, 0x10,
0x00, 0x02, 0x01, 0x22,
0x22, 0x00, 0x01, 0xff, };


static char truly_1080p_video_on_cmd10[] = {
0x08, 0x00, 0x29, 0xC0,
0xc2, 0x31, 0xf7, 0x80,
0x06, 0x08, 0x00, 0x00, };


static char truly_1080p_video_on_cmd11[] = {
0x17, 0x00, 0x29, 0xC0,
0xc4, 0x70, 0x00, 0x00,
0x00, 0x00, 0x04, 0x00,
0x00, 0x00, 0x0c, 0x06,
0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00,
0x00, 0x0c, 0x06, 0xff, };


static char truly_1080p_video_on_cmd12[] = {
0x29, 0x00, 0x29, 0xC0,
0xc6, 0x00, 0x69, 0x00,
0x69, 0x00, 0x69, 0x00,
0x00, 0x00, 0x00, 0x00,
0x69, 0x00, 0x69, 0x00,
0x69, 0x10, 0x19, 0x07,
0x00, 0x01, 0x00, 0x69,
0x00, 0x69, 0x00, 0x69,
0x00, 0x00, 0x00, 0x00,
0x00, 0x69, 0x00, 0x69,
0x00, 0x69, 0x10, 0x19,
0x07, 0xff, 0xff, 0xff, };


static char truly_1080p_video_on_cmd13[] = {
0x0a, 0x00, 0x29, 0xC0,
0xcb, 0x31, 0xfc, 0x3f,
0x8c, 0x00, 0x00, 0x00,
0x00, 0xc0, 0xff, 0xff, };


static char truly_1080p_video_on_cmd14[] = {
0xcc, 0x0b, 0x23, 0x80, };


static char truly_1080p_video_on_cmd15[] = {
0x0b, 0x00, 0x29, 0xc0,
0xd0, 0x11, 0x81, 0xbb,
0x1e, 0x1e, 0x4c, 0x19,
0x19, 0x0c, 0x00, 0xff, };


static char truly_1080p_video_on_cmd16[] = {
0x1a, 0x00, 0x29, 0xC0,
0xd3, 0x1b, 0x33, 0xbb,
0xbb, 0xb3, 0x33, 0x33,
0x33, 0x00, 0x01, 0x00,
0xa0, 0xd8, 0xa0, 0x0d,
0x4e, 0x4e, 0x33, 0x3b,
0x22, 0x72, 0x07, 0x3d,
0xbf, 0x33, 0xff, 0xff, };


static char truly_1080p_video_on_cmd17[] = {
0x08, 0x00, 0x29, 0xc0,
0xd5, 0x06, 0x00, 0x00,
0x01, 0x51, 0x01, 0x32, };


static char truly_1080p_video_on_cmd18[] = {
0x1f, 0x00, 0x29, 0xC0,
0xc7, 0x01, 0x0a, 0x11,
0x18, 0x26, 0x33, 0x3e,
0x50, 0x38, 0x42, 0x52,
0x60, 0x67, 0x6e, 0x77,
0x01, 0x0a, 0x11, 0x18,
0x26, 0x33, 0x3e, 0x50,
0x38, 0x42, 0x52, 0x60,
0x67, 0x6e, 0x77, 0xff, };


static char truly_1080p_video_on_cmd19[] = {
0x14, 0x00, 0x29, 0xC0,
0xc8, 0x01, 0x00, 0x00,
0x00, 0x00, 0xfc, 0x00,
0x00, 0x00, 0x00, 0x00,
0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0xfc, 0x00, };


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


static struct mipi_dsi_cmd truly_1080p_video_on_command[] = {
{ 0x4 , truly_1080p_video_on_cmd0, 0x00},
{ 0x4 , truly_1080p_video_on_cmd1, 0x00},
{ 0x4 , truly_1080p_video_on_cmd2, 0x00},
{ 0x4 , truly_1080p_video_on_cmd3, 0x00},
{ 0x4 , truly_1080p_video_on_cmd4, 0xc8},
{ 0x4 , truly_1080p_video_on_cmd5, 0x00},
{ 0xc , truly_1080p_video_on_cmd6, 0x00},
{ 0x8 , truly_1080p_video_on_cmd7, 0x00},
{ 0x8 , truly_1080p_video_on_cmd8, 0x00},
{ 0x28 , truly_1080p_video_on_cmd9, 0x00},
{ 0xc , truly_1080p_video_on_cmd10, 0x00},
{ 0x1c , truly_1080p_video_on_cmd11, 0x00},
{ 0x30 , truly_1080p_video_on_cmd12, 0x00},
{ 0x10 , truly_1080p_video_on_cmd13, 0x00},
{ 0x4 , truly_1080p_video_on_cmd14, 0x00},
{ 0x10 , truly_1080p_video_on_cmd15, 0x00},
{ 0x20 , truly_1080p_video_on_cmd16, 0x00},
{ 0xc , truly_1080p_video_on_cmd17, 0x00},
{ 0x24 , truly_1080p_video_on_cmd18, 0x00},
{ 0x18 , truly_1080p_video_on_cmd19, 0xc8},
{ 0x4 , truly_1080p_video_on_cmd20, 0xc8},
};
#define TRULY_1080P_VIDEO_ON_COMMAND 21


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


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


static struct mipi_dsi_cmd truly_1080p_video_off_command[] = {
{ 0x4 , truly_1080p_video_off_cmd0, 0x0},
{ 0x4 , truly_1080p_video_off_cmd1, 0x0}
};
#define TRULY_1080P_VIDEO_OFF_COMMAND 2


static struct command_state truly_1080p_video_state = {
  0, 1
};

/*---------------------------------------------------------------------------*/
/* Command mode panel information                                            */
/*---------------------------------------------------------------------------*/

static struct commandpanel_info truly_1080p_video_command_panel = {
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

/*---------------------------------------------------------------------------*/
/* Video mode panel information                                              */
/*---------------------------------------------------------------------------*/

static struct videopanel_info truly_1080p_video_video_panel = {
  0, 0, 0, 0, 1, 1, 1, 0, 0x9
};

/*---------------------------------------------------------------------------*/
/* Lane Configuration                                                        */
/*---------------------------------------------------------------------------*/

static struct lane_configuration truly_1080p_video_lane_config = {
  4, 0, 1, 1, 1, 1, 0
};


/*---------------------------------------------------------------------------*/
/* Panel Timing                                                              */
/*---------------------------------------------------------------------------*/
const uint32_t truly_1080p_video_timings[] = {
  0xE6, 0x38, 0x26, 0x00, 0x68, 0x6e, 0x2A, 0x3c, 0x44, 0x03, 0x04, 0x00
};

static struct panel_timing truly_1080p_video_timing_info = {
  0, 4, 0x02, 0x2d
};

static struct panel_reset_sequence truly_1080p_video_panel_reset_seq = {
{ 1, 0, 1, }, { 200, 200, 200, }, 2
};

/*---------------------------------------------------------------------------*/
/* Backlight Settings                                                        */
/*---------------------------------------------------------------------------*/

static struct backlight truly_1080p_video_backlight = {
  1, 1, 4095, 100, 1, "PMIC_8941"
};

#define TRULY_1080P_VIDEO_SIGNATURE 0xFFFF

#endif /*_TRULY_1080P_VIDEO_H_*/
