/* SPDX-License-Identifier: GPL-2.0 */ /******************************************************************************** * * Copyright (C) 2017 NEXTCHIP Inc. All rights reserved. * Module : video_eq.h * Description : * Author : * Date : * Version : Version 1.0 * ******************************************************************************** * History : * * ********************************************************************************/ #ifndef _JAGUAR1_VIDEO_EQ_H_ #define _JAGUAR1_VIDEO_EQ_H_ #include "jaguar1_common.h" typedef struct _video_equalizer_hsync_stage_s{ unsigned int hsync_stage[6]; }video_equalizer_hsync_stage_s; typedef struct _video_equalizer_agc_stage_s{ unsigned int agc_stage[6]; }video_equalizer_agc_stage_s; typedef struct _video_equalizer_distance_table_s{ video_equalizer_hsync_stage_s hsync_stage; video_equalizer_agc_stage_s agc_stage; } video_equalizer_distance_table_s; typedef struct _video_equalizer_base_s{ unsigned char eq_bypass[11]; // B5x01 unsigned char eq_band_sel[11]; // B5x58 unsigned char eq_gain_sel[11]; // B5x5C unsigned char deq_a_on[11]; // BAx3d unsigned char deq_a_sel[11]; // BAx3C } video_equalizer_base_s; typedef struct _video_equalizer_coeff_s{ unsigned char deqA_01[11]; // BankA 0x30 unsigned char deqA_02[11]; // BankA 0x31 unsigned char deqA_03[11]; // BankA 0x32 unsigned char deqA_04[11]; // BankA 0x33 unsigned char deqA_05[11]; // BankA 0x34 unsigned char deqA_06[11]; // BankA 0x35 unsigned char deqA_07[11]; // BankA 0x36 unsigned char deqA_08[11]; // BankA 0x37 unsigned char deqA_09[11]; // BankA 0x38 unsigned char deqA_10[11]; // BankA 0x39 unsigned char deqA_11[11]; // BankA 0x3A unsigned char deqA_12[11]; // BankA 0x3B } video_equalizer_coeff_s; typedef struct _video_equalizer_color_s{ unsigned char contrast[11]; // Bank0 0x10 unsigned char y_peaking_mode[11]; // Bank0 0x18 unsigned char y_fir_mode [11]; unsigned char c_filter[11]; // Bank0 0x21 unsigned char pal_cm_off[11]; // Bank0 0x21 unsigned char hue[11]; // Bank0 0x40 unsigned char u_gain[11]; // Bank0 0x44 unsigned char v_gain[11]; // Bank0 0x48 unsigned char u_offset[11]; // Bank0 0x4c unsigned char v_offset[11]; // Bank0 0x50 unsigned char black_level[11]; // Bank5 0x20 unsigned char acc_ref[11]; // Bank5 0x27 unsigned char cti_delay[11]; // Bank5 0x28 unsigned char saturation_b[11]; // Bank5 0x2B unsigned char burst_dec_a[11]; // Bank5 0x24 unsigned char burst_dec_b[11]; // Bank5 0x5F unsigned char burst_dec_c[11]; // Bank5 0xD1 unsigned char c_option[11]; // Bank5 0xD5 unsigned char y_filter_b[11]; // BankA 0x25 unsigned char y_filter_b_sel[11]; // BankA 0x27 } video_equalizer_color_s; typedef struct _video_equalizer_timing_a_s{ unsigned char h_delay_a[11]; // Bank0 0x58 unsigned char h_delay_b[11]; // Bank0 0x89 unsigned char h_delay_c[11]; // Bank0 0x8E unsigned char y_delay[11]; // Bank0 0xA0 } video_equalizer_timing_a_s; typedef struct _video_equalizer_clk_s{ unsigned char clk_adc_pre[11]; // Bank1 0x84 unsigned char clk_adc_post[11]; // Bank1 0x8C unsigned char clk_adc[11]; // Bank1 0x8C } video_equalizer_clk_s; typedef struct _video_equalizer_timing_b_s{ unsigned char h_scaler1[11]; // B9x96 + ch*0x20 unsigned char h_scaler2[11]; // B9x97 + ch*0x20 unsigned char h_scaler3[11]; // B9x98 + ch*0x20 unsigned char h_scaler4[11]; // B9x99 + ch*0x20 unsigned char h_scaler5[11]; // B9x9a + ch*0x20 unsigned char h_scaler6[11]; // B9x9b + ch*0x20 unsigned char h_scaler7[11]; // B9x9c + ch*0x20 unsigned char h_scaler8[11]; // B9x9d + ch*0x20 unsigned char h_scaler9[11]; // B9x9e + ch*0x20 unsigned char pn_auto[11]; // B9x40 + ch unsigned char comb_mode[11]; // B5x90 unsigned char h_pll_op_a[11]; // B5xB9 unsigned char mem_path[11]; // B5x57 unsigned char fsc_lock_speed[11]; //B5x25 unsigned char ahd_mode[11]; unsigned char sd_mode[11]; unsigned char spl_mode[11]; unsigned char vblk_end[11]; unsigned char afe_g_sel[11]; unsigned char afe_ctr_clp[11]; unsigned char d_agc_option[11]; } video_equalizer_timing_b_s; typedef struct _video_equalizer_value_table_s{ video_equalizer_base_s eq_base; video_equalizer_coeff_s eq_coeff; video_equalizer_color_s eq_color; video_equalizer_timing_a_s eq_timing_a; video_equalizer_clk_s eq_clk; video_equalizer_timing_b_s eq_timing_b; } video_equalizer_value_table_s; typedef struct _jaguar1_video_eq_value_table_s{ char *name; NC_VIVO_CH_FORMATDEF video_fmt; NC_ANALOG_INPUT analog_input; video_equalizer_base_s eq_base; video_equalizer_coeff_s eq_coeff; video_equalizer_color_s eq_color; video_equalizer_timing_a_s eq_timing_a; video_equalizer_clk_s eq_clk; video_equalizer_timing_b_s eq_timing_b; } _jaguar1_video_eq_value_table_s; typedef struct _video_equalizer_info{ unsigned char Ch; unsigned char devnum; unsigned char stage; unsigned char FmtDef; unsigned char Cable; unsigned char Input; } video_equalizer_info_s; void video_input_eq_val_set(video_equalizer_info_s *pvin_eq_set); void video_input_eq_cable_set(video_equalizer_info_s *pvin_eq_set); void video_input_eq_analog_input_set(video_equalizer_info_s *pvin_eq_set); #endif /* _JAGUAR1_VIDEO_EQ_H_ */