blob: 3b3309cc103d5cac50ba61225d11e16150720ae1 [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#include "cvbs_reg.h"
#include "cvbs.h"
static const struct reg_s tvregs_576cvbs_enc[] = {
{ENCI_CFILT_CTRL, 0x12, },
{ENCI_CFILT_CTRL2, 0x12, },
{VENC_DVI_SETTING, 0, },
{ENCI_VIDEO_MODE, 0, },
{ENCI_VIDEO_MODE_ADV, 0, },
{ENCI_SYNC_HSO_BEGIN, 3, },
{ENCI_SYNC_HSO_END, 129, },
{ENCI_SYNC_VSO_EVNLN, 0x0003 },
{ENCI_SYNC_VSO_ODDLN, 0x0104 },
{ENCI_MACV_MAX_AMP, 0x8107 },
{VENC_VIDEO_PROG_MODE, 0xff },
{ENCI_VIDEO_MODE, 0x13 },
{ENCI_VIDEO_MODE_ADV, 0x26, },
{ENCI_VIDEO_SCH, 0x28, },
{ENCI_SYNC_MODE, 0x07, },
{ENCI_YC_DELAY, 0x333, },
{ENCI_VFIFO2VD_PIXEL_START, 0x0fb },
{ENCI_VFIFO2VD_PIXEL_END, 0x069b },
{ENCI_VFIFO2VD_LINE_TOP_START, 0x0016 },
{ENCI_VFIFO2VD_LINE_TOP_END, 0x0136 },
{ENCI_VFIFO2VD_LINE_BOT_START, 0x0017 },
{ENCI_VFIFO2VD_LINE_BOT_END, 0x0137 },
{VENC_SYNC_ROUTE, 0, },
{ENCI_DBG_PX_RST, 0, },
{VENC_INTCTRL, 0x2, },
{ENCI_VFIFO2VD_CTL, 0x4e01, },
{VENC_VDAC_SETTING, 0, },
{VENC_UPSAMPLE_CTRL0, 0x0061, },
{VENC_UPSAMPLE_CTRL1, 0x4061, },
{VENC_UPSAMPLE_CTRL2, 0x5061, },
{VENC_VDAC_DACSEL0, 0x0000, },
{VENC_VDAC_DACSEL1, 0x0000, },
{VENC_VDAC_DACSEL2, 0x0000, },
{VENC_VDAC_DACSEL3, 0x0000, },
{VENC_VDAC_DACSEL4, 0x0000, },
{VENC_VDAC_DACSEL5, 0x0000, },
{VENC_VDAC_FIFO_CTRL, 0x2000, },
{ENCI_DACSEL_0, 0x0011 },
{ENCI_DACSEL_1, 0x11 },
{ENCI_VIDEO_EN, 1, },
{ENCI_VIDEO_SAT, 0x7 },
{VENC_VDAC_DAC0_FILT_CTRL0, 0x1 },
{VENC_VDAC_DAC0_FILT_CTRL1, 0xfc48 },
{ENCI_MACV_N0, 0x0 },
{ENCI_VIDEO_CONT, 0x0 },
{MREG_END_MARKER, 0 }
};
static const struct reg_s tvregs_480cvbs_enc[] = {
{ENCI_CFILT_CTRL, 0x12, },
{ENCI_CFILT_CTRL2, 0x12, },
{VENC_DVI_SETTING, 0, },
{ENCI_VIDEO_MODE, 0, },
{ENCI_VIDEO_MODE_ADV, 0, },
{ENCI_SYNC_HSO_BEGIN, 5, },
{ENCI_SYNC_HSO_END, 129, },
{ENCI_SYNC_VSO_EVNLN, 0x0003 },
{ENCI_SYNC_VSO_ODDLN, 0x0104 },
{ENCI_MACV_MAX_AMP, 0x810b },
{VENC_VIDEO_PROG_MODE, 0xf0 },
{ENCI_VIDEO_MODE, 0x08 },
{ENCI_VIDEO_MODE_ADV, 0x26, },
{ENCI_VIDEO_SCH, 0x20, },
{ENCI_SYNC_MODE, 0x07, },
{ENCI_YC_DELAY, 0x333, },
{ENCI_VFIFO2VD_PIXEL_START, 0xe3, },
{ENCI_VFIFO2VD_PIXEL_END, 0x0683, },
{ENCI_VFIFO2VD_LINE_TOP_START, 0x12, },
{ENCI_VFIFO2VD_LINE_TOP_END, 0x102, },
{ENCI_VFIFO2VD_LINE_BOT_START, 0x13, },
{ENCI_VFIFO2VD_LINE_BOT_END, 0x103, },
{VENC_SYNC_ROUTE, 0, },
{ENCI_DBG_PX_RST, 0, },
{VENC_INTCTRL, 0x2, },
{ENCI_VFIFO2VD_CTL, 0x4e01, },
{VENC_VDAC_SETTING, 0, },
{VENC_UPSAMPLE_CTRL0, 0x0061, },
{VENC_UPSAMPLE_CTRL1, 0x4061, },
{VENC_UPSAMPLE_CTRL2, 0x5061, },
{VENC_VDAC_DACSEL0, 0x0000, },
{VENC_VDAC_DACSEL1, 0x0000, },
{VENC_VDAC_DACSEL2, 0x0000, },
{VENC_VDAC_DACSEL3, 0x0000, },
{VENC_VDAC_DACSEL4, 0x0000, },
{VENC_VDAC_DACSEL5, 0x0000, },
{VENC_VDAC_FIFO_CTRL, 0x2000, },
{ENCI_DACSEL_0, 0x0011 },
{ENCI_DACSEL_1, 0x11 },
{ENCI_VIDEO_EN, 1, },
{ENCI_VIDEO_SAT, 0x12 },
{VENC_VDAC_DAC0_FILT_CTRL0, 0x1 },
{VENC_VDAC_DAC0_FILT_CTRL1, 0xfc48 },
{ENCI_MACV_N0, 0x0 },
{ENCI_SYNC_ADJ, 0x9c00 },
{ENCI_VIDEO_CONT, 0x3 },
{MREG_END_MARKER, 0 }
};
static const struct reg_s tvregs_pal_m_enc[] = {
{ENCI_CFILT_CTRL, 0x12, },
{ENCI_CFILT_CTRL2, 0x12, },
{VENC_DVI_SETTING, 0, },
{ENCI_VIDEO_MODE, 0, },
{ENCI_VIDEO_MODE_ADV, 0, },
{ENCI_SYNC_HSO_BEGIN, 5, },
{ENCI_SYNC_HSO_END, 129, },
{ENCI_SYNC_VSO_EVNLN, 0x0003 },
{ENCI_SYNC_VSO_ODDLN, 0x0104 },
{ENCI_MACV_MAX_AMP, 0x810b },
{VENC_VIDEO_PROG_MODE, 0xf0 },
{ENCI_VIDEO_MODE, 0x2a },
{ENCI_VIDEO_MODE_ADV, 0x26, },
{ENCI_VIDEO_SCH, 0x20, },
{ENCI_SYNC_MODE, 0x07, },
{ENCI_YC_DELAY, 0x333, },
{ENCI_VFIFO2VD_PIXEL_START, 0xe3, },
{ENCI_VFIFO2VD_PIXEL_END, 0x0683,},
{ENCI_VFIFO2VD_LINE_TOP_START, 0x12, },
{ENCI_VFIFO2VD_LINE_TOP_END, 0x102, },
{ENCI_VFIFO2VD_LINE_BOT_START, 0x13, },
{ENCI_VFIFO2VD_LINE_BOT_END, 0x103, },
{VENC_SYNC_ROUTE, 0, },
{ENCI_DBG_PX_RST, 0, },
{VENC_INTCTRL, 0x2, },
{ENCI_VFIFO2VD_CTL, 0x4e01,},
{VENC_VDAC_SETTING, 0, },
{VENC_UPSAMPLE_CTRL0, 0x0061,},
{VENC_UPSAMPLE_CTRL1, 0x4061,},
{VENC_UPSAMPLE_CTRL2, 0x5061,},
{VENC_VDAC_DACSEL0, 0x0000,},
{VENC_VDAC_DACSEL1, 0x0000,},
{VENC_VDAC_DACSEL2, 0x0000,},
{VENC_VDAC_DACSEL3, 0x0000,},
{VENC_VDAC_DACSEL4, 0x0000,},
{VENC_VDAC_DACSEL5, 0x0000,},
{VENC_VDAC_FIFO_CTRL, 0x2000,},
{ENCI_DACSEL_0, 0x0011 },
{ENCI_DACSEL_1, 0x11 },
{ENCI_VIDEO_EN, 1, },
{ENCI_VIDEO_SAT, 0x12 },
{VENC_VDAC_DAC0_FILT_CTRL0, 0x1 },
{VENC_VDAC_DAC0_FILT_CTRL1, 0xfc48 },
{ENCI_MACV_N0, 0x0 },
{ENCI_SYNC_ADJ, 0x9c00 },
{ENCI_VIDEO_CONT, 0x3 },
{MREG_END_MARKER, 0 }
};
static const struct reg_s tvregs_pal_n_enc[] = {
{ENCI_CFILT_CTRL, 0x12, },
{ENCI_CFILT_CTRL2, 0x12, },
{VENC_DVI_SETTING, 0, },
{ENCI_VIDEO_MODE, 0, },
{ENCI_VIDEO_MODE_ADV, 0, },
{ENCI_SYNC_HSO_BEGIN, 3, },
{ENCI_SYNC_HSO_END, 129, },
{ENCI_SYNC_VSO_EVNLN, 0x0003 },
{ENCI_SYNC_VSO_ODDLN, 0x0104 },
{ENCI_MACV_MAX_AMP, 0x8107 },
{VENC_VIDEO_PROG_MODE, 0xff },
{ENCI_VIDEO_MODE, 0x3b },
{ENCI_VIDEO_MODE_ADV, 0x26, },
{ENCI_VIDEO_SCH, 0x28, },
{ENCI_SYNC_MODE, 0x07, },
{ENCI_YC_DELAY, 0x333, },
{ENCI_VFIFO2VD_PIXEL_START, 0x0fb },
{ENCI_VFIFO2VD_PIXEL_END, 0x069b },
{ENCI_VFIFO2VD_LINE_TOP_START, 0x0016 },
{ENCI_VFIFO2VD_LINE_TOP_END, 0x0136 },
{ENCI_VFIFO2VD_LINE_BOT_START, 0x0017 },
{ENCI_VFIFO2VD_LINE_BOT_END, 0x0137 },
{VENC_SYNC_ROUTE, 0, },
{ENCI_DBG_PX_RST, 0, },
{VENC_INTCTRL, 0x2, },
{ENCI_VFIFO2VD_CTL, 0x4e01, },
{VENC_VDAC_SETTING, 0, },
{VENC_UPSAMPLE_CTRL0, 0x0061, },
{VENC_UPSAMPLE_CTRL1, 0x4061, },
{VENC_UPSAMPLE_CTRL2, 0x5061, },
{VENC_VDAC_DACSEL0, 0x0000, },
{VENC_VDAC_DACSEL1, 0x0000, },
{VENC_VDAC_DACSEL2, 0x0000, },
{VENC_VDAC_DACSEL3, 0x0000, },
{VENC_VDAC_DACSEL4, 0x0000, },
{VENC_VDAC_DACSEL5, 0x0000, },
{VENC_VDAC_FIFO_CTRL, 0x2000, },
{ENCI_DACSEL_0, 0x0011 },
{ENCI_DACSEL_1, 0x11 },
{ENCI_VIDEO_EN, 1, },
{ENCI_VIDEO_SAT, 0x7 },
{VENC_VDAC_DAC0_FILT_CTRL0, 0x1 },
{VENC_VDAC_DAC0_FILT_CTRL1, 0xfc48 },
{ENCI_MACV_N0, 0x0 },
{ENCI_VIDEO_CONT, 0x0 },
{MREG_END_MARKER, 0 }
};