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