1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd. */ 3 4 #ifndef _RKISPP_REGS_H 5 #define _RKISPP_REGS_H 6 7 /* registers */ 8 #define RKISPP_CTRL 0x0000 9 #define RKISPP_CTRL_STRT (RKISPP_CTRL + 0x0000) 10 #define RKISPP_CTRL_UPDATE (RKISPP_CTRL + 0x0004) 11 #define RKISPP_CTRL_QUICK (RKISPP_CTRL + 0x0008) 12 #define RKISPP_CTRL_RESET (RKISPP_CTRL + 0x000C) 13 #define RKISPP_CTRL_CLKGATE (RKISPP_CTRL + 0x0010) 14 #define RKISPP_CTRL_SIZE (RKISPP_CTRL + 0x0014) 15 #define RKISPP_CTRL_TNR_SIZE (RKISPP_CTRL + 0x0018) 16 #define RKISPP_CTRL_IP_VERSION (RKISPP_CTRL + 0x001C) 17 #define RKISPP_CTRL_INT_MSK (RKISPP_CTRL + 0x0020) 18 #define RKISPP_CTRL_INT_RAW_STA (RKISPP_CTRL + 0x0024) 19 #define RKISPP_CTRL_INT_STA (RKISPP_CTRL + 0x0028) 20 #define RKISPP_CTRL_INT_SET (RKISPP_CTRL + 0x002C) 21 #define RKISPP_CTRL_INT_CLR (RKISPP_CTRL + 0x0030) 22 #define RKISPP_QUICK_DIF (RKISPP_CTRL + 0x0034) 23 #define RKISPP_CTRL_SYS_STATUS (RKISPP_CTRL + 0x003C) 24 #define RKISPP_CTRL_QUICK_FRM_NUM (RKISPP_CTRL + 0x0040) 25 #define RKISPP_CTRL_SYS_CTL_STA0 (RKISPP_CTRL + 0x0054) 26 #define RKISPP_CTRL_SYS_CTL_STA1 (RKISPP_CTRL + 0x0058) 27 #define RKISPP_CTRL_SYS_CTL_STA2 (RKISPP_CTRL + 0x005C) 28 #define RKISPP_CTRL_SYS_FRM_CNT0 (RKISPP_CTRL + 0x0060) 29 #define RKISPP_CTRL_SYS_FRM_CNT1 (RKISPP_CTRL + 0x0064) 30 31 #define RKISPP_TNR 0x0200 32 #define RKISPP_TNR_CTRL (RKISPP_TNR + 0x0000) 33 #define RKISPP_TNR_CUR_VIR_STRIDE (RKISPP_TNR + 0x0004) 34 #define RKISPP_TNR_CUR_Y_BASE (RKISPP_TNR + 0x0008) 35 #define RKISPP_TNR_CUR_UV_BASE (RKISPP_TNR + 0x000C) 36 #define RKISPP_TNR_IIR_VIR_STRIDE (RKISPP_TNR + 0x0010) 37 #define RKISPP_TNR_IIR_Y_BASE (RKISPP_TNR + 0x0014) 38 #define RKISPP_TNR_IIR_UV_BASE (RKISPP_TNR + 0x0018) 39 #define RKISPP_TNR_NXT_VIR_STRIDE (RKISPP_TNR + 0x001C) 40 #define RKISPP_TNR_NXT_Y_BASE (RKISPP_TNR + 0x0020) 41 #define RKISPP_TNR_NXT_UV_BASE (RKISPP_TNR + 0x0024) 42 #define RKISPP_TNR_GAIN_CUR_VIR_STRIDE (RKISPP_TNR + 0x0028) 43 #define RKISPP_TNR_GAIN_CUR_Y_BASE (RKISPP_TNR + 0x002C) 44 #define RKISPP_TNR_GAIN_NXT_VIR_STRIDE (RKISPP_TNR + 0x0030) 45 #define RKISPP_TNR_GAIN_NXT_Y_BASE (RKISPP_TNR + 0x0034) 46 #define RKISPP_TNR_GAIN_KG_VIR_STRIDE (RKISPP_TNR + 0x0038) 47 #define RKISPP_TNR_GAIN_KG_Y_BASE (RKISPP_TNR + 0x003C) 48 #define RKISPP_TNR_WR_VIR_STRIDE (RKISPP_TNR + 0x0040) 49 #define RKISPP_TNR_WR_Y_BASE (RKISPP_TNR + 0x0044) 50 #define RKISPP_TNR_WR_UV_BASE (RKISPP_TNR + 0x0048) 51 #define RKISPP_TNR_GAIN_WR_VIR_STRIDE (RKISPP_TNR + 0x004C) 52 #define RKISPP_TNR_GAIN_WR_Y_BASE (RKISPP_TNR + 0x0050) 53 #define RKISPP_TNR_CUR_Y_BASE_SHD (RKISPP_TNR + 0x0054) 54 #define RKISPP_TNR_CUR_UV_BASE_SHD (RKISPP_TNR + 0x0058) 55 #define RKISPP_TNR_IIR_Y_BASE_SHD (RKISPP_TNR + 0x005C) 56 #define RKISPP_TNR_IIR_UV_BASE_SHD (RKISPP_TNR + 0x0060) 57 #define RKISPP_TNR_NXT_Y_BASE_SHD (RKISPP_TNR + 0x0064) 58 #define RKISPP_TNR_NXT_UV_BASE_SHD (RKISPP_TNR + 0x0068) 59 #define RKISPP_TNR_GAIN_CUR_Y_BASE_SHD (RKISPP_TNR + 0x006C) 60 #define RKISPP_TNR_GAIN_NXT_Y_BASE_SHD (RKISPP_TNR + 0x0070) 61 #define RKISPP_TNR_WR_Y_BASE_SHD (RKISPP_TNR + 0x0074) 62 #define RKISPP_TNR_WR_UV_BASE_SHD (RKISPP_TNR + 0x0078) 63 #define RKISPP_TNR_GAIN_WR_Y_BASE_SHD (RKISPP_TNR + 0x007C) 64 #define RKISPP_TNR_CORE_CTRL (RKISPP_TNR + 0x0080) 65 #define RKISPP_TNR_CORE_PK0 (RKISPP_TNR + 0x0088) 66 #define RKISPP_TNR_CORE_GLB_GAIN (RKISPP_TNR + 0x008C) 67 #define RKISPP_TNR_CORE_GLB_GAIN_DIV (RKISPP_TNR + 0x0090) 68 #define RKISPP_TNR_CORE_SIG_X18 (RKISPP_TNR + 0x0094) 69 #define RKISPP_TNR_CORE_SIG_X910 (RKISPP_TNR + 0x0098) 70 #define RKISPP_TNR_CORE_SIG_Y01 (RKISPP_TNR + 0x009C) 71 #define RKISPP_TNR_CORE_SIG_Y23 (RKISPP_TNR + 0x00A0) 72 #define RKISPP_TNR_CORE_SIG_Y45 (RKISPP_TNR + 0x00A4) 73 #define RKISPP_TNR_CORE_SIG_Y67 (RKISPP_TNR + 0x00A8) 74 #define RKISPP_TNR_CORE_SIG_Y89 (RKISPP_TNR + 0x00AC) 75 #define RKISPP_TNR_CORE_SIG_YAB (RKISPP_TNR + 0x00B0) 76 #define RKISPP_TNR_CORE_SIG_YCD (RKISPP_TNR + 0x00B4) 77 #define RKISPP_TNR_CORE_SIG_YEF (RKISPP_TNR + 0x00B8) 78 #define RKISPP_TNR_CORE_SIG_Y10 (RKISPP_TNR + 0x00BC) 79 #define RKISPP_TNR_CORE_LUMACURVE_Y01 (RKISPP_TNR + 0x00C4) 80 #define RKISPP_TNR_CORE_LUMACURVE_Y23 (RKISPP_TNR + 0x00C8) 81 #define RKISPP_TNR_CORE_LUMACURVE_Y45 (RKISPP_TNR + 0x00CC) 82 #define RKISPP_TNR_CORE_TH_Y (RKISPP_TNR + 0x00D0) 83 #define RKISPP_TNR_CORE_TH_C (RKISPP_TNR + 0x00D4) 84 #define RKISPP_TNR_CORE_TH_DLT (RKISPP_TNR + 0x00D8) 85 #define RKISPP_TNR_CORE_GFCOEF_Y0_0 (RKISPP_TNR + 0x00DC) 86 #define RKISPP_TNR_CORE_GFCOEF_Y0_1 (RKISPP_TNR + 0x00E0) 87 #define RKISPP_TNR_CORE_GFCOEF_Y1 (RKISPP_TNR + 0x00E4) 88 #define RKISPP_TNR_CORE_GFCOEF_Y2 (RKISPP_TNR + 0x00E8) 89 #define RKISPP_TNR_CORE_GFCOEF_Y3 (RKISPP_TNR + 0x00EC) 90 #define RKISPP_TNR_CORE_GFCOEF_YG0_0 (RKISPP_TNR + 0x00F0) 91 #define RKISPP_TNR_CORE_GFCOEF_YG0_1 (RKISPP_TNR + 0x00F4) 92 #define RKISPP_TNR_CORE_GFCOEF_YG1 (RKISPP_TNR + 0x00F8) 93 #define RKISPP_TNR_CORE_GFCOEF_YG2 (RKISPP_TNR + 0x00FC) 94 #define RKISPP_TNR_CORE_GFCOEF_YG3 (RKISPP_TNR + 0x0100) 95 #define RKISPP_TNR_CORE_GFCOEF_YL0_0 (RKISPP_TNR + 0x0104) 96 #define RKISPP_TNR_CORE_GFCOEF_YL0_1 (RKISPP_TNR + 0x0108) 97 #define RKISPP_TNR_CORE_GFCOEF_YL1 (RKISPP_TNR + 0x010C) 98 #define RKISPP_TNR_CORE_GFCOEF_YL2 (RKISPP_TNR + 0x0110) 99 #define RKISPP_TNR_CORE_GFCOEF_CG0_0 (RKISPP_TNR + 0x0114) 100 #define RKISPP_TNR_CORE_GFCOEF_CG0_1 (RKISPP_TNR + 0x0118) 101 #define RKISPP_TNR_CORE_GFCOEF_CG1 (RKISPP_TNR + 0x011C) 102 #define RKISPP_TNR_CORE_GFCOEF_CG2 (RKISPP_TNR + 0x0120) 103 #define RKISPP_TNR_CORE_GFCOEF_CL0_0 (RKISPP_TNR + 0x0124) 104 #define RKISPP_TNR_CORE_GFCOEF_CL0_1 (RKISPP_TNR + 0x0128) 105 #define RKISPP_TNR_CORE_GFCOEF_CL1 (RKISPP_TNR + 0x012C) 106 #define RKISPP_TNR_CORE_SCALE_YG01 (RKISPP_TNR + 0x0130) 107 #define RKISPP_TNR_CORE_SCALE_YG23 (RKISPP_TNR + 0x0134) 108 #define RKISPP_TNR_CORE_SCALE_YL01 (RKISPP_TNR + 0x0138) 109 #define RKISPP_TNR_CORE_SCALE_YL2 (RKISPP_TNR + 0x013c) 110 #define RKISPP_TNR_CORE_SCALE_CG0 (RKISPP_TNR + 0x0140) 111 #define RKISPP_TNR_CORE_SCALE_CG1 (RKISPP_TNR + 0x0144) 112 #define RKISPP_TNR_CORE_SCALE_CG2 (RKISPP_TNR + 0x0148) 113 #define RKISPP_TNR_CORE_SCALE_CL0 (RKISPP_TNR + 0x014C) 114 #define RKISPP_TNR_CORE_SCALE_CL1 (RKISPP_TNR + 0x0150) 115 #define RKISPP_TNR_CORE_SCALE_CL2 (RKISPP_TNR + 0x0154) 116 #define RKISPP_TNR_CORE_WEIGHT (RKISPP_TNR + 0x0158) 117 #define RKISPP_TNR_TILE_CNT (RKISPP_TNR + 0x01c0) 118 #define RKISPP_TNR_STATE (RKISPP_TNR + 0x01c4) 119 120 #define RKISPP_NR 0x0400 121 #define RKISPP_NR_CTRL (RKISPP_NR + 0x0000) 122 #define RKISPP_NR_VIR_STRIDE (RKISPP_NR + 0x0004) 123 #define RKISPP_NR_ADDR_BASE_Y (RKISPP_NR + 0x0008) 124 #define RKISPP_NR_ADDR_BASE_UV (RKISPP_NR + 0x000C) 125 #define RKISPP_NR_VIR_STRIDE_GAIN (RKISPP_NR + 0x001C) 126 #define RKISPP_NR_ADDR_BASE_GAIN (RKISPP_NR + 0x0020) 127 #define RKISPP_NR_ADDR_BASE_Y_SHD (RKISPP_NR + 0x0024) 128 #define RKISPP_NR_ADDR_BASE_UV_SHD (RKISPP_NR + 0x0028) 129 #define RKISPP_FBC_VIR_HEIGHT (RKISPP_NR + 0x002C) 130 #define RKISPP_NR_UVNR_CTRL_PARA (RKISPP_NR + 0x0080) 131 #define RKISPP_NR_UVNR_GAIN_1SIGMA (RKISPP_NR + 0x0084) 132 #define RKISPP_NR_UVNR_GAIN_OFFSET (RKISPP_NR + 0x0088) 133 #define RKISPP_NR_UVNR_GAIN_GBLGAIN (RKISPP_NR + 0x008C) 134 #define RKISPP_NR_UVNR_T1GEN_M3ALPHA (RKISPP_NR + 0x0090) 135 #define RKISPP_NR_UVNR_T1FLT_MODE (RKISPP_NR + 0x0094) 136 #define RKISPP_NR_UVNR_T1FLT_MSIGMA (RKISPP_NR + 0x0098) 137 #define RKISPP_NR_UVNR_T1FLT_WTP (RKISPP_NR + 0x009C) 138 #define RKISPP_NR_UVNR_T1FLT_WTQ0 (RKISPP_NR + 0x00A0) 139 #define RKISPP_NR_UVNR_T1FLT_WTQ1 (RKISPP_NR + 0x00A4) 140 #define RKISPP_NR_UVNR_T2GEN_M3ALPHA (RKISPP_NR + 0x00A8) 141 #define RKISPP_NR_UVNR_T2GEN_MSIGMA (RKISPP_NR + 0x00AC) 142 #define RKISPP_NR_UVNR_T2GEN_WTP (RKISPP_NR + 0x00B0) 143 #define RKISPP_NR_UVNR_T2GEN_WTQ (RKISPP_NR + 0x00B4) 144 #define RKISPP_NR_UVNR_T2FLT_MSIGMA (RKISPP_NR + 0x00B8) 145 #define RKISPP_NR_UVNR_T2FLT_WT (RKISPP_NR + 0x00BC) 146 #define RKISPP_NR_YNR_SGM_DX_1_8 (RKISPP_NR + 0x0104) 147 #define RKISPP_NR_YNR_SGM_DX_9_16 (RKISPP_NR + 0x0108) 148 #define RKISPP_NR_YNR_LSGM_Y_0_1 (RKISPP_NR + 0x010C) 149 #define RKISPP_NR_YNR_LSGM_Y_2_3 (RKISPP_NR + 0x0110) 150 #define RKISPP_NR_YNR_LSGM_Y_4_5 (RKISPP_NR + 0x0114) 151 #define RKISPP_NR_YNR_LSGM_Y_6_7 (RKISPP_NR + 0x0118) 152 #define RKISPP_NR_YNR_LSGM_Y_8_9 (RKISPP_NR + 0x011C) 153 #define RKISPP_NR_YNR_LSGM_Y_10_11 (RKISPP_NR + 0x0120) 154 #define RKISPP_NR_YNR_LSGM_Y_12_13 (RKISPP_NR + 0x0124) 155 #define RKISPP_NR_YNR_LSGM_Y_14_15 (RKISPP_NR + 0x0128) 156 #define RKISPP_NR_YNR_LSGM_Y_16 (RKISPP_NR + 0x012C) 157 #define RKISPP_NR_YNR_LCI (RKISPP_NR + 0x0130) 158 #define RKISPP_NR_YNR_LGAIN_DIRE_MIN (RKISPP_NR + 0x0134) 159 #define RKISPP_NR_YNR_IGAIN_DIRE_MAX (RKISPP_NR + 0x0138) 160 #define RKISPP_NR_YNR_LMERGE (RKISPP_NR + 0x013C) 161 #define RKISPP_NR_YNR_LWEIT_FLT (RKISPP_NR + 0x0140) 162 #define RKISPP_NR_YNR_HSGM_Y_0_1 (RKISPP_NR + 0x0144) 163 #define RKISPP_NR_YNR_HSGM_Y_2_3 (RKISPP_NR + 0x0148) 164 #define RKISPP_NR_YNR_HSGM_Y_4_5 (RKISPP_NR + 0x014C) 165 #define RKISPP_NR_YNR_HSGM_Y_6_7 (RKISPP_NR + 0x0150) 166 #define RKISPP_NR_YNR_HSGM_Y_8_9 (RKISPP_NR + 0x0154) 167 #define RKISPP_NR_YNR_HSGM_Y_10_11 (RKISPP_NR + 0x0158) 168 #define RKISPP_NR_YNR_HSGM_Y_12_13 (RKISPP_NR + 0x015C) 169 #define RKISPP_NR_YNR_HSGM_Y_14_15 (RKISPP_NR + 0x0160) 170 #define RKISPP_NR_YNR_HSGM_Y_16 (RKISPP_NR + 0x0164) 171 #define RKISPP_NR_YNR_HLCI (RKISPP_NR + 0x0168) 172 #define RKISPP_NR_YNR_LHCI (RKISPP_NR + 0x016C) 173 #define RKISPP_NR_YNR_HHCI (RKISPP_NR + 0x0170) 174 #define RKISPP_NR_YNR_HGAIN_SGM (RKISPP_NR + 0x0174) 175 #define RKISPP_NR_YNR_HWEIT_D0 (RKISPP_NR + 0x0178) 176 #define RKISPP_NR_YNR_HWEIT_D1 (RKISPP_NR + 0x017C) 177 #define RKISPP_NR_YNR_HWEIT_D2 (RKISPP_NR + 0x0180) 178 #define RKISPP_NR_YNR_HWEIT_D3 (RKISPP_NR + 0x0184) 179 #define RKISPP_NR_YNR_HWEIT_D4 (RKISPP_NR + 0x0188) 180 #define RKISPP_NR_YNR_HGRAD_Y0 (RKISPP_NR + 0x018C) 181 #define RKISPP_NR_YNR_HGRAD_Y1 (RKISPP_NR + 0x0190) 182 #define RKISPP_NR_YNR_HGRAD_Y2 (RKISPP_NR + 0x0194) 183 #define RKISPP_NR_YNR_HGRAD_Y3 (RKISPP_NR + 0x0198) 184 #define RKISPP_NR_YNR_HGRAD_Y4 (RKISPP_NR + 0x019C) 185 #define RKISPP_NR_YNR_HGRAD_Y5 (RKISPP_NR + 0x01A0) 186 #define RKISPP_NR_YNR_HWEIT_1_2 (RKISPP_NR + 0x01A4) 187 #define RKISPP_NR_YNR_HWEIT_3_4 (RKISPP_NR + 0x01A8) 188 #define RKISPP_NR_YNR_HADJUST_EXGAIN (RKISPP_NR + 0x01AC) 189 #define RKISPP_NR_YNR_HMAX_ADJUST (RKISPP_NR + 0x01B0) 190 #define RKISPP_NR_YNR_HSTRENGTH (RKISPP_NR + 0x01B4) 191 #define RKISPP_NR_YNR_LWEIT_CMP (RKISPP_NR + 0x01B8) 192 #define RKISPP_NR_YNR_LMAXGAIN_LV4 (RKISPP_NR + 0x01BC) 193 #define RKISPP_NR_YNR_HSTV_Y_0_1 (RKISPP_NR + 0x01C0) 194 #define RKISPP_NR_YNR_HSTV_Y_2_3 (RKISPP_NR + 0x01C4) 195 #define RKISPP_NR_YNR_HSTV_Y_4_5 (RKISPP_NR + 0x01C8) 196 #define RKISPP_NR_YNR_HSTV_Y_6_7 (RKISPP_NR + 0x01CC) 197 #define RKISPP_NR_YNR_HSTV_Y_8_9 (RKISPP_NR + 0x01D0) 198 #define RKISPP_NR_YNR_HSTV_Y_10_11 (RKISPP_NR + 0x01D4) 199 #define RKISPP_NR_YNR_HSTV_Y_12_13 (RKISPP_NR + 0x01D8) 200 #define RKISPP_NR_YNR_HSTV_Y_14_15 (RKISPP_NR + 0x01DC) 201 #define RKISPP_NR_YNR_HSTV_Y_16 (RKISPP_NR + 0x01E0) 202 #define RKISPP_NR_YNR_ST_SCALE_LV1_LV2 (RKISPP_NR + 0x01E4) 203 #define RKISPP_NR_YNR_ST_SCALE_LV3 (RKISPP_NR + 0x01E8) 204 #define RKISPP_NR_BLOCK_CNT (RKISPP_NR + 0x01f0) 205 #define RKISPP_NR_BUFFER_READY (RKISPP_NR + 0x01f4) 206 207 #define RKISPP_SHARP 0x0600 208 #define RKISPP_SHARP_CTRL (RKISPP_SHARP + 0x0000) 209 #define RKISPP_SHARP_WR_VIR_STRIDE (RKISPP_SHARP + 0x0004) 210 #define RKISPP_SHARP_WR_Y_BASE (RKISPP_SHARP + 0x0008) 211 #define RKISPP_SHARP_WR_UV_BASE (RKISPP_SHARP + 0x000C) 212 #define RKISPP_SHARP_SC_DOWN (RKISPP_SHARP + 0x0010) 213 #define RKISPP_SHARP_TMP_YUV_BASE (RKISPP_SHARP + 0x0014) 214 #define RKISPP_SHARP_WR_Y_BASE_SHD (RKISPP_SHARP + 0x0024) 215 #define RKISPP_SHARP_WR_UV_BASE_SHD (RKISPP_SHARP + 0x0028) 216 #define RKISPP_SHARP_TILE_IDX (RKISPP_SHARP + 0x0030) 217 #define RKISPP_SHARP_CORE_CTRL (RKISPP_SHARP + 0x0080) 218 #define RKISPP_SHARP_HBF_FACTOR (RKISPP_SHARP + 0x0084) 219 #define RKISPP_SHARP_EDGE_TH (RKISPP_SHARP + 0x0088) 220 #define RKISPP_SHARP_EDGE_ALPHA (RKISPP_SHARP + 0x008C) 221 #define RKISPP_SHARP_PBF_KERNEL (RKISPP_SHARP + 0x0090) 222 #define RKISPP_SHARP_MRF_KERNEL0 (RKISPP_SHARP + 0x0094) 223 #define RKISPP_SHARP_MRF_KERNEL1 (RKISPP_SHARP + 0x0098) 224 #define RKISPP_SHARP_MBF_KERNEL0 (RKISPP_SHARP + 0x009C) 225 #define RKISPP_SHARP_MBF_KERNEL1 (RKISPP_SHARP + 0x00A0) 226 #define RKISPP_SHARP_MBF_KERNEL2 (RKISPP_SHARP + 0x00A4) 227 #define RKISPP_SHARP_HRF_KERNEL0 (RKISPP_SHARP + 0x00A8) 228 #define RKISPP_SHARP_HRF_KERNEL1 (RKISPP_SHARP + 0x00AC) 229 #define RKISPP_SHARP_HBF_KERNEL (RKISPP_SHARP + 0x00B0) 230 #define RKISPP_SHARP_EDGE_COEF (RKISPP_SHARP + 0x00B4) 231 #define RKISPP_SHARP_EDGE_SMOTH (RKISPP_SHARP + 0x00B8) 232 #define RKISPP_SHARP_EDGE_GAUS0 (RKISPP_SHARP + 0x00BC) 233 #define RKISPP_SHARP_EDGE_GAUS1 (RKISPP_SHARP + 0x00C0) 234 #define RKISPP_SHARP_DOG_KERNEL0 (RKISPP_SHARP + 0x00C4) 235 #define RKISPP_SHARP_DOG_KERNEL1 (RKISPP_SHARP + 0x00C8) 236 #define RKISPP_SHARP_LUM_POINT0 (RKISPP_SHARP + 0x00CC) 237 #define RKISPP_SHARP_LUM_POINT1 (RKISPP_SHARP + 0x00D0) 238 #define RKISPP_SHARP_SHF_BITS (RKISPP_SHARP + 0x00D4) 239 #define RKISPP_SHARP_PBF_SIGMA_INV0 (RKISPP_SHARP + 0x00D8) 240 #define RKISPP_SHARP_PBF_SIGMA_INV1 (RKISPP_SHARP + 0x00DC) 241 #define RKISPP_SHARP_LUM_CLP_M0 (RKISPP_SHARP + 0x00E0) 242 #define RKISPP_SHARP_LUM_CLP_M1 (RKISPP_SHARP + 0x00E4) 243 #define RKISPP_SHARP_LUM_MIN_M0 (RKISPP_SHARP + 0x00E8) 244 #define RKISPP_SHARP_LUM_MIN_M1 (RKISPP_SHARP + 0x00EC) 245 #define RKISPP_SHARP_MBF_SIGMA_INV0 (RKISPP_SHARP + 0x00F0) 246 #define RKISPP_SHARP_MBF_SIGMA_INV1 (RKISPP_SHARP + 0x00F4) 247 #define RKISPP_SHARP_LUM_CLP_H0 (RKISPP_SHARP + 0x00F8) 248 #define RKISPP_SHARP_LUM_CLP_H1 (RKISPP_SHARP + 0x00FC) 249 #define RKISPP_SHARP_HBF_SIGMA_INV0 (RKISPP_SHARP + 0x0100) 250 #define RKISPP_SHARP_HBF_SIGMA_INV1 (RKISPP_SHARP + 0x0104) 251 #define RKISPP_SHARP_EDGE_LUM_THED0 (RKISPP_SHARP + 0x0108) 252 #define RKISPP_SHARP_EDGE_LUM_THED1 (RKISPP_SHARP + 0x010C) 253 #define RKISPP_SHARP_CLAMP_POS_DOG0 (RKISPP_SHARP + 0x0110) 254 #define RKISPP_SHARP_CLAMP_POS_DOG1 (RKISPP_SHARP + 0x0114) 255 #define RKISPP_SHARP_CLAMP_NEG_DOG0 (RKISPP_SHARP + 0x0118) 256 #define RKISPP_SHARP_CLAMP_NEG_DOG1 (RKISPP_SHARP + 0x011C) 257 #define RKISPP_SHARP_DETAIL_ALPHA_DOG0 (RKISPP_SHARP + 0x0120) 258 #define RKISPP_SHARP_DETAIL_ALPHA_DOG1 (RKISPP_SHARP + 0x0124) 259 #define RKISPP_SHARP_RF_RATIO (RKISPP_SHARP + 0x0128) 260 #define RKISPP_SHARP_GRAD_RATIO (RKISPP_SHARP + 0x012C) 261 262 #define RKISPP_SCL0 0x0800 263 #define RKISPP_SCL0_CTRL (RKISPP_SCL0 + 0x0000) 264 #define RKISPP_SCL0_CUR_VIR_STRIDE (RKISPP_SCL0 + 0x0004) 265 #define RKISPP_SCL0_CUR_Y_BASE (RKISPP_SCL0 + 0x0008) 266 #define RKISPP_SCL0_CUR_UV_BASE (RKISPP_SCL0 + 0x000C) 267 #define RKISPP_SCL0_CUR_Y_BASE_SHD (RKISPP_SCL0 + 0x0010) 268 #define RKISPP_SCL0_CUR_UV_BASE_SHD (RKISPP_SCL0 + 0x0014) 269 #define RKISPP_SCL0_FACTOR (RKISPP_SCL0 + 0x0018) 270 271 #define RKISPP_SCL1 0x0900 272 #define RKISPP_SCL1_CTRL (RKISPP_SCL1 + 0x0000) 273 #define RKISPP_SCL1_CUR_VIR_STRIDE (RKISPP_SCL1 + 0x0004) 274 #define RKISPP_SCL1_CUR_Y_BASE (RKISPP_SCL1 + 0x0008) 275 #define RKISPP_SCL1_CUR_UV_BASE (RKISPP_SCL1 + 0x000C) 276 #define RKISPP_SCL1_CUR_Y_BASE_SHD (RKISPP_SCL1 + 0x0010) 277 #define RKISPP_SCL1_CUR_UV_BASE_SHD (RKISPP_SCL1 + 0x0014) 278 #define RKISPP_SCL1_FACTOR (RKISPP_SCL1 + 0x0018) 279 280 #define RKISPP_SCL2 0x0A00 281 #define RKISPP_SCL2_CTRL (RKISPP_SCL2 + 0x0000) 282 #define RKISPP_SCL2_CUR_VIR_STRIDE (RKISPP_SCL2 + 0x0004) 283 #define RKISPP_SCL2_CUR_Y_BASE (RKISPP_SCL2 + 0x0008) 284 #define RKISPP_SCL2_CUR_UV_BASE (RKISPP_SCL2 + 0x000C) 285 #define RKISPP_SCL2_CUR_Y_BASE_SHD (RKISPP_SCL2 + 0x0010) 286 #define RKISPP_SCL2_CUR_UV_BASE_SHD (RKISPP_SCL2 + 0x0014) 287 #define RKISPP_SCL2_FACTOR (RKISPP_SCL2 + 0x0018) 288 289 #define RKISPP_ORB 0x0B00 290 #define RKISPP_ORB_WR_BASE (RKISPP_ORB + 0x0004) 291 #define RKISPP_ORB_WR_BASE_SHD (RKISPP_ORB + 0x0008) 292 #define RKISPP_ORB_TOTAL_NUM (RKISPP_ORB + 0x000c) 293 #define RKISPP_ORB_CORE_CTRL (RKISPP_ORB + 0x0080) 294 #define RKISPP_ORB_LIMIT_VALUE (RKISPP_ORB + 0x0084) 295 #define RKISPP_ORB_MAX_FEATURE (RKISPP_ORB + 0x0088) 296 297 #define RKISPP_FEC 0x0C00 298 #define RKISPP_FEC_CTRL (RKISPP_FEC + 0x0000) 299 #define RKISPP_FEC_RD_VIR_STRIDE (RKISPP_FEC + 0x0004) 300 #define RKISPP_FEC_RD_Y_BASE (RKISPP_FEC + 0x0008) 301 #define RKISPP_FEC_RD_UV_BASE (RKISPP_FEC + 0x000C) 302 #define RKISPP_FEC_MESH_XINT_BASE (RKISPP_FEC + 0x0010) 303 #define RKISPP_FEC_MESH_XFRA_BASE (RKISPP_FEC + 0x0014) 304 #define RKISPP_FEC_MESH_YINT_BASE (RKISPP_FEC + 0x0018) 305 #define RKISPP_FEC_MESH_YFRA_BASE (RKISPP_FEC + 0x001C) 306 #define RKISPP_FEC_WR_VIR_STRIDE (RKISPP_FEC + 0x0020) 307 #define RKISPP_FEC_WR_Y_BASE (RKISPP_FEC + 0x0024) 308 #define RKISPP_FEC_WR_UV_BASE (RKISPP_FEC + 0x0028) 309 #define RKISPP_FEC_RD_Y_BASE_SHD (RKISPP_FEC + 0x002C) 310 #define RKISPP_FEC_RD_UV_BASE_SHD (RKISPP_FEC + 0x0030) 311 #define RKISPP_FEC_MESH_XINT_BASE_SHD (RKISPP_FEC + 0x0034) 312 #define RKISPP_FEC_MESH_XFRA_BASE_SHD (RKISPP_FEC + 0x0038) 313 #define RKISPP_FEC_MESH_YINT_BASE_SHD (RKISPP_FEC + 0x003C) 314 #define RKISPP_FEC_MESH_YFRA_BASE_SHD (RKISPP_FEC + 0x0040) 315 #define RKISPP_FEC_WR_Y_BASE_SHD (RKISPP_FEC + 0x0044) 316 #define RKISPP_FEC_WR_UV_BASE_SHD (RKISPP_FEC + 0x0048) 317 #define RKISPP_FEC_FBCE_HEAD_OFFSET (RKISPP_FEC + 0x0050) 318 #define RKISPP_FEC_CORE_CTRL (RKISPP_FEC + 0x0080) 319 #define RKISPP_FEC_PIC_SIZE (RKISPP_FEC + 0x0088) 320 #define RKISPP_FEC_DST_SIZE (RKISPP_FEC + 0x0088) 321 #define RKISPP_FEC_MESH_SIZE (RKISPP_FEC + 0x008C) 322 #define RKISPP_FEC_DMA_STATUS (RKISPP_FEC + 0x0090) 323 #define RKISPP_FEC_CROP (RKISPP_FEC + 0x0094) 324 #define RKISPP_FEC_SRC_SIZE (RKISPP_FEC + 0x0098) 325 326 #define FMT_WR_MASK GENMASK(7, 4) 327 #define FMT_RD_MASK GENMASK(3, 0) 328 #define FMT_YUV420 0 329 #define FMT_YC_SWAP BIT(3) 330 #define FMT_YUYV BIT(2) 331 #define FMT_YUV422 BIT(1) 332 #define FMT_FBC BIT(0) 333 334 #define NR_NEW_ALGO BIT(16) 335 336 /* ISPP_STRT */ 337 #define FEC_ST BIT(2) 338 #define NR_SHP_ST BIT(1) 339 #define TNR_ST BIT(0) 340 341 /* ISPP_UPDATE */ 342 #define ALL_FORCE_UPD (FEC_FORCE_UPD | TNR_FORCE_UPD | OTHER_FORCE_UPD) 343 #define FEC_FORCE_UPD BIT(2) 344 #define TNR_FORCE_UPD BIT(1) 345 #define OTHER_FORCE_UPD BIT(0) 346 347 /* ISPP_CTRL_QUICK */ 348 #define GLB_QUICK_MODE_MASK GENMASK(9, 8) 349 #define SW_PP_FBC_MODE_DIS BIT(30) 350 #define SW_PP_MMU_PLUS_DIS BIT(29) 351 #define SW_PP2ISP_HOLD_SEL BIT(28) 352 #define GLB_FEC2SCL_EN BIT(11) 353 #define GLB_NR_SD32_TNR BIT(10) 354 #define GLB_QUICK_MODE(a) (((a) & 0x3) << 8) 355 #define GLB_NOC_HURRY(a) (((a) & 0x3) << 4) 356 #define GLB_TNR_RDY_DIS BIT(3) 357 #define GLB_TNR2NR_RDY_MODE BIT(2) 358 #define GLB_DIRECT_MODE BIT(1) 359 #define GLB_QUICK_EN BIT(0) 360 361 /* ISPP_CTRL_RESET */ 362 #define FBCD_ERR_PROTECT_DIS BIT(12) 363 #define GLB_SOFT_RST_SCL BIT(11) 364 #define GLB_SOFT_RST_SHP BIT(10) 365 #define GLB_SOFT_RST_NR BIT(9) 366 #define GLB_SOFT_RST_TNR BIT(8) 367 #define RST_PROTECT_DIS BIT(1) 368 #define GLB_SOFT_RST_ALL BIT(0) 369 370 /* ISPP_CLKGATE */ 371 #define GATE_DIS_ALL 0xff 372 #define GATE_DIS_GLOBAL_RAM_CLK BIT(7) 373 #define GATE_DIS_SWS BIT(6) 374 #define GATE_DIS_FEC BIT(5) 375 #define GATE_DIS_SCL BIT(4) 376 #define GATE_DIS_SHP BIT(3) 377 #define GATE_DIS_NR BIT(2) 378 #define GATE_DIS_TNR BIT(1) 379 #define GATE_DIS_GLB BIT(0) 380 381 /* INT_MASK INT_RAW_STA INT_STA INT_SET INT_CLR */ 382 #define INT_FRAME(stream) \ 383 ((stream)->config->frame_end_id) 384 #define NR_LOST_ERR BIT(26) 385 #define TNR_LOST_ERR BIT(25) 386 #define UVNR_MONITOR_ERR BIT(24) 387 #define FBCH_EMPTY_NR BIT(23) 388 #define FBCH_EMPTY_TNR BIT(22) 389 #define FBCD_DEC_ERR_NR BIT(21) 390 #define FBCD_DEC_ERR_TNR BIT(20) 391 #define BUS_ERR_NR BIT(17) 392 #define BUS_ERR_TNR BIT(16) 393 #define CMD_NR_SHP_ST_DONE BIT(12) 394 #define CMD_TNR_ST_DONE BIT(11) 395 #define SCL2_INT BIT(10) 396 #define SCL1_INT BIT(9) 397 #define SCL0_INT BIT(8) 398 #define FEC_INT BIT(7) 399 #define ORB_INT BIT(6) 400 #define SHP_INT BIT(4) 401 #define NR_INT BIT(3) 402 #define TNR_INT BIT(2) 403 #define FRAME_INT BIT(1) 404 #define QUICK_INT BIT(0) 405 406 /* ISPP_QUICK_DIF */ 407 #define GLB_TNR2NR_DIF(a) (((a) & 0xff) << 16) 408 #define GLB_ISP2NR_DIF(a) (((a) & 0xff) << 8) 409 #define GLB_NR2FEC_DIF(a) ((a) & 0xff) 410 411 /* SYS_STATUS */ 412 #define TNR_WORKING BIT(0) 413 #define NR_WORKING BIT(1) 414 #define SHP_WORKING BIT(2) 415 #define ORB_WORKING BIT(3) 416 #define SCL0_WORKING BIT(4) 417 #define SCL1_WORKING BIT(5) 418 #define SCL2_WORKING BIT(6) 419 #define FEC_WORKING BIT(7) 420 421 /* SYS_CTL_STA0 */ 422 #define TNR_TILE_LINE_CNT_MASK GENMASK(6, 0) 423 #define NR_TILE_LINE_CNT_MASK GENMASK(14, 8) 424 #define FEC_TILE_LINE_CNT_MASK GENMASK(22, 16) 425 426 /* TNR CTRL */ 427 #define SW_TNR_WR_FORMAT_MASK GENMASK(7, 4) 428 #define SW_TNR_RD_FORMAT_MASK GENMASK(3, 0) 429 #define SW_TNR_THROUGH_MODE BIT(10) 430 #define SW_TNR_1ST_FRM BIT(9) 431 #define SW_TNR_RD_PINGPONG2TO1 BIT(8) 432 #define SW_TNR_WR_YUYV_YCSWAP BIT(7) 433 #define SW_TNR_WR_YUYV_FORMAT BIT(6) 434 #define SW_TNR_WR_YUV_FORMAT BIT(5) 435 #define SW_TNR_WR_FBCE_MODE BIT(4) 436 #define SW_TNR_RD_YUYV_YCSWAP BIT(3) 437 #define SW_TNR_RD_YUYV_FORMAT BIT(2) 438 #define SW_TNR_RD_YUV_FORMAT BIT(1) 439 #define SW_TNR_FBCD_MODE BIT(0) 440 441 /* CORE_CTRL */ 442 #define SW_TNR_GLB_GAIN_EN_SHD BIT(28) 443 #define SW_TNR_OPTC_EN_SHD BIT(27) 444 #define SW_TNR_OPTY_EN_SHD BIT(26) 445 #define SW_TNR_MODE_SHD BIT(25) 446 #define SW_TNR_EN_SHD BIT(24) 447 #define SW_TNR_GLB_GAIN_EN BIT(4) 448 #define SW_TNR_OPTC_EN BIT(3) 449 #define SW_TNR_OPTY_EN BIT(2) 450 #define SW_TNR_MODE BIT(1) 451 #define SW_TNR_EN BIT(0) 452 453 /* NR CTRL */ 454 #define SW_NR_RD_FBCD_READ_MODE BIT(31) 455 #define SW_NR_NEW_ALGORITHM BIT(16) 456 #define SW_UVNR_1ST_FRM_SELF_MODE BIT(10) 457 #define SW_UVNR_1ST_FRM_SELF BIT(9) 458 #define SW_NR_RD_YUYV_YCSWAP BIT(3) 459 #define SW_NR_RD_YUYV_FORMAT BIT(2) 460 #define SW_NR_RD_YUV_FORMAT BIT(1) 461 #define SW_NR_RD_FBCD_MODE BIT(0) 462 463 /* NR_CTRL_PARA */ 464 #define SW_UVNR_BIG_EN BIT(6) 465 #define SW_UVNR_NOBIG_EN BIT(5) 466 #define SW_UVNR_SD32_SELF_EN BIT(4) 467 #define SW_NR_GAIN_BYPASS BIT(3) 468 #define SW_UVNR_STEP2_ON BIT(2) 469 #define SW_UVNR_STEP1_ON BIT(1) 470 #define SW_NR_EN BIT(0) 471 472 /* SHP CTRL*/ 473 #define SW_SHP_WR_FORMAT_MASK GENMASK(3, 0) 474 #define SW_SHP_WR_ROT_MODE(a) (((a) & 0x3) << 5) 475 #define SW_SHP_WR_YUV_LIMIT BIT(4) 476 #define SW_SHP_WR_YUYV_YCSWAP BIT(3) 477 #define SW_SHP_WR_YUYV_FORMAT BIT(2) 478 #define SW_SHP_WR_YUY_FORMAT BIT(1) 479 #define SW_SHP_WR_FBCE_MODE BIT(0) 480 481 /* CORE_CTRL */ 482 #define SW_SHP_EDGE_AVG_EN BIT(4) 483 #define SW_SHP_YIN_FLT_EN BIT(3) 484 #define SW_SHP_DMA_DIS BIT(2) 485 #define SW_SHP_ALPHA_ADP_EN BIT(1) 486 #define SW_SHP_EN BIT(0) 487 488 /* SCL_CTRL */ 489 #define SW_SCL_BYPASS_SHD BIT(31) 490 #define SW_SCL_ENABLE_SHD BIT(30) 491 #define SW_SCL_RAM_CLK_ON BIT(8) 492 #define SW_SCL_WR_YUV_LIMIT BIT(7) 493 #define SW_SCL_WR_YUYV_YCSWAP BIT(6) 494 #define SW_SCL_WR_YUYV_FORMAT BIT(5) 495 #define SW_SCL_WR_YUV_FORMAT BIT(4) 496 #define SW_SCL_WR_UV_DIS BIT(3) 497 #define SW_SCL_FIRST_MODE BIT(2) 498 #define SW_SCL_BYPASS BIT(1) 499 #define SW_SCL_ENABLE BIT(0) 500 501 /* FEC_CTRL*/ 502 #define SW_FEC_WR_YUV_LIMIT BIT(8) 503 #define SW_FEC_WR_YUYV_YC_SWAP BIT(7) 504 #define SW_FEC_WR_YUYV_FORMAT BIT(6) 505 #define SW_FEC_WR_YUV_FORMAT BIT(5) 506 #define SW_FEC_WR_FBCE_MODE BIT(4) 507 #define SW_FEC_RD_YUYV_YCSWAP BIT(3) 508 #define SW_FEC_RD_YUYV_FORMAT BIT(2) 509 #define SW_FEC_RD_YUV_FORMAT BIT(1) 510 511 /* FEC_CORE_CTRL */ 512 #define SW_FEC_EN_SHD BIT(31) 513 #define SW_OFFSET_ENABLE BIT(31) 514 #define SW_MINBUF_NON_UPDATE_SHD BIT(30) 515 #define SW_MINBUF_NON_UPDATE BIT(6) 516 #define SW_MESH_DENSITY BIT(5) 517 #define SW_BIC_MODE GENMASK(4, 3) 518 #define SW_FEC2DDR_DIS BIT(1) 519 #define SW_FEC_EN BIT(0) 520 521 /* ORB_CORE_CTRL */ 522 #define SW_ORB_EN BIT(0) 523 524 #endif /* _RKISPP_REGS_H */ 525