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

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

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

/*---------------------------------------------------------------------------*/
/* Panel resolution                                                          */
/*---------------------------------------------------------------------------*/
static struct panel_resolution hx8399a_1080p_video_panel_res = {
	1080, 1920, 90, 60, 20, 0, 9, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

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

/*---------------------------------------------------------------------------*/
/* Panel on/off command information                                          */
/*---------------------------------------------------------------------------*/
static char hx8399a_1080p_video_on_cmd0[] = {
	0x04, 0x00, 0x29, 0xC0,
	0xB9, 0xFF, 0x83, 0x99,
};

static char hx8399a_1080p_video_on_cmd1[] = {
	0x0D, 0x00, 0x29, 0xC0,
	0xB1, 0x00, 0x74, 0x31,
	0x31, 0x44, 0x09, 0x22,
	0x22, 0x71, 0xF1, 0x63,
	0x6D, 0xFF, 0xFF, 0xFF,
};

static char hx8399a_1080p_video_on_cmd2[] = {
	0x0B, 0x00, 0x29, 0xC0,
	0xB2, 0x00, 0x80, 0x00,
	0x7F, 0x05, 0x07, 0x23,
	0x4D, 0x02, 0x02, 0xFF,
};

static char hx8399a_1080p_video_on_cmd3[] = {
	0x29, 0x00, 0x29, 0xC0,
	0xB4, 0x00, 0xFF, 0x00,
	0x40, 0x00, 0x3E, 0x00,
	0x00, 0x02, 0x00, 0x00,
	0x01, 0x00, 0x10, 0x01,
	0x02, 0x04, 0x31, 0x00,
	0x01, 0x44, 0x00, 0x40,
	0x00, 0x3E, 0x00, 0x00,
	0x02, 0x00, 0x00, 0x01,
	0x00, 0x10, 0x01, 0x02,
	0x04, 0x01, 0x00, 0x01,
	0x44, 0xFF, 0xFF, 0xFF,
};

static char hx8399a_1080p_video_on_cmd4[] = {
	0x02, 0x00, 0x29, 0xC0,
	0xD2, 0x00, 0xFF, 0xFF,
};

static char hx8399a_1080p_video_on_cmd5[] = {
	0x20, 0x00, 0x29, 0xC0,
	0xD3, 0x00, 0x01, 0x00,
	0x00, 0x00, 0x30, 0x00,
	0x32, 0x10, 0x05, 0x00,
	0x05, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x01,
	0x07, 0x07, 0x03, 0x00,
	0x00, 0x00, 0x05, 0x08,
};

static char hx8399a_1080p_video_on_cmd6[] = {
	0x21, 0x00, 0x29, 0xC0,
	0xD5, 0x18, 0x18, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x19, 0x19, 0x18,
	0x18, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x03, 0x02, 0x01,
	0x00, 0x21, 0x20, 0x30,
	0x30, 0x31, 0x31, 0x32,
	0x32, 0xFF, 0xFF, 0xFF,
};

static char hx8399a_1080p_video_on_cmd7[] = {
	0x21, 0x00, 0x29, 0xC0,
	0xD6, 0x18, 0x18, 0x40,
	0x40, 0x40, 0x40, 0x40,
	0x40, 0x18, 0x18, 0x19,
	0x19, 0x40, 0x40, 0x40,
	0x40, 0x40, 0x40, 0x40,
	0x40, 0x00, 0x01, 0x02,
	0x03, 0x20, 0x21, 0x30,
	0x30, 0x31, 0x31, 0x32,
	0x32, 0xFF, 0xFF, 0xFF,
};

static char hx8399a_1080p_video_on_cmd8[] = {
	0x31, 0x00, 0x29, 0xC0,
	0xD8, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00,
	0x00, 0xC0, 0x00, 0x0A,
	0xBF, 0xC0, 0x00, 0x0A,
	0xBF, 0xFF, 0xFF, 0xFF,
};

static char hx8399a_1080p_video_on_cmd9[] = {
	0x03, 0x00, 0x29, 0xC0,
	0xB6, 0x34, 0x34, 0xFF,
};

static char hx8399a_1080p_video_on_cmd10[] = {
	0x02, 0x00, 0x29, 0xC0,
	0xCC, 0x08, 0xFF, 0xFF,
};

static char hx8399a_1080p_video_on_cmd11[] = {
	0x2B, 0x00, 0x29, 0xC0,
	0xE0, 0x01, 0x10, 0x15,
	0x2B, 0x32, 0x3E, 0x22,
	0x3C, 0x07, 0x0C, 0x0F,
	0x12, 0x15, 0x13, 0x14,
	0x10, 0x16, 0x0A, 0x17,
	0x06, 0x12, 0x01, 0x10,
	0x15, 0x2B, 0x32, 0x3E,
	0x22, 0x3C, 0x07, 0x0C,
	0x0F, 0x12, 0x15, 0x13,
	0x14, 0x10, 0x16, 0x0A,
	0x17, 0x06, 0x12, 0xFF,
};

static char hx8399a_1080p_video_on_cmd12[] = {
	0x04, 0x00, 0x29, 0xC0,
	0xBF, 0xCF, 0x00, 0x46,
};

static char hx8399a_1080p_video_on_cmd13[] = {
	0x02, 0x00, 0x29, 0xC0,
	0x36, 0xc0, 0xFF, 0xFF,
};

static char hx8399a_1080p_video_on_cmd14[] = {
	0x02, 0x00, 0x29, 0xC0,
	0x11, 0x00, 0xFF, 0xFF,
};

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

static struct mipi_dsi_cmd hx8399a_1080p_video_on_command[] = {
	{0x8, hx8399a_1080p_video_on_cmd0, 0x00},
	{0x14, hx8399a_1080p_video_on_cmd1, 0x00},
	{0x10, hx8399a_1080p_video_on_cmd2, 0x00},
	{0x30, hx8399a_1080p_video_on_cmd3, 0x00},
	{0x8, hx8399a_1080p_video_on_cmd4, 0x00},
	{0x24, hx8399a_1080p_video_on_cmd5, 0x00},
	{0x28, hx8399a_1080p_video_on_cmd6, 0x00},
	{0x28, hx8399a_1080p_video_on_cmd7, 0x00},
	{0x38, hx8399a_1080p_video_on_cmd8, 0x00},
	{0x8, hx8399a_1080p_video_on_cmd9, 0x00},
	{0x8, hx8399a_1080p_video_on_cmd10, 0x00},
	{0x30, hx8399a_1080p_video_on_cmd11, 0x00},
	{0x8, hx8399a_1080p_video_on_cmd12, 0x00},
	{0x8, hx8399a_1080p_video_on_cmd13, 0x00},
	{0x8, hx8399a_1080p_video_on_cmd14, 0x78},
	{0x8, hx8399a_1080p_video_on_cmd15, 0x0A}
};

#define HX8399A_1080P_VIDEO_ON_COMMAND 16


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

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

static struct mipi_dsi_cmd hx8399a_1080p_video_off_command[] = {
	{0x4, hx8399a_1080p_videooff_cmd0, 0x32},
	{0x4, hx8399a_1080p_videooff_cmd1, 0x78}
};

#define HX8399A_1080P_VIDEO_OFF_COMMAND 2


static struct command_state hx8399a_1080p_video_state = {
	0, 1
};

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

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

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

/*---------------------------------------------------------------------------*/
/* Panel timing                                                              */
/*---------------------------------------------------------------------------*/
static const uint32_t hx8399a_1080p_video_timings[] = {
	0xf9, 0x3d, 0x34, 0x00, 0x58, 0x4d, 0x36, 0x3f, 0x53, 0x03, 0x04, 0x00
};

static struct panel_timing hx8399a_1080p_video_timing_info = {
	0, 4, 0x1e, 0x38
};

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

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

#define HX8399A_1080P_VIDEO_SIGNATURE 0xA0000

#endif /*_PANEL_HX8399A_1080P_VIDEO_H_*/
