Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Copyright (c) 2011-2013 MaxLinear, Inc. All rights reserved
0004  *
0005  * This program may alternatively be licensed under a proprietary license from
0006  * MaxLinear, Inc.
0007  *
0008  */
0009 
0010 #ifndef __MXL58X_REGISTERS_H__
0011 #define __MXL58X_REGISTERS_H__
0012 
0013 #define HYDRA_INTR_STATUS_REG               0x80030008
0014 #define HYDRA_INTR_MASK_REG                 0x8003000C
0015 
0016 #define HYDRA_CRYSTAL_SETTING               0x3FFFC5F0 /* 0 - 24 MHz & 1 - 27 MHz */
0017 #define HYDRA_CRYSTAL_CAP                   0x3FFFEDA4 /* 0 - 24 MHz & 1 - 27 MHz */
0018 
0019 #define HYDRA_CPU_RESET_REG                 0x8003003C
0020 #define HYDRA_CPU_RESET_DATA                0x00000400
0021 
0022 #define HYDRA_RESET_TRANSPORT_FIFO_REG      0x80030028
0023 #define HYDRA_RESET_TRANSPORT_FIFO_DATA     0x00000000
0024 
0025 #define HYDRA_RESET_BBAND_REG               0x80030024
0026 #define HYDRA_RESET_BBAND_DATA              0x00000000
0027 
0028 #define HYDRA_RESET_XBAR_REG                0x80030020
0029 #define HYDRA_RESET_XBAR_DATA               0x00000000
0030 
0031 #define HYDRA_MODULES_CLK_1_REG             0x80030014
0032 #define HYDRA_DISABLE_CLK_1                 0x00000000
0033 
0034 #define HYDRA_MODULES_CLK_2_REG             0x8003001C
0035 #define HYDRA_DISABLE_CLK_2                 0x0000000B
0036 
0037 #define HYDRA_PRCM_ROOT_CLK_REG             0x80030018
0038 #define HYDRA_PRCM_ROOT_CLK_DISABLE         0x00000000
0039 
0040 #define HYDRA_CPU_RESET_CHECK_REG           0x80030008
0041 #define HYDRA_CPU_RESET_CHECK_OFFSET        0x40000000  /* <bit 30> */
0042 
0043 #define HYDRA_SKU_ID_REG                    0x90000190
0044 
0045 #define FW_DL_SIGN_ADDR                     0x3FFFEAE0
0046 
0047 /* Register to check if FW is running or not */
0048 #define HYDRA_HEAR_BEAT                     0x3FFFEDDC
0049 
0050 /* Firmware version */
0051 #define HYDRA_FIRMWARE_VERSION              0x3FFFEDB8
0052 #define HYDRA_FW_RC_VERSION                 0x3FFFCFAC
0053 
0054 /* Firmware patch version */
0055 #define HYDRA_FIRMWARE_PATCH_VERSION        0x3FFFEDC2
0056 
0057 /* SOC operating temperature in C */
0058 #define HYDRA_TEMPARATURE                   0x3FFFEDB4
0059 
0060 /* Demod & Tuner status registers */
0061 /* Demod 0 status base address */
0062 #define HYDRA_DEMOD_0_BASE_ADDR             0x3FFFC64C
0063 
0064 /* Tuner 0 status base address */
0065 #define HYDRA_TUNER_0_BASE_ADDR             0x3FFFCE4C
0066 
0067 #define POWER_FROM_ADCRSSI_READBACK         0x3FFFEB6C
0068 
0069 /* Macros to determine base address of respective demod or tuner */
0070 #define HYDRA_DMD_STATUS_OFFSET(demodID)        ((demodID) * 0x100)
0071 #define HYDRA_TUNER_STATUS_OFFSET(tunerID)      ((tunerID) * 0x40)
0072 
0073 /* Demod status address offset from respective demod's base address */
0074 #define HYDRA_DMD_AGC_DIG_LEVEL_ADDR_OFFSET               0x3FFFC64C
0075 #define HYDRA_DMD_LOCK_STATUS_ADDR_OFFSET                 0x3FFFC650
0076 #define HYDRA_DMD_ACQ_STATUS_ADDR_OFFSET                  0x3FFFC654
0077 
0078 #define HYDRA_DMD_STANDARD_ADDR_OFFSET                    0x3FFFC658
0079 #define HYDRA_DMD_SPECTRUM_INVERSION_ADDR_OFFSET          0x3FFFC65C
0080 #define HYDRA_DMD_SPECTRUM_ROLL_OFF_ADDR_OFFSET           0x3FFFC660
0081 #define HYDRA_DMD_SYMBOL_RATE_ADDR_OFFSET                 0x3FFFC664
0082 #define HYDRA_DMD_MODULATION_SCHEME_ADDR_OFFSET           0x3FFFC668
0083 #define HYDRA_DMD_FEC_CODE_RATE_ADDR_OFFSET               0x3FFFC66C
0084 
0085 #define HYDRA_DMD_SNR_ADDR_OFFSET                         0x3FFFC670
0086 #define HYDRA_DMD_FREQ_OFFSET_ADDR_OFFSET                 0x3FFFC674
0087 #define HYDRA_DMD_CTL_FREQ_OFFSET_ADDR_OFFSET             0x3FFFC678
0088 #define HYDRA_DMD_STR_FREQ_OFFSET_ADDR_OFFSET             0x3FFFC67C
0089 #define HYDRA_DMD_FTL_FREQ_OFFSET_ADDR_OFFSET             0x3FFFC680
0090 #define HYDRA_DMD_STR_NBC_SYNC_LOCK_ADDR_OFFSET           0x3FFFC684
0091 #define HYDRA_DMD_CYCLE_SLIP_COUNT_ADDR_OFFSET            0x3FFFC688
0092 
0093 #define HYDRA_DMD_DISPLAY_I_ADDR_OFFSET                   0x3FFFC68C
0094 #define HYDRA_DMD_DISPLAY_Q_ADDR_OFFSET                   0x3FFFC68E
0095 
0096 #define HYDRA_DMD_DVBS2_CRC_ERRORS_ADDR_OFFSET            0x3FFFC690
0097 #define HYDRA_DMD_DVBS2_PER_COUNT_ADDR_OFFSET             0x3FFFC694
0098 #define HYDRA_DMD_DVBS2_PER_WINDOW_ADDR_OFFSET            0x3FFFC698
0099 
0100 #define HYDRA_DMD_DVBS_CORR_RS_ERRORS_ADDR_OFFSET         0x3FFFC69C
0101 #define HYDRA_DMD_DVBS_UNCORR_RS_ERRORS_ADDR_OFFSET       0x3FFFC6A0
0102 #define HYDRA_DMD_DVBS_BER_COUNT_ADDR_OFFSET              0x3FFFC6A4
0103 #define HYDRA_DMD_DVBS_BER_WINDOW_ADDR_OFFSET             0x3FFFC6A8
0104 
0105 /* Debug-purpose DVB-S DMD 0 */
0106 #define HYDRA_DMD_DVBS_1ST_CORR_RS_ERRORS_ADDR_OFFSET     0x3FFFC6C8  /* corrected RS Errors: 1st iteration */
0107 #define HYDRA_DMD_DVBS_1ST_UNCORR_RS_ERRORS_ADDR_OFFSET   0x3FFFC6CC  /* uncorrected RS Errors: 1st iteration */
0108 #define HYDRA_DMD_DVBS_BER_COUNT_1ST_ADDR_OFFSET          0x3FFFC6D0
0109 #define HYDRA_DMD_DVBS_BER_WINDOW_1ST_ADDR_OFFSET         0x3FFFC6D4
0110 
0111 #define HYDRA_DMD_TUNER_ID_ADDR_OFFSET                    0x3FFFC6AC
0112 #define HYDRA_DMD_DVBS2_PILOT_ON_OFF_ADDR_OFFSET          0x3FFFC6B0
0113 #define HYDRA_DMD_FREQ_SEARCH_RANGE_KHZ_ADDR_OFFSET       0x3FFFC6B4
0114 #define HYDRA_DMD_STATUS_LOCK_ADDR_OFFSET                 0x3FFFC6B8
0115 #define HYDRA_DMD_STATUS_CENTER_FREQ_IN_KHZ_ADDR          0x3FFFC704
0116 #define HYDRA_DMD_STATUS_INPUT_POWER_ADDR                 0x3FFFC708
0117 
0118 /* DVB-S new scaled_BER_count for a new BER API, see HYDRA-1343 "DVB-S post viterbi information" */
0119 #define DMD0_STATUS_DVBS_1ST_SCALED_BER_COUNT_ADDR        0x3FFFC710 /* DMD 0: 1st iteration BER count scaled by HYDRA_BER_COUNT_SCALING_FACTOR */
0120 #define DMD0_STATUS_DVBS_SCALED_BER_COUNT_ADDR            0x3FFFC714 /* DMD 0: 2nd iteration BER count scaled by HYDRA_BER_COUNT_SCALING_FACTOR */
0121 
0122 #define DMD0_SPECTRUM_MIN_GAIN_STATUS                     0x3FFFC73C
0123 #define DMD0_SPECTRUM_MIN_GAIN_WB_SAGC_VALUE              0x3FFFC740
0124 #define DMD0_SPECTRUM_MIN_GAIN_NB_SAGC_VALUE              0x3FFFC744
0125 
0126 #define HYDRA_DMD_STATUS_END_ADDR_OFFSET                  0x3FFFC748
0127 
0128 /* Tuner status address offset from respective tuners's base address */
0129 #define HYDRA_TUNER_DEMOD_ID_ADDR_OFFSET                  0x3FFFCE4C
0130 #define HYDRA_TUNER_AGC_LOCK_OFFSET                       0x3FFFCE50
0131 #define HYDRA_TUNER_SPECTRUM_STATUS_OFFSET                0x3FFFCE54
0132 #define HYDRA_TUNER_SPECTRUM_BIN_SIZE_OFFSET              0x3FFFCE58
0133 #define HYDRA_TUNER_SPECTRUM_ADDRESS_OFFSET               0x3FFFCE5C
0134 #define HYDRA_TUNER_ENABLE_COMPLETE                       0x3FFFEB78
0135 
0136 #define HYDRA_DEMOD_STATUS_LOCK(devId, demodId)   write_register(devId, (HYDRA_DMD_STATUS_LOCK_ADDR_OFFSET + HYDRA_DMD_STATUS_OFFSET(demodId)), MXL_YES)
0137 #define HYDRA_DEMOD_STATUS_UNLOCK(devId, demodId) write_register(devId, (HYDRA_DMD_STATUS_LOCK_ADDR_OFFSET + HYDRA_DMD_STATUS_OFFSET(demodId)), MXL_NO)
0138 
0139 #define HYDRA_VERSION                                     0x3FFFEDB8
0140 #define HYDRA_DEMOD0_VERSION                              0x3FFFEDBC
0141 #define HYDRA_DEMOD1_VERSION                              0x3FFFEDC0
0142 #define HYDRA_DEMOD2_VERSION                              0x3FFFEDC4
0143 #define HYDRA_DEMOD3_VERSION                              0x3FFFEDC8
0144 #define HYDRA_DEMOD4_VERSION                              0x3FFFEDCC
0145 #define HYDRA_DEMOD5_VERSION                              0x3FFFEDD0
0146 #define HYDRA_DEMOD6_VERSION                              0x3FFFEDD4
0147 #define HYDRA_DEMOD7_VERSION                              0x3FFFEDD8
0148 #define HYDRA_HEAR_BEAT                                   0x3FFFEDDC
0149 #define HYDRA_SKU_MGMT                                    0x3FFFEBC0
0150 
0151 #define MXL_HYDRA_FPGA_A_ADDRESS                          0x91C00000
0152 #define MXL_HYDRA_FPGA_B_ADDRESS                          0x91D00000
0153 
0154 /* TS control base address */
0155 #define HYDRA_TS_CTRL_BASE_ADDR                           0x90700000
0156 
0157 #define MPEG_MUX_MODE_SLICE0_REG            (HYDRA_TS_CTRL_BASE_ADDR + 0x08)
0158 
0159 #define MPEG_MUX_MODE_SLICE1_REG            (HYDRA_TS_CTRL_BASE_ADDR + 0x08)
0160 
0161 #define PID_BANK_SEL_SLICE0_REG             (HYDRA_TS_CTRL_BASE_ADDR + 0x190)
0162 #define PID_BANK_SEL_SLICE1_REG             (HYDRA_TS_CTRL_BASE_ADDR + 0x1B0)
0163 
0164 #define MPEG_CLK_GATED_REG                  (HYDRA_TS_CTRL_BASE_ADDR + 0x20)
0165 
0166 #define MPEG_CLK_ALWAYS_ON_REG              (HYDRA_TS_CTRL_BASE_ADDR + 0x1D4)
0167 
0168 #define HYDRA_REGULAR_PID_BANK_A_REG        (HYDRA_TS_CTRL_BASE_ADDR + 0x190)
0169 
0170 #define HYDRA_FIXED_PID_BANK_A_REG          (HYDRA_TS_CTRL_BASE_ADDR + 0x190)
0171 
0172 #define HYDRA_REGULAR_PID_BANK_B_REG        (HYDRA_TS_CTRL_BASE_ADDR + 0x1B0)
0173 
0174 #define HYDRA_FIXED_PID_BANK_B_REG          (HYDRA_TS_CTRL_BASE_ADDR + 0x1B0)
0175 
0176 #define FIXED_PID_TBL_REG_ADDRESS_0         (HYDRA_TS_CTRL_BASE_ADDR + 0x9000)
0177 #define FIXED_PID_TBL_REG_ADDRESS_1         (HYDRA_TS_CTRL_BASE_ADDR + 0x9100)
0178 #define FIXED_PID_TBL_REG_ADDRESS_2         (HYDRA_TS_CTRL_BASE_ADDR + 0x9200)
0179 #define FIXED_PID_TBL_REG_ADDRESS_3         (HYDRA_TS_CTRL_BASE_ADDR + 0x9300)
0180 
0181 #define FIXED_PID_TBL_REG_ADDRESS_4         (HYDRA_TS_CTRL_BASE_ADDR + 0xB000)
0182 #define FIXED_PID_TBL_REG_ADDRESS_5         (HYDRA_TS_CTRL_BASE_ADDR + 0xB100)
0183 #define FIXED_PID_TBL_REG_ADDRESS_6         (HYDRA_TS_CTRL_BASE_ADDR + 0xB200)
0184 #define FIXED_PID_TBL_REG_ADDRESS_7         (HYDRA_TS_CTRL_BASE_ADDR + 0xB300)
0185 
0186 #define REGULAR_PID_TBL_REG_ADDRESS_0       (HYDRA_TS_CTRL_BASE_ADDR + 0x8000)
0187 #define REGULAR_PID_TBL_REG_ADDRESS_1       (HYDRA_TS_CTRL_BASE_ADDR + 0x8200)
0188 #define REGULAR_PID_TBL_REG_ADDRESS_2       (HYDRA_TS_CTRL_BASE_ADDR + 0x8400)
0189 #define REGULAR_PID_TBL_REG_ADDRESS_3       (HYDRA_TS_CTRL_BASE_ADDR + 0x8600)
0190 
0191 #define REGULAR_PID_TBL_REG_ADDRESS_4       (HYDRA_TS_CTRL_BASE_ADDR + 0xA000)
0192 #define REGULAR_PID_TBL_REG_ADDRESS_5       (HYDRA_TS_CTRL_BASE_ADDR + 0xA200)
0193 #define REGULAR_PID_TBL_REG_ADDRESS_6       (HYDRA_TS_CTRL_BASE_ADDR + 0xA400)
0194 #define REGULAR_PID_TBL_REG_ADDRESS_7       (HYDRA_TS_CTRL_BASE_ADDR + 0xA600)
0195 
0196 /***************************************************************************/
0197 
0198 #define PAD_MUX_GPIO_00_SYNC_BASEADDR                          0x90000188
0199 
0200 
0201 #define PAD_MUX_UART_RX_C_PINMUX_BASEADDR 0x9000001C
0202 
0203 #define   XPT_PACKET_GAP_MIN_BASEADDR                            0x90700044
0204 #define   XPT_NCO_COUNT_BASEADDR                                 0x90700238
0205 
0206 #define   XPT_NCO_COUNT_BASEADDR1                                0x9070023C
0207 
0208 /* V2 DigRF status register */
0209 
0210 #define   XPT_PID_BASEADDR                                       0x90708000
0211 
0212 #define   XPT_PID_REMAP_BASEADDR                                 0x90708004
0213 
0214 #define   XPT_KNOWN_PID_BASEADDR                                 0x90709000
0215 
0216 #define   XPT_PID_BASEADDR1                                      0x9070A000
0217 
0218 #define   XPT_PID_REMAP_BASEADDR1                                0x9070A004
0219 
0220 #define   XPT_KNOWN_PID_BASEADDR1                                0x9070B000
0221 
0222 #define   XPT_BERT_LOCK_BASEADDR                                 0x907000B8
0223 
0224 #define   XPT_BERT_BASEADDR                                      0x907000BC
0225 
0226 #define   XPT_BERT_INVERT_BASEADDR                               0x907000C0
0227 
0228 #define   XPT_BERT_HEADER_BASEADDR                               0x907000C4
0229 
0230 #define   XPT_BERT_BASEADDR1                                     0x907000C8
0231 
0232 #define   XPT_BERT_BIT_COUNT0_BASEADDR                           0x907000CC
0233 
0234 #define   XPT_BERT_BIT_COUNT0_BASEADDR1                          0x907000D0
0235 
0236 #define   XPT_BERT_BIT_COUNT1_BASEADDR                           0x907000D4
0237 
0238 #define   XPT_BERT_BIT_COUNT1_BASEADDR1                          0x907000D8
0239 
0240 #define   XPT_BERT_BIT_COUNT2_BASEADDR                           0x907000DC
0241 
0242 #define   XPT_BERT_BIT_COUNT2_BASEADDR1                          0x907000E0
0243 
0244 #define   XPT_BERT_BIT_COUNT3_BASEADDR                           0x907000E4
0245 
0246 #define   XPT_BERT_BIT_COUNT3_BASEADDR1                          0x907000E8
0247 
0248 #define   XPT_BERT_BIT_COUNT4_BASEADDR                           0x907000EC
0249 
0250 #define   XPT_BERT_BIT_COUNT4_BASEADDR1                          0x907000F0
0251 
0252 #define   XPT_BERT_BIT_COUNT5_BASEADDR                           0x907000F4
0253 
0254 #define   XPT_BERT_BIT_COUNT5_BASEADDR1                          0x907000F8
0255 
0256 #define   XPT_BERT_BIT_COUNT6_BASEADDR                           0x907000FC
0257 
0258 #define   XPT_BERT_BIT_COUNT6_BASEADDR1                          0x90700100
0259 
0260 #define   XPT_BERT_BIT_COUNT7_BASEADDR                           0x90700104
0261 
0262 #define   XPT_BERT_BIT_COUNT7_BASEADDR1                          0x90700108
0263 
0264 #define   XPT_BERT_ERR_COUNT0_BASEADDR                           0x9070010C
0265 
0266 #define   XPT_BERT_ERR_COUNT0_BASEADDR1                          0x90700110
0267 
0268 #define   XPT_BERT_ERR_COUNT1_BASEADDR                           0x90700114
0269 
0270 #define   XPT_BERT_ERR_COUNT1_BASEADDR1                          0x90700118
0271 
0272 #define   XPT_BERT_ERR_COUNT2_BASEADDR                           0x9070011C
0273 
0274 #define   XPT_BERT_ERR_COUNT2_BASEADDR1                          0x90700120
0275 
0276 #define   XPT_BERT_ERR_COUNT3_BASEADDR                           0x90700124
0277 
0278 #define   XPT_BERT_ERR_COUNT3_BASEADDR1                          0x90700128
0279 
0280 #define   XPT_BERT_ERR_COUNT4_BASEADDR                           0x9070012C
0281 
0282 #define   XPT_BERT_ERR_COUNT4_BASEADDR1                          0x90700130
0283 
0284 #define   XPT_BERT_ERR_COUNT5_BASEADDR                           0x90700134
0285 
0286 #define   XPT_BERT_ERR_COUNT5_BASEADDR1                          0x90700138
0287 
0288 #define   XPT_BERT_ERR_COUNT6_BASEADDR                           0x9070013C
0289 
0290 #define   XPT_BERT_ERR_COUNT6_BASEADDR1                          0x90700140
0291 
0292 #define   XPT_BERT_ERR_COUNT7_BASEADDR                           0x90700144
0293 
0294 #define   XPT_BERT_ERR_COUNT7_BASEADDR1                          0x90700148
0295 
0296 #define   XPT_BERT_ERROR_BASEADDR                                0x9070014C
0297 
0298 #define   XPT_BERT_ANALYZER_BASEADDR                             0x90700150
0299 
0300 #define   XPT_BERT_ANALYZER_BASEADDR1                            0x90700154
0301 
0302 #define   XPT_BERT_ANALYZER_BASEADDR2                            0x90700158
0303 
0304 #define   XPT_BERT_ANALYZER_BASEADDR3                            0x9070015C
0305 
0306 #define   XPT_BERT_ANALYZER_BASEADDR4                            0x90700160
0307 
0308 #define   XPT_BERT_ANALYZER_BASEADDR5                            0x90700164
0309 
0310 #define   XPT_BERT_ANALYZER_BASEADDR6                            0x90700168
0311 
0312 #define   XPT_BERT_ANALYZER_BASEADDR7                            0x9070016C
0313 
0314 #define   XPT_BERT_ANALYZER_BASEADDR8                            0x90700170
0315 
0316 #define   XPT_BERT_ANALYZER_BASEADDR9                            0x90700174
0317 
0318 #define   XPT_DMD0_BASEADDR                                      0x9070024C
0319 
0320 /* V2 AGC Gain Freeze & step */
0321 #define   DBG_ENABLE_DISABLE_AGC                                 (0x3FFFCF60) /* 1: DISABLE, 0:ENABLE */
0322 #define   WB_DFE0_DFE_FB_RF1_BASEADDR                            0x903004A4
0323 
0324 #define   WB_DFE1_DFE_FB_RF1_BASEADDR                            0x904004A4
0325 
0326 #define   WB_DFE2_DFE_FB_RF1_BASEADDR                            0x905004A4
0327 
0328 #define   WB_DFE3_DFE_FB_RF1_BASEADDR                            0x906004A4
0329 
0330 #define   AFE_REG_D2A_TA_RFFE_LNA_BO_1P8_BASEADDR                0x90200104
0331 
0332 #define   AFE_REG_AFE_REG_SPARE_BASEADDR                         0x902000A0
0333 
0334 #define   AFE_REG_AFE_REG_SPARE_BASEADDR1                        0x902000B4
0335 
0336 #define   AFE_REG_AFE_REG_SPARE_BASEADDR2                        0x902000C4
0337 
0338 #define   AFE_REG_AFE_REG_SPARE_BASEADDR3                        0x902000D4
0339 
0340 #define   WB_DFE0_DFE_FB_AGC_BASEADDR                            0x90300498
0341 
0342 #define   WB_DFE1_DFE_FB_AGC_BASEADDR                            0x90400498
0343 
0344 #define   WB_DFE2_DFE_FB_AGC_BASEADDR                            0x90500498
0345 
0346 #define   WB_DFE3_DFE_FB_AGC_BASEADDR                            0x90600498
0347 
0348 #define   WDT_WD_INT_BASEADDR                                    0x8002000C
0349 
0350 #define   FSK_TX_FTM_BASEADDR                                    0x80090000
0351 
0352 #define   FSK_TX_FTM_TX_CNT_BASEADDR                             0x80090018
0353 
0354 #define   AFE_REG_D2A_FSK_BIAS_BASEADDR                          0x90200040
0355 
0356 #define   DMD_TEI_BASEADDR                                       0x3FFFEBE0
0357 
0358 #endif /* __MXL58X_REGISTERS_H__ */