| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| /* |
| * Copyright (c) 2019 Amlogic, Inc. All rights reserved. |
| */ |
| |
| #include <common.h> |
| #include <amlogic/media/vout/hdmitx/hdmitx.h> |
| #include "hdmitx_drv.h" |
| |
| #define MREG_END_MARKER 0xFFFF |
| |
| static const struct reg_s 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, 0x0018}, |
| {P_ENCP_VIDEO_YFP1_HTIME, 648}, |
| {P_ENCP_VIDEO_YFP2_HTIME, 3207}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 1649}, |
| {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, 260}, |
| {P_ENCP_VIDEO_HAVON_END, 1539}, |
| {P_ENCP_VIDEO_VAVON_BLINE, 29}, |
| {P_ENCP_VIDEO_VAVON_ELINE, 749}, |
| {P_ENCP_VIDEO_HSO_BEGIN, 0}, |
| {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_s tvregs_720p_50hz[] = { |
| {P_ENCP_VIDEO_EN, 0}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_VENC_DVI_SETTING, 0x202d}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 1979}, |
| {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, 260}, |
| {P_ENCP_VIDEO_HAVON_END, 1539}, |
| {P_ENCP_VIDEO_HSO_BEGIN, 0}, |
| {P_ENCP_VIDEO_HSO_END, 40}, |
| {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, 25}, |
| {P_ENCP_VIDEO_VAVON_ELINE, 744}, |
| {P_ENCP_VIDEO_VSO_BEGIN, 30}, |
| {P_ENCP_VIDEO_VSO_END, 50}, |
| {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, 0x0018}, |
| {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_s 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_ENCI_VIDEO_EN, 1}, |
| {MREG_END_MARKER, 0}, |
| }; |
| |
| static const struct reg_s 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, 8}, |
| {P_ENCP_VIDEO_YFP1_HTIME, 244}, |
| {P_ENCP_VIDEO_YFP2_HTIME, 1630}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 857}, |
| {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, 122}, |
| {P_ENCP_VIDEO_HAVON_END, 841}, |
| {P_ENCP_VIDEO_VAVON_BLINE, 36}, |
| {P_ENCP_VIDEO_VAVON_ELINE, 515}, |
| {P_ENCP_VIDEO_SYNC_MODE, 0x07}, |
| {P_VENC_VIDEO_PROG_MODE, 0x0}, |
| {P_ENCP_VIDEO_HSO_BEGIN, 0}, |
| {P_ENCP_VIDEO_HSO_END, 62}, |
| {P_ENCP_VIDEO_VSO_BEGIN, 30}, |
| {P_ENCP_VIDEO_VSO_END, 50}, |
| {P_ENCP_VIDEO_VSO_BLINE, 0}, |
| {P_ENCP_VIDEO_VSO_ELINE, 6}, |
| {P_ENCP_VIDEO_SY_VAL, 8}, |
| {P_ENCP_VIDEO_SY2_VAL, 0x1d8}, |
| {P_ENCP_DACSEL_0, 0x3102}, |
| {P_ENCP_DACSEL_1, 0x0054}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {MREG_END_MARKER, 0}, |
| }; |
| |
| static const struct reg_s 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_ENCI_VIDEO_EN, 1}, |
| {MREG_END_MARKER, 0}, |
| }; |
| |
| static const struct reg_s 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, 8}, |
| {P_ENCP_VIDEO_YFP1_HTIME, 235}, |
| {P_ENCP_VIDEO_YFP2_HTIME, 1674}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 863}, |
| {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, 132}, |
| {P_ENCP_VIDEO_HAVON_END, 851}, |
| {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, 0}, |
| {P_ENCP_VIDEO_HSO_END, 64}, |
| {P_ENCP_VIDEO_VSO_BEGIN, 30}, |
| {P_ENCP_VIDEO_VSO_END, 50}, |
| {P_ENCP_VIDEO_VSO_BLINE, 0}, |
| {P_ENCP_VIDEO_VSO_BLINE, 5}, |
| {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_s tvregs_1080i[] = { |
| {P_ENCP_VIDEO_EN, 0}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_VENC_DVI_SETTING, 0x2029}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 2199}, |
| {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, 192}, |
| {P_ENCP_VIDEO_HAVON_END, 2111}, |
| {P_ENCP_VIDEO_HSO_BEGIN, 0}, |
| {P_ENCP_VIDEO_HSO_END, 44}, |
| {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, 30}, |
| {P_ENCP_VIDEO_VSO_END, 50}, |
| {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, 0x0018}, |
| {P_ENCP_VIDEO_SYNC_MODE, 0x207}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {MREG_END_MARKER, 0}, |
| }; |
| |
| static const struct reg_s tvregs_1080i_50hz[] = { |
| {P_ENCP_VIDEO_EN, 0}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_VENC_DVI_SETTING, 0x202d}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 2639}, |
| {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, 192}, |
| {P_ENCP_VIDEO_HAVON_END, 2111}, |
| {P_ENCP_VIDEO_HSO_BEGIN, 0}, |
| {P_ENCP_VIDEO_HSO_END, 44}, |
| {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, 30}, |
| {P_ENCP_VIDEO_VSO_END, 50}, |
| {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, 0x0018}, |
| {P_ENCP_VIDEO_SYNC_MODE, 0x7}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {MREG_END_MARKER, 0}, |
| }; |
| |
| static const struct reg_s 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_s 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_s 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_s 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_s 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_s 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_s 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_s 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_s 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_s tvregs_4k2k_smpte_50hz[] = { |
| {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_s tvregs_4k2k_smpte_60hz[] = { |
| {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_s tvregs_2560x1080p50hz[] = { |
| {P_ENCP_VIDEO_EN, 0}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_VENC_DVI_SETTING, 0x000d}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 3299}, |
| {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, 192}, |
| {P_ENCP_VIDEO_HAVON_END, 2751}, |
| {P_ENCP_VIDEO_HSO_BEGIN, 0}, |
| {P_ENCP_VIDEO_HSO_END, 44}, |
| {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_s tvregs_2560x1080p60hz[] = { |
| {P_ENCP_VIDEO_EN, 0}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_VENC_DVI_SETTING, 0x000d}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 2999}, |
| {P_ENCP_VIDEO_MAX_LNCNT, 1099}, |
| {P_ENCP_VIDEO_HSPULS_BEGIN, 44}, |
| {P_ENCP_VIDEO_HSPULS_END, 132}, |
| {P_ENCP_VIDEO_HSPULS_SWITCH, 44}, |
| {P_ENCP_VIDEO_HAVON_BEGIN, 192}, |
| {P_ENCP_VIDEO_HAVON_END, 2751}, |
| {P_ENCP_VIDEO_HSO_BEGIN, 0}, |
| {P_ENCP_VIDEO_HSO_END, 44}, |
| {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, 16}, |
| {P_ENCP_VIDEO_VAVON_ELINE, 1095}, |
| {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_s tvregs_vesa_640x480p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| {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_s tvregs_vesa_800x600p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| {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_s tvregs_vesa_800x480p60hz[] = { |
| {P_ENCP_VIDEO_EN, 0}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_VENC_VDAC_SETTING, 0xff}, |
| {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_s tvregs_vesa_852x480p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| {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_s tvregs_vesa_854x480p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| {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_s tvregs_vesa_1024x600p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| {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_s tvregs_vesa_1024x768p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| {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_s tvregs_vesa_1152x864p75hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| {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} |
| }; |
| |
| static const struct reg_s tvregs_vesa_1280x600p60hz[] = { |
| #if 0 |
| {P_ENCP_VIDEO_EN, 0,}, |
| {P_ENCI_VIDEO_EN, 0,}, |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1280x768p60hz[] = { |
| {P_ENCP_VIDEO_EN, 0,}, |
| {P_ENCI_VIDEO_EN, 0,}, |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1280x800p60hz[] = { |
| {P_ENCP_VIDEO_EN, 0,}, |
| {P_ENCI_VIDEO_EN, 0,}, |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1280x960p60hz[] = { |
| {P_ENCP_VIDEO_EN, 0,}, |
| {P_ENCI_VIDEO_EN, 0,}, |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1280x1024p60hz[] = { |
| {P_ENCP_VIDEO_EN, 0,}, |
| {P_ENCI_VIDEO_EN, 0,}, |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1360x768p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1366x768p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1400x1050p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1440x900p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1440x2560p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1600x900p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1600x1200p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s tvregs_vesa_1680x1050p60hz[] = { |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| {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_s tvregs_vesa_1920x1200p60hz[] = { |
| {P_ENCP_VIDEO_EN, 0,}, |
| {P_ENCI_VIDEO_EN, 0,}, |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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_s 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_s tvregs_vesa_2560x1600p60hz[] = { |
| {P_ENCP_VIDEO_EN, 0,}, |
| {P_ENCI_VIDEO_EN, 0,}, |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {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} |
| }; |
| |
| static const struct reg_s tvregs_vesa_3440x1440p60hz[] = { |
| {P_ENCP_VIDEO_EN, 0,}, |
| {P_ENCI_VIDEO_EN, 0,}, |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {P_ENCP_VIDEO_MODE, 0x4040,}, |
| {P_ENCP_VIDEO_MODE_ADV, 0x18,}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 0xE0F,}, |
| {P_ENCP_VIDEO_MAX_LNCNT, 0x5C8,}, |
| {P_ENCP_VIDEO_HAVON_BEGIN, 0x70,}, |
| {P_ENCP_VIDEO_HAVON_END, 0xDDF,}, |
| {P_ENCP_VIDEO_VAVON_BLINE, 0x26,}, |
| {P_ENCP_VIDEO_VAVON_ELINE, 0x5C5,}, |
| {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, 0xA,}, |
| |
| {P_ENCI_VIDEO_EN, 0}, |
| {MREG_END_MARKER, 0} |
| }; |
| |
| static const struct reg_s tvregs_vesa_2400x1200p90hz[] = { |
| {P_ENCP_VIDEO_EN, 0,}, |
| {P_ENCI_VIDEO_EN, 0,}, |
| {P_VENC_VDAC_SETTING, 0xff,}, |
| |
| {P_ENCP_VIDEO_MODE, 0x4040,}, |
| {P_ENCP_VIDEO_MODE_ADV, 0x18,}, |
| {P_ENCP_VIDEO_MAX_PXCNT, 0x9B1,}, |
| {P_ENCP_VIDEO_MAX_LNCNT, 0x4E3,}, |
| {P_ENCP_VIDEO_HAVON_BEGIN, 0x3E,}, |
| {P_ENCP_VIDEO_HAVON_END, 0x99D,}, |
| {P_ENCP_VIDEO_VAVON_BLINE, 0x23,}, |
| {P_ENCP_VIDEO_VAVON_ELINE, 0x4D2,}, |
| {P_ENCP_VIDEO_HSO_BEGIN, 0x0,}, |
| {P_ENCP_VIDEO_HSO_END, 0x1E,}, |
| {P_ENCP_VIDEO_VSO_BEGIN, 0x1E,}, |
| {P_ENCP_VIDEO_VSO_END, 0x32,}, |
| {P_ENCP_VIDEO_VSO_BLINE, 0x0,}, |
| {P_ENCP_VIDEO_VSO_ELINE, 0x5,}, |
| |
| {P_ENCI_VIDEO_EN, 0}, |
| {MREG_END_MARKER, 0} |
| }; |
| |
| struct vic_tvregs_set { |
| enum hdmi_vic vic; |
| const struct reg_s *reg_setting; |
| }; |
| |
| /* Using HDMI VIC as index */ |
| static struct vic_tvregs_set tvregsTab[] = { |
| {HDMI_720x480i60_16x9, tvregs_480i}, |
| {HDMI_720x480i60_4x3, tvregs_480i}, |
| {HDMI_2880x480i60_16x9, tvregs_480i}, |
| {HDMI_720x480p60_16x9, tvregs_480p}, |
| {HDMI_720x480p60_4x3, tvregs_480p}, |
| {HDMI_2880x240p60_16x9, tvregs_480p}, |
| {HDMI_720x576i50_16x9, tvregs_576i}, |
| {HDMI_720x576i50_4x3, tvregs_576i}, |
| {HDMI_2880x576i50_16x9, tvregs_576i}, |
| {HDMI_720x576p50_16x9, tvregs_576p}, |
| {HDMI_720x576p50_4x3, tvregs_576p}, |
| {HDMI_2880x576p50_16x9, tvregs_576p}, |
| {HDMI_1280x720p60_16x9, tvregs_720p}, |
| {HDMI_1920x1080i60_16x9, tvregs_1080i}, |
| {HDMI_1920x1080p60_16x9, tvregs_1080p}, |
| {HDMI_1920x1080p120_16x9, tvregs_1080p}, |
| {HDMI_1280x720p50_16x9, tvregs_720p_50hz}, |
| {HDMI_1920x1080i50_16x9, tvregs_1080i_50hz}, |
| {HDMI_1920x1080p50_16x9, tvregs_1080p_50hz}, |
| {HDMI_1920x1080p25_16x9, tvregs_1080p_50hz}, |
| {HDMI_1920x1080p30_16x9, tvregs_1080p}, |
| {HDMI_1920x1080p24_16x9, tvregs_1080p_24hz}, |
| {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_50hz}, |
| {HDMI_4096x2160p60_256x135, tvregs_4k2k_smpte_60hz}, |
| {HDMI_4096x2160p60_256x135_Y420, tvregs_4k2k_smpte_60hz}, |
| {HDMI_4096x2160p50_256x135_Y420, tvregs_4k2k_smpte_50hz}, |
| {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}, |
| {HDMI_2560x1080p50_64x27, tvregs_2560x1080p50hz}, |
| {HDMI_2560x1080p60_64x27, tvregs_2560x1080p60hz}, |
| {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}, |
| {HDMIV_1280x600p60hz, tvregs_vesa_1280x600p60hz}, |
| {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_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}, |
| {HDMIV_3440x1440p60hz, tvregs_vesa_3440x1440p60hz}, |
| {HDMIV_2400x1200p90hz, tvregs_vesa_2400x1200p90hz}, |
| }; |
| |
| static inline void setreg(const struct reg_s *r) |
| { |
| hd_write_reg(r->reg, r->val); |
| /* printk("[0x%x] = 0x%x\n", r->reg, r->val); */ |
| } |
| |
| static const struct reg_s *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_s *s = tvregs_setting_mode(vic); |
| |
| if (s) { |
| pr_info("hdmitx: set enc for VIC: %d\n", vic); |
| while (s->reg != MREG_END_MARKER) |
| setreg(s++); |
| } else |
| printf("hdmitx: not find VIC: %d\n", vic); |
| } |