1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun /******************************************************************************** 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2017 NEXTCHIP Inc. All rights reserved. 5*4882a593Smuzhiyun * Module : The decoder's video format module 6*4882a593Smuzhiyun * Description : Video format 7*4882a593Smuzhiyun * Author : 8*4882a593Smuzhiyun * Date : 9*4882a593Smuzhiyun * Version : Version 2.0 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun ******************************************************************************** 12*4882a593Smuzhiyun * History : 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun * 15*4882a593Smuzhiyun ********************************************************************************/ 16*4882a593Smuzhiyun #ifndef _NVP6158_VIDEO_HI_ 17*4882a593Smuzhiyun #define _NVP6158_VIDEO_HI_ 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #include "nvp6158_common.h" 20*4882a593Smuzhiyun /* =============================================== 21*4882a593Smuzhiyun * APP -> DRV 22*4882a593Smuzhiyun * =============================================== */ 23*4882a593Smuzhiyun typedef struct _video_input_init { 24*4882a593Smuzhiyun unsigned char ch; 25*4882a593Smuzhiyun unsigned char format; 26*4882a593Smuzhiyun unsigned char dist; 27*4882a593Smuzhiyun unsigned char input; 28*4882a593Smuzhiyun unsigned char val; 29*4882a593Smuzhiyun unsigned char interface; 30*4882a593Smuzhiyun } video_input_init; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun typedef struct _video_init_all { 33*4882a593Smuzhiyun video_input_init ch_param[4]; 34*4882a593Smuzhiyun NVP6158_DVP_MODE mode; 35*4882a593Smuzhiyun } video_init_all; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun /******************************************************************** 38*4882a593Smuzhiyun * define and enum 39*4882a593Smuzhiyun ********************************************************************/ 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun typedef enum _nvp6158_outmode_sel { 42*4882a593Smuzhiyun NVP6158_OUTMODE_1MUX_SD = 0, 43*4882a593Smuzhiyun NVP6158_OUTMODE_1MUX_HD, 44*4882a593Smuzhiyun NVP6158_OUTMODE_1MUX_FHD, 45*4882a593Smuzhiyun NVP6158_OUTMODE_1MUX_FHD_DDR, 46*4882a593Smuzhiyun NVP6158_OUTMODE_2MUX_SD, 47*4882a593Smuzhiyun NVP6158_OUTMODE_2MUX_HD, 48*4882a593Smuzhiyun NVP6158_OUTMODE_2MUX_MIX, 49*4882a593Smuzhiyun NVP6158_OUTMODE_2MUX_FHD, 50*4882a593Smuzhiyun NVP6158_OUTMODE_4MUX_SD, 51*4882a593Smuzhiyun NVP6158_OUTMODE_4MUX_HD, 52*4882a593Smuzhiyun NVP6158_OUTMODE_4MUX_MIX, 53*4882a593Smuzhiyun NVP6158_OUTMODE_1MUX_297MHz, 54*4882a593Smuzhiyun NVP6158_OUTMODE_1MUX_BT1120S_720P, 55*4882a593Smuzhiyun NVP6158_OUTMODE_1MUX_BT1120S_1080P, 56*4882a593Smuzhiyun NVP6158_OUTMODE_2MUX_BT1120S, 57*4882a593Smuzhiyun NVP6158_OUTMODE_2MUX_BT1120S_720P, 58*4882a593Smuzhiyun NVP6158_OUTMODE_2MUX_BT1120S_1080P, 59*4882a593Smuzhiyun NVP6158_OUTMODE_4MUX_BT1120S, 60*4882a593Smuzhiyun NVP6158_OUTMODE_4MUX_BT1120S_DDR, 61*4882a593Smuzhiyun NVP6158_OUTMODE_4MUX_BT1120S_720P, 62*4882a593Smuzhiyun NVP6158_OUTMODE_4MUX_BT1120S_1080P, 63*4882a593Smuzhiyun NVP6158_OUTMODE_BUTT 64*4882a593Smuzhiyun } NVP6158_OUTMODE_SEL; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun typedef enum _nvp6158_det_sel { 67*4882a593Smuzhiyun NVP6158_DET_MODE_AUTO = 0, 68*4882a593Smuzhiyun NVP6158_DET_MODE_AHD, 69*4882a593Smuzhiyun NVP6158_DET_MODE_CVI, 70*4882a593Smuzhiyun NVP6158_DET_MODE_TVI, 71*4882a593Smuzhiyun NVP6158_DET_MODE_OTHER, 72*4882a593Smuzhiyun NVP6158_DET_MODE_BUTT 73*4882a593Smuzhiyun } NVP6158_DET_SEL; 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun /******************************************************************** 76*4882a593Smuzhiyun * structure 77*4882a593Smuzhiyun ********************************************************************/ 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun /******************************************************************** 80*4882a593Smuzhiyun * external api 81*4882a593Smuzhiyun ********************************************************************/ 82*4882a593Smuzhiyun void nvp6158_common_init(unsigned char chip); 83*4882a593Smuzhiyun int nvp6158_set_portmode(const unsigned char chip, const unsigned char portsel, 84*4882a593Smuzhiyun const unsigned char portmode, const unsigned char chid); 85*4882a593Smuzhiyun int nvp6158_set_chnmode(const unsigned char ch, const unsigned char chnmode); 86*4882a593Smuzhiyun int nvp6168_set_chnmode(const unsigned char ch, const unsigned char chnmode); 87*4882a593Smuzhiyun void nvp6158_set_portcontrol(unsigned char chip, unsigned char portsel, 88*4882a593Smuzhiyun unsigned char enclk, unsigned char endata); 89*4882a593Smuzhiyun void nvp6158_set_chn_commonvalue(const unsigned char ch, const unsigned char chnmode); 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun unsigned int nvp6158_video_fmt_det(const unsigned char ch, NVP6158_INFORMATION_S *ps_nvp6158_vfmts); 92*4882a593Smuzhiyun unsigned int nvp6168_video_fmt_det(const unsigned char ch, NVP6158_INFORMATION_S *ps_nvp6158_vfmts); 93*4882a593Smuzhiyun unsigned char nvp6158_video_fmt_debounce(unsigned char ch, 94*4882a593Smuzhiyun unsigned char keep_fmt, unsigned int keep_sync_width); 95*4882a593Smuzhiyun unsigned int nvp6158_getvideoloss(void); 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun void nvp6158_video_set_contrast(unsigned char ch, unsigned int value, unsigned int v_format); 98*4882a593Smuzhiyun void nvp6158_video_set_brightness(unsigned char ch, unsigned int value, unsigned int v_format); 99*4882a593Smuzhiyun void nvp6158_video_set_saturation(unsigned char ch, unsigned int value, unsigned int v_format); 100*4882a593Smuzhiyun void nvp6158_video_set_hue(unsigned char ch, unsigned int value, unsigned int v_format); 101*4882a593Smuzhiyun void nvp6158_video_set_sharpness(unsigned char ch, unsigned int value); 102*4882a593Smuzhiyun void nvp6158_video_set_ugain(unsigned char ch, unsigned int value); 103*4882a593Smuzhiyun void nvp6158_video_set_vgain(unsigned char ch, unsigned int value); 104*4882a593Smuzhiyun void nvp6158_video_set_adcclk(unsigned char ch, unsigned char value); 105*4882a593Smuzhiyun unsigned char nvp6158_video_get_adcclk(unsigned char ch); 106*4882a593Smuzhiyun void nvp6158_hide_ch(unsigned char ch); 107*4882a593Smuzhiyun void nvp6158_show_ch(unsigned char ch); 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun void nvp6158_vd_chnreset(unsigned char ch); 110*4882a593Smuzhiyun int nvp6158_GetAgcLockStatus(unsigned char ch); 111*4882a593Smuzhiyun int nvp6158_GetFSCLockStatus(unsigned char ch); 112*4882a593Smuzhiyun void nvp6158_ResetFSCLock(unsigned char ch); 113*4882a593Smuzhiyun void nvp6158_chn_killcolor(unsigned char ch, unsigned char onoff); 114*4882a593Smuzhiyun int nvp6158_acp_SetVFmt(unsigned char ch, const unsigned char vfmt); 115*4882a593Smuzhiyun void nvp6158_video_input_new_format_set(const unsigned char ch, const unsigned char chnmode); 116*4882a593Smuzhiyun void nvp6158_dump_reg(unsigned char ch, unsigned char bank); 117*4882a593Smuzhiyun NC_FORMAT_STANDARD NVP6158_GetFmtStd_from_Fmtdef(NC_VIVO_CH_FORMATDEF vivofmt); 118*4882a593Smuzhiyun void nvp6158_additional_for3MoverDef(unsigned char chip); 119*4882a593Smuzhiyun void nvp6158_video_powerdown(unsigned char ch); 120*4882a593Smuzhiyun void nvp6158_set_colorpattern(void); 121*4882a593Smuzhiyun void nvp6158_set_colorpattern2(void); 122*4882a593Smuzhiyun void nvp6158_set_colorpattern3(void); 123*4882a593Smuzhiyun void nvp6158_channel_reset(unsigned char ch); 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun #endif // End of _NVP6158_VIDEO_HI_ 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun /******************************************************************** 129*4882a593Smuzhiyun * End of file 130*4882a593Smuzhiyun ********************************************************************/ 131