| |
| /* |
| * 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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0x5}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0x5}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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, 41}, |
| {P_ENCP_VIDEO_VAVON_ELINE, 1120}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_VENC_VIDEO_PROG_MODE, 0x100}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1,}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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_VPU_VIU_VENC_MUX_CTRL, 0xA}, |
| {P_ENCI_VIDEO_EN, 0}, |
| {P_ENCP_VIDEO_EN, 1}, |
| {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); |
| } |