
/*
 * arch/arm/cpu/armv8/gxl/hdmitx20/hdmitx_tvenc.c
 *
 * Copyright (C) 2015 Amlogic, Inc. 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 as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * 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.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/

#include "mach_reg.h"
#include "hdmitx_tvenc.h"

#define MREG_END_MARKER 0xFFFF

static const struct reg_t tvregs_720p[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_VENC_DVI_SETTING, 0x2029},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0019},
	{P_ENCP_VIDEO_YFP1_HTIME, 648},
	{P_ENCP_VIDEO_YFP2_HTIME, 3207},
	{P_ENCP_VIDEO_MAX_PXCNT, 3299},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 80},
	{P_ENCP_VIDEO_HSPULS_END, 240},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 80},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 688},
	{P_ENCP_VIDEO_VSPULS_END, 3248},
	{P_ENCP_VIDEO_VSPULS_BLINE, 4},
	{P_ENCP_VIDEO_VSPULS_ELINE, 8},
	{P_ENCP_VIDEO_HAVON_BEGIN, 648},
	{P_ENCP_VIDEO_HAVON_END, 3207},
	{P_ENCP_VIDEO_VAVON_BLINE, 29},
	{P_ENCP_VIDEO_VAVON_ELINE, 748},
	{P_ENCP_VIDEO_HSO_BEGIN, 256},
	{P_ENCP_VIDEO_HSO_END, 168},
	{P_ENCP_VIDEO_VSO_BEGIN, 168},
	{P_ENCP_VIDEO_VSO_END, 256},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_VSO_ELINE, 5},
	{P_ENCP_VIDEO_MAX_LNCNT, 749},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_720p_50hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_VENC_DVI_SETTING, 0x202d},
	{P_ENCP_VIDEO_MAX_PXCNT, 3959},
	{P_ENCP_VIDEO_MAX_LNCNT, 749},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 80},
	{P_ENCP_VIDEO_HSPULS_END, 240},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 80},
	{P_ENCP_VIDEO_HAVON_BEGIN, 648},
	{P_ENCP_VIDEO_HAVON_END, 3207},
	{P_ENCP_VIDEO_HSO_BEGIN, 128},
	{P_ENCP_VIDEO_HSO_END, 208},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 688},
	{P_ENCP_VIDEO_VSPULS_END, 3248},
	{P_ENCP_VIDEO_VSPULS_BLINE, 4},
	{P_ENCP_VIDEO_VSPULS_ELINE, 8},
	{P_ENCP_VIDEO_VAVON_BLINE, 29},
	{P_ENCP_VIDEO_VAVON_ELINE, 748},
	{P_ENCP_VIDEO_VSO_BEGIN, 128},
	{P_ENCP_VIDEO_VSO_END, 128},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_VSO_ELINE, 5},
	{P_ENCP_VIDEO_YFP1_HTIME, 648},
	{P_ENCP_VIDEO_YFP2_HTIME, 3207},
	{P_VENC_VIDEO_PROG_MODE, 0x100},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0019},
	{P_ENCP_VIDEO_SYNC_MODE, 0x407},
	{P_ENCP_VIDEO_YC_DLY, 0},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_720p_100hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_VENC_DVI_SETTING, 0x202d},
	{P_ENCP_VIDEO_MAX_PXCNT, 3959},
	{P_ENCP_VIDEO_MAX_LNCNT, 749},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 80},
	{P_ENCP_VIDEO_HSPULS_END, 240},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 80},
	{P_ENCP_VIDEO_HAVON_BEGIN, 648},
	{P_ENCP_VIDEO_HAVON_END, 3207},
	{P_ENCP_VIDEO_HSO_BEGIN, 128},
	{P_ENCP_VIDEO_HSO_END, 208},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 688},
	{P_ENCP_VIDEO_VSPULS_END, 3248},
	{P_ENCP_VIDEO_VSPULS_BLINE, 4},
	{P_ENCP_VIDEO_VSPULS_ELINE, 8},
	{P_ENCP_VIDEO_VAVON_BLINE, 29},
	{P_ENCP_VIDEO_VAVON_ELINE, 748},
	{P_ENCP_VIDEO_VSO_BEGIN, 128},
	{P_ENCP_VIDEO_VSO_END, 128},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_VSO_ELINE, 5},
	{P_ENCP_VIDEO_YFP1_HTIME, 648},
	{P_ENCP_VIDEO_YFP2_HTIME, 3207},
	{P_VENC_VIDEO_PROG_MODE, 0x100},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0019},
	{P_ENCP_VIDEO_SYNC_MODE, 0x407},
	{P_ENCP_VIDEO_YC_DLY, 0},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_720p_120hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_VENC_DVI_SETTING, 0x2029},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0019},
	{P_ENCP_VIDEO_YFP1_HTIME, 648},
	{P_ENCP_VIDEO_YFP2_HTIME, 3207},
	{P_ENCP_VIDEO_MAX_PXCNT, 3299},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 80},
	{P_ENCP_VIDEO_HSPULS_END, 240},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 80},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 688},
	{P_ENCP_VIDEO_VSPULS_END, 3248},
	{P_ENCP_VIDEO_VSPULS_BLINE, 4},
	{P_ENCP_VIDEO_VSPULS_ELINE, 8},
	{P_ENCP_VIDEO_HAVON_BEGIN, 648},
	{P_ENCP_VIDEO_HAVON_END, 3207},
	{P_ENCP_VIDEO_VAVON_BLINE, 29},
	{P_ENCP_VIDEO_VAVON_ELINE, 748},
	{P_ENCP_VIDEO_HSO_BEGIN, 256},
	{P_ENCP_VIDEO_HSO_END, 168},
	{P_ENCP_VIDEO_VSO_BEGIN, 168},
	{P_ENCP_VIDEO_VSO_END, 256},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_VSO_ELINE, 5},
	{P_ENCP_VIDEO_MAX_LNCNT, 749},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_480i[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCI_CFILT_CTRL, 0x12},
	{P_ENCI_CFILT_CTRL2, 0x12},
	{P_VENC_DVI_SETTING, 0},
	{P_ENCI_VIDEO_MODE, 0},
	{P_ENCI_VIDEO_MODE_ADV, 0},
	{P_ENCI_SYNC_HSO_BEGIN, 5},
	{P_ENCI_SYNC_HSO_END, 129},
	{P_ENCI_SYNC_VSO_EVNLN, 0x0003},
	{P_ENCI_SYNC_VSO_ODDLN, 0x0104},
	{P_ENCI_MACV_MAX_AMP, 0x810b},
	{P_VENC_VIDEO_PROG_MODE, 0xf0},
	{P_ENCI_VIDEO_MODE, 0x08},
	{P_ENCI_VIDEO_MODE_ADV, 0x26},
	{P_ENCI_VIDEO_SCH, 0x20},
	{P_ENCI_SYNC_MODE, 0x07},
	{P_ENCI_DBG_PX_RST, 0},
	{P_ENCI_VFIFO2VD_CTL, 0x4e01},
	{P_ENCI_VFIFO2VD_PIXEL_START, 0xf3,},
	{P_ENCI_VFIFO2VD_PIXEL_END, 0x0693,},
	{P_ENCI_VFIFO2VD_LINE_TOP_START, 0x12,},
	{P_ENCI_VFIFO2VD_LINE_TOP_END, 0x102,},
	{P_ENCI_VFIFO2VD_LINE_BOT_START, 0x13,},
	{P_ENCI_VFIFO2VD_LINE_BOT_END, 0x103,},
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 1},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_480p[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_FILT_CTRL, 0x2052},
	{P_VENC_DVI_SETTING, 0x21},
	{P_ENCP_VIDEO_MODE, 0x4000},
	{P_ENCP_VIDEO_MODE_ADV, 9},
	{P_ENCP_VIDEO_YFP1_HTIME, 244},
	{P_ENCP_VIDEO_YFP2_HTIME, 1630},
	{P_ENCP_VIDEO_MAX_PXCNT, 1715},
	{P_ENCP_VIDEO_MAX_LNCNT, 524},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 0x22},
	{P_ENCP_VIDEO_HSPULS_END, 0xa0},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 88},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 0},
	{P_ENCP_VIDEO_VSPULS_END, 1589},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 5},
	{P_ENCP_VIDEO_HAVON_BEGIN, 249},
	{P_ENCP_VIDEO_HAVON_END, 1689},
	{P_ENCP_VIDEO_VAVON_BLINE, 42},
	{P_ENCP_VIDEO_VAVON_ELINE, 521},
	{P_ENCP_VIDEO_SYNC_MODE, 0x07},
	{P_VENC_VIDEO_PROG_MODE, 0x0},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x3},
	{P_ENCP_VIDEO_HSO_END, 0x5},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x3},
	{P_ENCP_VIDEO_VSO_END, 0x5},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_SY_VAL, 8},
	{P_ENCP_VIDEO_SY2_VAL, 0x1d8},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_576i[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_VENC_DVI_SETTING, 0},
	{P_ENCI_VIDEO_MODE, 0},
	{P_ENCI_VIDEO_MODE_ADV, 0},
	{P_ENCI_SYNC_HSO_BEGIN, 3},
	{P_ENCI_SYNC_HSO_END, 129},
	{P_ENCI_SYNC_VSO_EVNLN, 0x0003},
	{P_ENCI_SYNC_VSO_ODDLN, 0x0104},
	{P_ENCI_MACV_MAX_AMP, 0x8107},
	{P_VENC_VIDEO_PROG_MODE, 0xff},
	{P_ENCI_VIDEO_MODE, 0x13},
	{P_ENCI_VIDEO_MODE_ADV, 0x26},
	{P_ENCI_VIDEO_SCH, 0x28},
	{P_ENCI_SYNC_MODE, 0x07},
	{P_ENCI_YC_DELAY, 0x333},
	{P_ENCI_VFIFO2VD_PIXEL_START, 0x010b},
	{P_ENCI_VFIFO2VD_PIXEL_END, 0x06ab},
	{P_ENCI_VFIFO2VD_LINE_TOP_START, 0x0016},
	{P_ENCI_VFIFO2VD_LINE_TOP_END, 0x0136},
	{P_ENCI_VFIFO2VD_LINE_BOT_START, 0x0017},
	{P_ENCI_VFIFO2VD_LINE_BOT_END, 0x0137},
	{P_ENCI_DBG_PX_RST, 0},
	{P_ENCI_VFIFO2VD_CTL, 0x4e01},
	{P_ENCI_VFIFO2VD_PIXEL_START, 0x010b},
	{P_ENCI_VFIFO2VD_PIXEL_END, 0x06ab},
	{P_ENCI_VFIFO2VD_LINE_TOP_START, 0x0016},
	{P_ENCI_VFIFO2VD_LINE_TOP_END, 0x0136},
	{P_ENCI_VFIFO2VD_LINE_BOT_START, 0x0017},
	{P_ENCI_VFIFO2VD_LINE_BOT_END, 0x0137},
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 1},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_576p[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_FILT_CTRL, 0x52},
	{P_VENC_DVI_SETTING, 0x21},
	{P_ENCP_VIDEO_MODE, 0x4000},
	{P_ENCP_VIDEO_MODE_ADV, 9},
	{P_ENCP_VIDEO_YFP1_HTIME, 235},
	{P_ENCP_VIDEO_YFP2_HTIME, 1674},
	{P_ENCP_VIDEO_MAX_PXCNT, 1727},
	{P_ENCP_VIDEO_MAX_LNCNT, 624},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 0},
	{P_ENCP_VIDEO_HSPULS_END, 0x80},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 88},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 0},
	{P_ENCP_VIDEO_VSPULS_END, 1599},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_HAVON_BEGIN, 235},
	{P_ENCP_VIDEO_HAVON_END, 1674},
	{P_ENCP_VIDEO_VAVON_BLINE, 44},
	{P_ENCP_VIDEO_VAVON_ELINE, 619},
	{P_ENCP_VIDEO_SYNC_MODE, 0x07},
	{P_VENC_VIDEO_PROG_MODE, 0x0},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x80},
	{P_ENCP_VIDEO_HSO_END, 0x0},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x0},
	{P_ENCP_VIDEO_VSO_END, 0x5},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_SY_VAL, 8},
	{P_ENCP_VIDEO_SY2_VAL, 0x1d8},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_1080i[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_VENC_DVI_SETTING, 0x2029},
	{P_ENCP_VIDEO_MAX_PXCNT, 4399},
	{P_ENCP_VIDEO_MAX_LNCNT, 1124},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 88},
	{P_ENCP_VIDEO_HSPULS_END, 264},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 88},
	{P_ENCP_VIDEO_HAVON_BEGIN, 516},
	{P_ENCP_VIDEO_HAVON_END, 4355},
	{P_ENCP_VIDEO_HSO_BEGIN, 264},
	{P_ENCP_VIDEO_HSO_END, 176},
	{P_ENCP_VIDEO_EQPULS_BEGIN, 2288},
	{P_ENCP_VIDEO_EQPULS_END, 2464},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 440},
	{P_ENCP_VIDEO_VSPULS_END, 2200},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_EQPULS_BLINE, 0},
	{P_ENCP_VIDEO_EQPULS_ELINE, 4},
	{P_ENCP_VIDEO_VAVON_BLINE, 20},
	{P_ENCP_VIDEO_VAVON_ELINE, 559},
	{P_ENCP_VIDEO_VSO_BEGIN, 88},
	{P_ENCP_VIDEO_VSO_END, 88},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_VSO_ELINE, 5},
	{P_ENCP_VIDEO_YFP1_HTIME, 516},
	{P_ENCP_VIDEO_YFP2_HTIME, 4355},
	{P_VENC_VIDEO_PROG_MODE, 0x100},
	{P_ENCP_VIDEO_OFLD_VOAV_OFST, 0x11},
	{P_ENCP_VIDEO_MODE, 0x5ffc},
	{P_ENCP_VIDEO_MODE_ADV, 0x0019},
	{P_ENCP_VIDEO_SYNC_MODE, 0x207},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_1080i_50hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_VENC_DVI_SETTING, 0x202d},
	{P_ENCP_VIDEO_MAX_PXCNT, 5279},
	{P_ENCP_VIDEO_MAX_LNCNT, 1124},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 88},
	{P_ENCP_VIDEO_HSPULS_END, 264},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 88},
	{P_ENCP_VIDEO_HAVON_BEGIN, 526},
	{P_ENCP_VIDEO_HAVON_END, 4365},
	{P_ENCP_VIDEO_HSO_BEGIN, 142},
	{P_ENCP_VIDEO_HSO_END, 230},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 440},
	{P_ENCP_VIDEO_VSPULS_END, 2200},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_VAVON_BLINE, 20},
	{P_ENCP_VIDEO_VAVON_ELINE, 559},
	{P_ENCP_VIDEO_VSO_BEGIN, 142},
	{P_ENCP_VIDEO_VSO_END, 142},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_VSO_ELINE, 5},
	{P_ENCP_VIDEO_YFP1_HTIME, 526},
	{P_ENCP_VIDEO_YFP2_HTIME, 4365},
	{P_VENC_VIDEO_PROG_MODE, 0x100},
	{P_ENCP_VIDEO_OFLD_VOAV_OFST, 0x11},
	{P_ENCP_VIDEO_MODE, 0x5ffc},
	{P_ENCP_VIDEO_MODE_ADV, 0x0019},
	{P_ENCP_VIDEO_SYNC_MODE, 0x7},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_1080p[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_FILT_CTRL, 0x1052},
	{P_VENC_DVI_SETTING, 0x0001},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0018},
	{P_ENCP_VIDEO_YFP1_HTIME, 140},
	{P_ENCP_VIDEO_YFP2_HTIME, 2060},
	{P_ENCP_VIDEO_MAX_PXCNT, 2199},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 2156},
	{P_ENCP_VIDEO_HSPULS_END, 44},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 44},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 140},
	{P_ENCP_VIDEO_VSPULS_END, 2059},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_HAVON_BEGIN, 148},
	{P_ENCP_VIDEO_HAVON_END, 2067},
	{P_ENCP_VIDEO_VAVON_BLINE, 42},
	{P_ENCP_VIDEO_VAVON_ELINE, 1121},
	{P_ENCP_VIDEO_HSO_BEGIN, 44},
	{P_ENCP_VIDEO_HSO_END, 2156},
	{P_ENCP_VIDEO_VSO_BEGIN, 2100},
	{P_ENCP_VIDEO_VSO_END, 2164},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_VSO_ELINE, 5},
	{P_ENCP_VIDEO_MAX_LNCNT, 1124},
	{P_VENC_VIDEO_PROG_MODE, 0x100},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_1080p_50hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_VENC_DVI_SETTING, 0x000d},
	{P_ENCP_VIDEO_MAX_PXCNT, 2639},
	{P_ENCP_VIDEO_MAX_LNCNT, 1124},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 44},
	{P_ENCP_VIDEO_HSPULS_END, 132},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 44},
	{P_ENCP_VIDEO_HAVON_BEGIN, 271},
	{P_ENCP_VIDEO_HAVON_END, 2190},
	{P_ENCP_VIDEO_HSO_BEGIN, 79},
	{P_ENCP_VIDEO_HSO_END, 123},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 220},
	{P_ENCP_VIDEO_VSPULS_END, 2140},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_EQPULS_BLINE, 0},
	{P_ENCP_VIDEO_EQPULS_ELINE, 4},
	{P_ENCP_VIDEO_VAVON_BLINE, 41},
	{P_ENCP_VIDEO_VAVON_ELINE, 1120},
	{P_ENCP_VIDEO_VSO_BEGIN, 79},
	{P_ENCP_VIDEO_VSO_END, 79},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_VSO_ELINE, 5},
	{P_ENCP_VIDEO_YFP1_HTIME, 271},
	{P_ENCP_VIDEO_YFP2_HTIME, 2190},
	{P_VENC_VIDEO_PROG_MODE, 0x100},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0018},
	{P_ENCP_VIDEO_SYNC_MODE, 0x7},
	{P_ENCP_VIDEO_YC_DLY, 0},
	{P_ENCP_VIDEO_RGB_CTRL, 2},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_1080p_24hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_FILT_CTRL, 0x1052},
	{P_VENC_DVI_SETTING, 0x000d},
	{P_ENCP_VIDEO_MAX_PXCNT, 2749},
	{P_ENCP_VIDEO_MAX_LNCNT, 1124},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 44},
	{P_ENCP_VIDEO_HSPULS_END, 132},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 44},
	{P_ENCP_VIDEO_HAVON_BEGIN, 271},
	{P_ENCP_VIDEO_HAVON_END, 2190},
	{P_ENCP_VIDEO_HSO_BEGIN, 79},
	{P_ENCP_VIDEO_HSO_END, 123},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 220},
	{P_ENCP_VIDEO_VSPULS_END, 2140},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_EQPULS_BLINE, 0},
	{P_ENCP_VIDEO_EQPULS_ELINE, 4},
	{P_ENCP_VIDEO_VAVON_BLINE, 41},
	{P_ENCP_VIDEO_VAVON_ELINE, 1120},
	{P_ENCP_VIDEO_VSO_BEGIN, 79},
	{P_ENCP_VIDEO_VSO_END, 79},
	{P_ENCP_VIDEO_VSO_BLINE, 0},
	{P_ENCP_VIDEO_VSO_ELINE, 5},
	{P_ENCP_VIDEO_YFP1_HTIME, 271},
	{P_ENCP_VIDEO_YFP2_HTIME, 2190},
	{P_VENC_VIDEO_PROG_MODE, 0x100},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0018},
	{P_ENCP_VIDEO_SYNC_MODE, 0x7},
	{P_ENCP_VIDEO_YC_DLY, 0},
	{P_ENCP_VIDEO_RGB_CTRL, 2},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_4k2k_30hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0008},
	{P_ENCP_VIDEO_YFP1_HTIME, 140},
	{P_ENCP_VIDEO_YFP2_HTIME, 140+3840},
	{P_ENCP_VIDEO_MAX_PXCNT, 3840+560-1},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 2156+1920},
	{P_ENCP_VIDEO_HSPULS_END, 44},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 44},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 140},
	{P_ENCP_VIDEO_VSPULS_END, 2059+1920},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_HAVON_BEGIN, 148},
	{P_ENCP_VIDEO_HAVON_END, 3987},
	{P_ENCP_VIDEO_VAVON_BLINE, 89},
	{P_ENCP_VIDEO_VAVON_ELINE, 2248},
	{P_ENCP_VIDEO_HSO_BEGIN, 44},
	{P_ENCP_VIDEO_HSO_END, 2156+1920},
	{P_ENCP_VIDEO_VSO_BEGIN, 2100+1920},
	{P_ENCP_VIDEO_VSO_END, 2164+1920},
	{P_ENCP_VIDEO_VSO_BLINE, 51},
	{P_ENCP_VIDEO_VSO_ELINE, 53},
	{P_ENCP_VIDEO_MAX_LNCNT, 2249},
	{P_ENCP_VIDEO_FILT_CTRL, 0x1000},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_4k2k_25hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0008},
	{P_ENCP_VIDEO_YFP1_HTIME, 140},
	{P_ENCP_VIDEO_YFP2_HTIME, 140+3840},
	{P_ENCP_VIDEO_MAX_PXCNT, 3840+1440-1},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 2156+1920},
	{P_ENCP_VIDEO_HSPULS_END, 44},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 44},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 140},
	{P_ENCP_VIDEO_VSPULS_END, 2059+1920},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_HAVON_BEGIN, 148},
	{P_ENCP_VIDEO_HAVON_END, 3987},
	{P_ENCP_VIDEO_VAVON_BLINE, 89},
	{P_ENCP_VIDEO_VAVON_ELINE, 2248},
	{P_ENCP_VIDEO_HSO_BEGIN, 44},
	{P_ENCP_VIDEO_HSO_END, 2156+1920},
	{P_ENCP_VIDEO_VSO_BEGIN, 2100+1920},
	{P_ENCP_VIDEO_VSO_END, 2164+1920},
	{P_ENCP_VIDEO_VSO_BLINE, 51},
	{P_ENCP_VIDEO_VSO_ELINE, 53},
	{P_ENCP_VIDEO_MAX_LNCNT, 2249},
	{P_ENCP_VIDEO_FILT_CTRL, 0x1000},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_4k2k_24hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0008},
	{P_ENCP_VIDEO_YFP1_HTIME, 140},
	{P_ENCP_VIDEO_YFP2_HTIME, 140+3840},
	{P_ENCP_VIDEO_MAX_PXCNT, 3840+1660-1},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 2156+1920},
	{P_ENCP_VIDEO_HSPULS_END, 44},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 44},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 140},
	{P_ENCP_VIDEO_VSPULS_END, 2059+1920},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_HAVON_BEGIN, 148},
	{P_ENCP_VIDEO_HAVON_END, 3987},
	{P_ENCP_VIDEO_VAVON_BLINE, 89},
	{P_ENCP_VIDEO_VAVON_ELINE, 2248},
	{P_ENCP_VIDEO_HSO_BEGIN, 44},
	{P_ENCP_VIDEO_HSO_END, 2156+1920},
	{P_ENCP_VIDEO_VSO_BEGIN, 2100+1920},
	{P_ENCP_VIDEO_VSO_END, 2164+1920},
	{P_ENCP_VIDEO_VSO_BLINE, 51},
	{P_ENCP_VIDEO_VSO_ELINE, 53},
	{P_ENCP_VIDEO_MAX_LNCNT, 2249},
	{P_ENCP_VIDEO_FILT_CTRL, 0x1000},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_4k2k_smpte[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x0008},
	{P_ENCP_VIDEO_YFP1_HTIME, 140},
	{P_ENCP_VIDEO_YFP2_HTIME, 140+3840+256},
	{P_ENCP_VIDEO_MAX_PXCNT, 4096+1404-1},
	{P_ENCP_VIDEO_HSPULS_BEGIN, 2156+1920},
	{P_ENCP_VIDEO_HSPULS_END, 44},
	{P_ENCP_VIDEO_HSPULS_SWITCH, 44},
	{P_ENCP_VIDEO_VSPULS_BEGIN, 140},
	{P_ENCP_VIDEO_VSPULS_END, 2059+1920},
	{P_ENCP_VIDEO_VSPULS_BLINE, 0},
	{P_ENCP_VIDEO_VSPULS_ELINE, 4},
	{P_ENCP_VIDEO_HAVON_BEGIN, 148},
	{P_ENCP_VIDEO_HAVON_END, 3987+256},
	{P_ENCP_VIDEO_VAVON_BLINE, 89},
	{P_ENCP_VIDEO_VAVON_ELINE, 2248},
	{P_ENCP_VIDEO_HSO_BEGIN, 44},
	{P_ENCP_VIDEO_HSO_END, 2156+1920+256},
	{P_ENCP_VIDEO_VSO_BEGIN, 2100+1920+256},
	{P_ENCP_VIDEO_VSO_END, 2164+1920+256},
	{P_ENCP_VIDEO_VSO_BLINE, 51},
	{P_ENCP_VIDEO_VSO_ELINE, 53},
	{P_ENCP_VIDEO_MAX_LNCNT, 2249},
	{P_ENCP_VIDEO_FILT_CTRL, 0x1000},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_4k2k_smpte_25hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x149F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x8C9,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0xD8,},
	{P_ENCP_VIDEO_HAVON_END, 0x10D7,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x52,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x8C1,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x58,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0xA,},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_4k2k_smpte_30hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},
	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x112F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x8C9,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0xD8,},
	{P_ENCP_VIDEO_HAVON_END, 0x10D7,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x52,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x8C1,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x58,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0xA,},
	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_vesa_640x480p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x31F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x20C,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x90,},
	{P_ENCP_VIDEO_HAVON_END, 0x30F,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x23,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x202,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x60,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x2,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_800x600p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x41F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x273,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0xD8,},
	{P_ENCP_VIDEO_HAVON_END, 0x3F7,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x1B,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x272,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x80,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x4,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_800x480p60hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},

	{P_ENCP_VIDEO_MODE, 0x4040},
	{P_ENCP_VIDEO_MODE_ADV, 0x18},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x3DF},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x1F3},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0xA8},
	{P_ENCP_VIDEO_HAVON_END, 0x3C7},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x11},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x1F0},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0},
	{P_ENCP_VIDEO_HSO_END, 0x48},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E},
	{P_ENCP_VIDEO_VSO_END, 0x32},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0},
	{P_ENCP_VIDEO_VSO_ELINE, 0x7},

	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_vesa_852x480p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},
	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x3B3,},/*947//htotal-1*/
	{P_ENCP_VIDEO_MAX_LNCNT, 0x213,},/*531//vtotal-1*/
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x38,},/*56//hblank-hfront*/
	{P_ENCP_VIDEO_HAVON_END, 0x38B,},/*907//htotal-hfront-1*/
	{P_ENCP_VIDEO_VAVON_BLINE, 0x2A,},/*42//vblank-vfront*/
	{P_ENCP_VIDEO_VAVON_ELINE, 0x209,},/*521//vtotal-vfront-1*/
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x10,},/*16/hor sync time*/
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x2,},/*2//ver sync time*/
	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_854x480p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},
	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x3B5,},/*949//htotal-1*/
	{P_ENCP_VIDEO_MAX_LNCNT, 0x212,},/*530//vtotal-1*/
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x38,},/*56//hblank-hfront*/
	{P_ENCP_VIDEO_HAVON_END, 0x38D,},/*909//htotal-hfront-1*/
	{P_ENCP_VIDEO_VAVON_BLINE, 0x29,},/*41//vblank-vfront*/
	{P_ENCP_VIDEO_VAVON_ELINE, 0x208,},/*520//vtotal-vfront-1*/
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x10,},/*16//hor sync time*/
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x2,},/*2//ver sync time*/
	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1024x600p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x53F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x27D,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x128,},
	{P_ENCP_VIDEO_HAVON_END, 0x527,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x23,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x27A,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x88,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1024x768p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x53F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x325,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x128,},
	{P_ENCP_VIDEO_HAVON_END, 0x527,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x23,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x322,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x88,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1152x864p75hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x63F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x383,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x180,},
	{P_ENCP_VIDEO_HAVON_END, 0x5FF,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x23,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x382,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x80,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x3,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

#if 0
static const struct reg_t tvregs_vesa_1280x600p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x59F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x336,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x70,},
	{P_ENCP_VIDEO_HAVON_END, 0x56F,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x14,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x333,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x20,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};
#endif

static const struct reg_t tvregs_vesa_1280x768p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x67F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x31D,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x140,},
	{P_ENCP_VIDEO_HAVON_END, 0x63F,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x1B,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x31A,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x80,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x7,},

	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1280x800p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x59F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x336,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x70,},
	{P_ENCP_VIDEO_HAVON_END, 0x56F,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x14,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x333,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x20,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1280x960p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x707,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x3E7,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x1A8,},
	{P_ENCP_VIDEO_HAVON_END, 0x6A7,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x27,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x3E6,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x70,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x3,},

	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1280x1024p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x697,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x429,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x168,},
	{P_ENCP_VIDEO_HAVON_END, 0x667,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x29,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x428,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x70,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x3,},

	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1360x768p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x6FF,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x31A,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x170,},
	{P_ENCP_VIDEO_HAVON_END, 0x6BF,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x18,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x317,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x70,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1366x768p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x6FF,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x31D,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x164,},
	{P_ENCP_VIDEO_HAVON_END, 0x6B9,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x1B,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x31A,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x8F,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x3,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1400x1050p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x747,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x440,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x178,},
	{P_ENCP_VIDEO_HAVON_END, 0x6EF,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x24,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x43D,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x90,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x4,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1440x900p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x76F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x3A5,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x180,},
	{P_ENCP_VIDEO_HAVON_END, 0x71F,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x1F,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x3A2,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x98,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1440x2560p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x623,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0xA23,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x44,},
	{P_ENCP_VIDEO_HAVON_END, 0x5E3,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x14,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0xA13,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x4,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x4,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1440x2560p70hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x60D,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0xA0F,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x2A,},
	{P_ENCP_VIDEO_HAVON_END, 0x5C9,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0xA,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0xA09,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x10,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1600x900p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x707,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x3E7,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0xB0,},
	{P_ENCP_VIDEO_HAVON_END, 0x6EF,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x63,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x3E6,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x50,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x3,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1600x1200p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x86F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x4E1,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x1F0,},
	{P_ENCP_VIDEO_HAVON_END, 0x82F,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x31,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x4E0,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0xC0,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x3,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1680x1050p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x8BF,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x440,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x1C8,},
	{P_ENCP_VIDEO_HAVON_END, 0x857,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x24,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x43D,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0xB0,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0,},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_1920x1200p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0xA1F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x4DC,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x218,},
	{P_ENCP_VIDEO_HAVON_END, 0x997,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x2A,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x4D9,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0xC8,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};
static const struct reg_t tvregs_vesa_2160x1200p90hz[] = {
	{P_ENCP_VIDEO_EN, 0},
	{P_ENCI_VIDEO_EN, 0},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0x99D,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x4BB,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x70,},
	{P_ENCP_VIDEO_HAVON_END, 0x8DF,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x6,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x4B5,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x20,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x3,},

	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0},
};

static const struct reg_t tvregs_vesa_2560x1600p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0xDAF,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x679,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x2F0,},
	{P_ENCP_VIDEO_HAVON_END, 0xCEF,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x37,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x676,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0x118,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},

	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};

#if 0 /* TODO */
static const struct reg_t tvregs_vesa_2560x1080p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0xA1F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x4DC,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x218,},
	{P_ENCP_VIDEO_HAVON_END, 0x997,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x2A,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x4D9,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0xC8,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},


	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_2560x1440p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0xA1F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x4DC,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x218,},
	{P_ENCP_VIDEO_HAVON_END, 0x997,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x2A,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x4D9,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0xC8,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},


	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};

static const struct reg_t tvregs_vesa_3440x1440p60hz[] = {
	{P_ENCP_VIDEO_EN, 0,},
	{P_ENCI_VIDEO_EN, 0,},

	{P_ENCP_VIDEO_MODE, 0x4040,},
	{P_ENCP_VIDEO_MODE_ADV, 0x18,},
	{P_ENCP_VIDEO_MAX_PXCNT, 0xA1F,},
	{P_ENCP_VIDEO_MAX_LNCNT, 0x4DC,},
	{P_ENCP_VIDEO_HAVON_BEGIN, 0x218,},
	{P_ENCP_VIDEO_HAVON_END, 0x997,},
	{P_ENCP_VIDEO_VAVON_BLINE, 0x2A,},
	{P_ENCP_VIDEO_VAVON_ELINE, 0x4D9,},
	{P_ENCP_VIDEO_HSO_BEGIN, 0x0,},
	{P_ENCP_VIDEO_HSO_END, 0xC8,},
	{P_ENCP_VIDEO_VSO_BEGIN, 0x1E,},
	{P_ENCP_VIDEO_VSO_END, 0x32,},
	{P_ENCP_VIDEO_VSO_BLINE, 0x0,},
	{P_ENCP_VIDEO_VSO_ELINE, 0x6,},


	{P_ENCI_VIDEO_EN, 0},
	{MREG_END_MARKER, 0}
};
#endif

struct vic_tvregs_set {
	enum hdmi_vic vic;
	const struct reg_t *reg_setting;
};

/* Using HDMI vic as index */
static struct vic_tvregs_set tvregsTab[] = {
	{HDMI_720x480i60_16x9, tvregs_480i},
	{HDMI_2880x480i60_16x9, tvregs_480i},
	{HDMI_720x480p60_16x9, tvregs_480p},
	{HDMI_720x480p120_16x9, tvregs_480p},
	{HDMI_2880x240p60_16x9, tvregs_480p},
	{HDMI_720x576i50_16x9, tvregs_576i},
	{HDMI_2880x576i50_16x9, tvregs_576i},
	{HDMI_720x576p50_16x9, tvregs_576p},
	{HDMI_720x576p100_16x9, tvregs_576p},
	{HDMI_2880x576p50_16x9, tvregs_576p},
	{HDMI_1280x720p60_16x9, tvregs_720p},
	{HDMI_1920x1080i60_16x9, tvregs_1080i},
	{HDMI_1920x1080p60_16x9, tvregs_1080p},
	{HDMI_1920x1080p30_16x9, tvregs_1080p},
	{HDMI_1280x720p50_16x9, tvregs_720p_50hz},
	{HDMI_1280x720p100_16x9, tvregs_720p_50hz},
	{HDMI_1280x720p120_16x9, tvregs_720p},
	{HDMI_1920x1080i50_16x9, tvregs_1080i_50hz},
	{HDMI_1920x1080i100_16x9, tvregs_1080i_50hz},
	{HDMI_1920x1080i120_16x9, tvregs_1080i},
	{HDMI_1920x1080p50_16x9, tvregs_1080p_50hz},
	{HDMI_1920x1080p25_16x9, tvregs_1080p_50hz},
	{HDMI_1920x1080p24_16x9, tvregs_1080p_24hz},
	{HDMI_1920x1080p100_16x9, tvregs_1080p_50hz},
	{HDMI_1920x1080p120_16x9, tvregs_1080p},
	{HDMI_3840x2160p30_16x9, tvregs_4k2k_30hz},
	{HDMI_3840x2160p25_16x9, tvregs_4k2k_25hz},
	{HDMI_3840x2160p24_16x9, tvregs_4k2k_24hz},
	{HDMI_4096x2160p24_256x135, tvregs_4k2k_smpte},
	{HDMI_4096x2160p25_256x135, tvregs_4k2k_smpte_25hz},
	{HDMI_4096x2160p30_256x135, tvregs_4k2k_smpte_30hz},
	{HDMI_4096x2160p50_256x135, tvregs_4k2k_smpte_25hz},
	{HDMI_4096x2160p60_256x135, tvregs_4k2k_smpte_30hz},
	{HDMI_4096x2160p50_256x135_Y420, tvregs_4k2k_smpte_25hz},
	{HDMI_4096x2160p60_256x135_Y420, tvregs_4k2k_smpte_30hz},
	{HDMI_3840x2160p60_16x9, tvregs_4k2k_30hz},
	{HDMI_3840x2160p50_16x9, tvregs_4k2k_25hz},
	{HDMI_3840x2160p60_16x9_Y420, tvregs_4k2k_30hz},
	{HDMI_3840x2160p50_16x9_Y420, tvregs_4k2k_25hz},
	{HDMIV_640x480p60hz, tvregs_vesa_640x480p60hz},
	{HDMIV_800x480p60hz, tvregs_vesa_800x480p60hz},
	{HDMIV_800x600p60hz, tvregs_vesa_800x600p60hz},
	{HDMIV_852x480p60hz, tvregs_vesa_852x480p60hz},
	{HDMIV_854x480p60hz, tvregs_vesa_854x480p60hz},
	{HDMIV_1024x600p60hz, tvregs_vesa_1024x600p60hz},
	{HDMIV_1024x768p60hz, tvregs_vesa_1024x768p60hz},
	{HDMIV_1152x864p75hz, tvregs_vesa_1152x864p75hz},
#if 0
	{HDMIV_1280x600p60hz, tvregs_vesa_1280x600p60hz},
#endif
	{HDMIV_1280x768p60hz, tvregs_vesa_1280x768p60hz},
	{HDMIV_1280x800p60hz, tvregs_vesa_1280x800p60hz},
	{HDMIV_1280x960p60hz, tvregs_vesa_1280x960p60hz},
	{HDMIV_1280x1024p60hz, tvregs_vesa_1280x1024p60hz},
	{HDMIV_1360x768p60hz, tvregs_vesa_1360x768p60hz},
	{HDMIV_1366x768p60hz, tvregs_vesa_1366x768p60hz},
	{HDMIV_1400x1050p60hz, tvregs_vesa_1400x1050p60hz},
	{HDMIV_1440x900p60hz, tvregs_vesa_1440x900p60hz},
	{HDMIV_1440x2560p60hz, tvregs_vesa_1440x2560p60hz},
	{HDMIV_1440x2560p70hz, tvregs_vesa_1440x2560p70hz},
	{HDMIV_1600x900p60hz, tvregs_vesa_1600x900p60hz},
	{HDMIV_1600x1200p60hz, tvregs_vesa_1600x1200p60hz},
	{HDMIV_1680x1050p60hz, tvregs_vesa_1680x1050p60hz},
	{HDMIV_1920x1200p60hz, tvregs_vesa_1920x1200p60hz},
	{HDMIV_2160x1200p90hz, tvregs_vesa_2160x1200p90hz},
	{HDMIV_2560x1600p60hz, tvregs_vesa_2560x1600p60hz},
};

static inline void setreg(const struct reg_t *r)
{
	hd_write_reg(r->reg, r->val);
	/* printk("[0x%x] = 0x%x\n", r->reg, r->val); */
}

static const struct reg_t *tvregs_setting_mode(enum hdmi_vic vic)
{
	int i = 0;
	for (i = 0; i < ARRAY_SIZE(tvregsTab); i++) {
		if (vic == tvregsTab[i].vic)
			return tvregsTab[i].reg_setting;
	}
	return NULL;
}

void set_vmode_enc_hw(enum hdmi_vic vic)
{
	const struct reg_t *s = tvregs_setting_mode(vic);

	if (s) {
		pr_info("hdmitx: set enc for VIC: %d\n", vic);
		while (MREG_END_MARKER != s->reg)
			setreg(s++);
	} else
		pr_info("hdmitx: not find VIC: %d\n", vic);
}
