1 /* 2 * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef __HI_MOD_PARAM__ 17 #define __HI_MOD_PARAM__ 18 19 typedef enum { 20 HI_FALSE = 0, 21 HI_TRUE = 1, 22 } HI_BOOL; 23 24 #define VGS_IP_NUM 1 25 #define VPSS_IP_NUM 1 26 #define GDC_IP_NUM 1 27 #define VEDU_IP_NUM 1 28 29 typedef struct hiBASE_MODULE_PARAMS_S { 30 HI_BOOL bVbForceExit; 31 } BASE_MODULE_PARAMS_S; 32 33 34 typedef struct hiHIFB_MODULE_PARAMS_S { 35 char video[64]; 36 HI_BOOL bUpdateRotateRect; 37 } HIFB_MODULE_PARAMS_S; 38 39 typedef struct hiVGS_MODULE_PARAMS_S { 40 unsigned int u32MaxVgsJob; 41 unsigned int u32MaxVgsTask; 42 unsigned int u32MaxVgsNode; 43 unsigned int au32VgsEn[VGS_IP_NUM]; 44 HI_BOOL bVgsHdrSupport; 45 HI_BOOL bVgsExitInSys; 46 } VGS_MODULE_PARAMS_S; 47 48 typedef struct hiVPSS_MODULE_PARAMS_S { 49 unsigned int u32VpssEn[VPSS_IP_NUM]; 50 } VPSS_MODULE_PARAMS_S; 51 52 typedef struct hiGDC_MODULE_PARAMS_S { 53 unsigned int u32MaxGdcJob; 54 unsigned int u32MaxGdcTask; 55 unsigned int u32MaxGdcNode; 56 unsigned int au32GdcEn[GDC_IP_NUM]; 57 } GDC_MODULE_PARAMS_S; 58 59 typedef struct hiVDEC_MODULE_PARAMS_S { 60 unsigned int u32VdecMaxChnNum; 61 HI_BOOL bVdecHfr; 62 } VDEC_MODULE_PARAMS_S; 63 64 typedef struct hiIVE_MODULE_PARAMS_S { 65 HI_BOOL bSavePowerEn; 66 unsigned short u16IveNodeNum; 67 unsigned short u16Rsv; 68 } IVE_MODULE_PARAMS_S; 69 70 typedef struct hiSVP_NNIE_MODULE_PARAMS_S { 71 HI_BOOL bSavePowerEn; 72 unsigned short u16NnieTskBufNum; 73 } SVP_NNIE_MODULE_PARAMS_S; 74 75 typedef struct hiSVP_DSP_MODULE_PARAMS_S { 76 unsigned short u16NodeNum; 77 unsigned short u16DspInitMode; 78 } SVP_DSP_MODULE_PARAMS_S; 79 80 typedef struct hiACODEC_MODULE_PARAMS_S { 81 unsigned int u32InitDelayTimeMs; 82 } ACODEC_MODULE_PARAMS_S; 83 84 typedef struct hiISP_MODULE_PARAMS_S { 85 unsigned int u32PwmNum; 86 unsigned int u32ProcParam; 87 unsigned int u32UpdatePos; 88 unsigned int u32IntTimeOut; 89 unsigned int bIntBottomHalf; 90 unsigned int u32StatIntvl; 91 } ISP_MODULE_PARAMS_S; 92 93 typedef struct hiH265E_MODULE_PARAMS_S { 94 unsigned int u32FeatureEnable; 95 } H265E_MODULE_PARAMS_S; 96 97 typedef struct hiVENC_MODULE_PARAMS_S { 98 unsigned int u32VencMaxChnNum; 99 } VENC_MODULE_PARAMS_S; 100 101 typedef struct hiVEDU_MODULE_PARAMS_S { 102 unsigned int vedu_en[VEDU_IP_NUM]; 103 } VEDU_MODULE_PARAMS_S; 104 typedef struct hiVFMW_MODULE_PARAMS_S { 105 int s32VfmwMaxChnNum; 106 } VFMW_MODULE_PARAMS_S; 107 108 typedef struct hiSIL9024_MODULE_PARAMS_S { 109 int norm; 110 int i2c_num; 111 } SIL9024_MODULE_PARAMS_S; 112 113 typedef struct hiADV7179_MODULE_PARAMS_S { 114 int Norm_mode; 115 int i2c_num; 116 } ADV7179_MODULE_PARAMS_S; 117 118 typedef struct hiPM_MODULE_PARAMS_S { 119 HI_BOOL bAvspOn; /* HI_TRUE: on,HI_FALSE: off */ 120 HI_BOOL bSvpAcceleratorOn; /* HI_TRUE: on,HI_FALSE: off */ 121 // HI_U32 u32RegulatorType; /* 0:DC-DC, 1:PMU */ 122 } PM_MODULE_PARAMS_S; 123 124 #define MMZ_SETUP_CMDLINE_LENGTH 256 125 typedef struct hiMMZ_SETUP_MODULE_PARAMS_S { 126 char mmz[MMZ_SETUP_CMDLINE_LENGTH]; 127 char map_mmz[MMZ_SETUP_CMDLINE_LENGTH]; 128 int anony; 129 } MMZ_SETUP_MODULE_PARAMS_S; 130 131 #endif 132