1 /****************************************************************************** 2 * Copyright (c) 2022 Telink Semiconductor (Shanghai) Co., Ltd. ("TELINK") 3 * All rights reserved. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 *****************************************************************************/ 18 19 /******************************************************************************************************** 20 * @file rf_reg.h 21 * 22 * @brief This is the header file for B91 23 * 24 * @author Driver Group 25 * 26 *******************************************************************************************************/ 27 #ifndef RF_REG_H 28 #define RF_REG_H 29 #include "../sys.h" 30 31 ///******************************* RF ******************************/ 32 #define APBADDR 0x140000 33 #define BBADDR APBADDR+0x800 //0x140800 34 #define RADIOADDR APBADDR+0xe00 //0x140e00 35 #define MODEMADDR APBADDR+0xc00 //0x140c00 36 #define CHNADDR 0x100400 37 #define APBRG_BASE 0x140000 38 #define APBRG_APB_BASE (APBRG_BASE+0x0000) 39 40 41 #define REG_TL_RADIO_BASE_ADDR (APBRG_BASE+0x0e00) 42 43 44 #define reg_rf_bb_auto_ctrl REG_ADDR8(0x10050c) 45 46 enum{ 47 FLD_RF_TX_MULTI_EN = BIT(0), 48 FLD_RF_RX_MULTI_EN = BIT(1), 49 FLD_RF_CH_0_RNUM_EN_BK = BIT(2), 50 FLD_RF_CH_1_RNUM_EN_BK = BIT(3), 51 FLD_RF_CH1_RX_ERR_EN = BIT(4), 52 FLD_RF_DMA_REQ_D1_EN = BIT(5), 53 }; 54 #define reg_rf_bb_tx_chn_dep REG_ADDR8(0x1004f3) 55 #define reg_rf_bb_tx_size REG_ADDR8(0x1004f2) 56 57 #define reg_rf_dma_rx_wptr REG_ADDR8(0x001004f4) 58 #define reg_rf_dma_rx_rptr REG_ADDR8(0x001004f5) 59 60 #define reg_rf_dma_tx_rptr(i) REG_ADDR8(0x00100501 + (i << 1)) 61 #define reg_rf_dma_tx_wptr(i) REG_ADDR8(0x00100500 + (i << 1)) 62 63 #define reg_rf_bb_rx_size REG_ADDR8(CHNADDR+0xf6) 64 65 66 67 #define reg_rf_rx_wptr_mask REG_ADDR8(CHNADDR+0x10d) 68 69 70 71 //****************************** RF_Register_list ******************************/ 72 #define REG_BASEBAND_BASE_ADDR 0x0140800 73 74 75 #define reg_rf_tx_mode1 REG_ADDR8(REG_BASEBAND_BASE_ADDR) 76 enum{ 77 FLD_RF_DMA_EN = BIT(0), 78 FLD_RF_CRC_EN = BIT(1), 79 FLD_RF_TX_FMT = BIT_RNG(2,3), 80 FLD_RF_TX_XOR_MODE = BIT(4), 81 FLD_RF_TX_TEST_DATA = BIT(5), 82 FLD_RF_TX_TEST_EN = BIT(6), 83 FLD_RF_BB_DEC = BIT(7), 84 }; 85 86 87 #define reg_rf_tx_mode2 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x01) 88 enum{ 89 FLD_RF_ZB_PN_EN = BIT(0), 90 FLD_RF_RESERVED0 = BIT_RNG(1,2), 91 FLD_RF_V_PN_EN = BIT(3), 92 FLD_RF_RESERVED1 = BIT_RNG(4,5), 93 FLD_RF_TX_OUT_PLR = BIT(6), 94 }; 95 96 97 #define reg_rf_preamble_trail REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x02) 98 enum{ 99 FLD_RF_PREAMBLE_LEN = BIT_RNG(0,4), 100 FLD_RF_TRAILER_LEN = BIT_RNG(5,7), 101 }; 102 103 104 #define reg_rf_bbdbg REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x03) 105 enum{ 106 FLD_RF_SLOW_EN = BIT(0), 107 FLD_RF_SLOW_SEL = BIT(1), 108 FLD_RF_XMODE_EN = BIT(2), 109 FLD_RF_REV_ORDER = BIT(3), 110 FLD_RF_TX_MODE = BIT(4), 111 FLD_RF_R_DBG_SEL0 = BIT(5), 112 FLD_RF_MODEM1M_PAT = BIT(6), 113 FLD_RF_R_DBG_SEL1 = BIT(7), 114 }; 115 116 117 #define reg_rf_format REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x04) 118 enum{ 119 FLD_RF_HEAD_MODE = BIT_RNG(0,1), 120 FLD_RF_CRC_MODE = BIT_RNG(2,3), 121 FLD_RF_BLE_1M = BIT(4), 122 FLD_RF_BLE_WT = BIT(5), 123 FLD_RF_TX_NOACK = BIT(6), 124 FLD_RF_PN_AUTO = BIT(7), 125 }; 126 127 128 //#define reg_rf_acclen REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x05) 129 #define reg_rf_acc_len REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x05) 130 enum{ 131 FLD_RF_ACC_LEN = BIT_RNG(0,2), 132 FLD_RF_LR_TX_SEL = BIT(4), 133 FLD_RF_BLE_LR = BIT(5), 134 }; 135 136 137 138 #define reg_rf_sblen REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x06) 139 140 141 #define reg_rf_rxchn REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x07) 142 enum{ 143 FLD_RF_TEST_TXON = BIT(6), 144 FLD_RF_TEST_TXON_EN = BIT(7), 145 }; 146 147 #define reg_rf_access_code REG_ADDR32(REG_BASEBAND_BASE_ADDR+0x08) 148 #define reg_rf_access_0 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x08) 149 #define reg_rf_access_1 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x09) 150 #define reg_rf_access_2 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x0a) 151 #define reg_rf_access_3 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x0b) 152 #define reg_rf_access_4 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x0c) 153 154 155 #define reg_rf_pn REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x0d) 156 enum{ 157 FLD_RF_PN_INIT = BIT_RNG(0,5), 158 }; 159 160 161 #define reg_rf_access_5 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x10) 162 #define reg_rf_access_6 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x11) 163 #define reg_rf_access_7 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x12) 164 #define reg_rf_access_8 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x13) 165 #define reg_rf_access_9 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x14) 166 #define reg_rf_access_10 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x18) 167 #define reg_rf_access_11 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x19) 168 #define reg_rf_access_12 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x1a) 169 #define reg_rf_access_13 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x1b) 170 #define reg_rf_access_code_base_pipe0 0x140808 171 #define reg_rf_access_code_base_pipe2 0x140818 172 173 #define reg_rf_txfifo REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x1c) 174 enum{ 175 FLD_RF_TX_FIFO_FULL = BIT(0), 176 FLD_RF_TX_ACT_2D = BIT(1), 177 }; 178 179 180 #define reg_rf_rxgth1 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x21) 181 enum{ 182 FLD_RF_R_PILOT_LEN_O = BIT_RNG(0,3), 183 FLD_RF_R_ZB_SFD_O = BIT(4), 184 FLD_RF_R_PKTLEN_O = BIT(5), 185 FLD_RF_R_SN_LEN_O = BIT(6), 186 FLD_RF_R_LEN_0_EN_O = BIT(7), 187 }; 188 189 190 #define reg_rf_rxsfd0_num REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x22) 191 enum{ 192 FLD_RF_RXCHN_MAN_EN = BIT(3), 193 FLD_RF_RXCHN_MAN = BIT_RNG(4,6), 194 }; 195 196 197 #define reg_rf_crc_init0 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x24) 198 #define reg_rf_crc_init1 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x25) 199 #define reg_rf_crc_init2 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x26) 200 201 202 #define reg_rf_ctrl_0 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x27) 203 enum{ 204 FLD_RF_H1M_ODD = BIT(0), 205 FLD_RF_REV_ZB_SAMP = BIT(1), 206 FLD_RF_SFD_LAST_CHIP = BIT(2), 207 }; 208 209 210 #define reg_rf_rxmode REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x28) 211 enum{ 212 FLD_RF_RX_ENABLE = BIT(0), 213 }; 214 215 216 #define reg_rf_rxclk_on REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x2a) 217 enum{ 218 FLD_RF_CLKON_O = BIT_RNG(0,1), 219 }; 220 221 222 #define reg_rf_rxclk_auto REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x2b) 223 enum{ 224 FLD_RF_CLK_AUTO = BIT_RNG(0,1), 225 }; 226 227 228 #define reg_rf_rxdma_hs REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x2c) 229 enum{ 230 FLD_RF_RXDMA_HS = BIT(0), 231 }; 232 233 234 #define reg_rf_rxtcrcpkt REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x30) 235 enum{ 236 FLD_RF_FILTER_CRC_PKT = BIT(0), 237 FLD_RF_EN_TS_RX = BIT(2), 238 FLD_RF_EN_TS_TX = BIT(3), 239 FLD_RF_LEN_SET_O = BIT_RNG(4,5), 240 }; 241 242 243 #define reg_rf_rxtmaxlen REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x31) 244 245 246 #define reg_rf_rxlatf REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x33) 247 enum{ 248 FLD_RF_R_LATF_CNT_O = BIT_RNG(0,3), 249 FLD_RF_R_LATF_AT_END_O = BIT(4), 250 }; 251 252 253 #define reg_rf_bank_cnt REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x34) 254 enum{ 255 FLD_RF_BANK_CNT = BIT_RNG(0,2), 256 }; 257 258 259 #define reg_rf_rxsupp REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x38) 260 enum{ 261 FLD_RF_RX_SUPP_D_EN = BIT(0), 262 FLD_RF_RX_SUPP_A_EN = BIT(1), 263 FLD_RF_TX_SUPP_D_EN = BIT(2), 264 FLD_RF_TX_SUPP_A_EN = BIT(3), 265 FLD_RF_ANT_NUM = BIT_RNG(4,7), 266 }; 267 268 269 #define reg_rf_tx_antoffset REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x39) 270 #define reg_rf_rx_antoffset REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x3a) 271 #define reg_rf_samp_offset REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x3b) 272 273 274 #define reg_rf_man_ant_slot REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x3c) 275 enum{ 276 FLD_RF_ANT_SEL_MAN = BIT_RNG(0,2), 277 FLD_RF_ANT_SEL_MAN_EN = BIT(3), 278 FLD_RF_SLOT_1US_MAN_EN = BIT(4), 279 FLD_RF_SLOT_1US_MAN = BIT(5), 280 FLD_RF_ANT_PAT = BIT_RNG(6,7), 281 }; 282 283 284 #define reg_rf_sof_offset REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x3d) 285 enum{ 286 FLD_RF_ANT_SOF_OFFSET = BIT_RNG(0,1), 287 FLD_RF_SAMP_SOF_OFFSET = BIT_RNG(2,3), 288 FLD_RF_SUPP_MODE = BIT_RNG(4,6), 289 }; 290 291 292 #define reg_rf_mode_ctrl0 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x3e) 293 enum{ 294 FLD_RF_INTV_MODE = BIT_RNG(0,1), 295 FLD_RF_IQ_SAMP_EN = BIT(2), 296 FLD_RF_IQ_SAMP_INTERVAL = BIT_RNG(4,7), 297 }; 298 299 300 #define reg_rf_iq_samp_start REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x3f) 301 302 303 #define reg_rf_dec_err REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x40) 304 enum{ 305 FLD_RF_SS = BIT_RNG(0,2), 306 FLD_RF_PKT_DEC_ERR = BIT_RNG(4,7), 307 }; 308 309 #define reg_rf_timestamp REG_ADDR32(REG_BASEBAND_BASE_ADDR+0x50) 310 #define reg_rf_tstamp0 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x50) 311 enum{ 312 FLD_RF_R_TSTAMP0 = BIT_RNG(0,7), 313 }; 314 315 316 #define reg_rf_tstamp1 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x51) 317 enum{ 318 FLD_RF_R_TSTAMP1 = BIT_RNG(0,7), 319 }; 320 321 322 #define reg_rf_tstamp2 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x52) 323 enum{ 324 FLD_RF_R_TSTAMP2 = BIT_RNG(0,7), 325 }; 326 327 328 #define reg_rf_tstamp3 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x53) 329 enum{ 330 FLD_RF_R_TSTAMP3 = BIT_RNG(0,7), 331 }; 332 333 334 #define reg_rf_ant_lut_0 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x68) 335 enum{ 336 FLD_RF_ANT_LUT0 = BIT_RNG(0,2), 337 FLD_RF_ANT_LUT1 = BIT_RNG(4,6), 338 }; 339 340 #if 0 341 #define reg_rf_ant_lut_1 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x69) 342 enum{ 343 FLD_RF_ANT_LUT0 = BIT_RNG(0,2), 344 FLD_RF_ANT_LUT1 = BIT_RNG(4,6), 345 }; 346 347 348 #define reg_rf_ant_lut_2 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x6a) 349 enum{ 350 FLD_RF_ANT_LUT0 = BIT_RNG(0,2), 351 FLD_RF_ANT_LUT1 = BIT_RNG(4,6), 352 }; 353 354 355 #define reg_rf_ant_lut_3 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x6b) 356 enum{ 357 FLD_RF_ANT_LUT0 = BIT_RNG(0,2), 358 FLD_RF_ANT_LUT1 = BIT_RNG(4,6), 359 }; 360 361 362 #define reg_rf_ant_lut_4 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x6c) 363 enum{ 364 FLD_RF_ANT_LUT0 = BIT_RNG(0,2), 365 FLD_RF_ANT_LUT1 = BIT_RNG(4,6), 366 }; 367 368 369 #define reg_rf_ant_lut_5 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x6d) 370 enum{ 371 FLD_RF_ANT_LUT0 = BIT_RNG(0,2), 372 FLD_RF_ANT_LUT1 = BIT_RNG(4,6), 373 }; 374 375 376 #define reg_rf_ant_lut_6 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x6e) 377 enum{ 378 FLD_RF_ANT_LUT0 = BIT_RNG(0,2), 379 FLD_RF_ANT_LUT1 = BIT_RNG(4,6), 380 }; 381 382 383 #define reg_rf_ant_lut_7 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x6f) 384 enum{ 385 FLD_RF_ANT_LUT0 = BIT_RNG(0,2), 386 FLD_RF_ANT_LUT1 = BIT_RNG(4,6), 387 }; 388 #endif 389 390 #define reg_rf_rxdma_adr 0x140880 391 #define reg_rf_rxdma_fifo0 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x80) 392 enum{ 393 FLD_RF_RXDMA_FIFO0 = BIT_RNG(0,7), 394 }; 395 396 397 #define reg_rf_rxdma_fifo1 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x81) 398 enum{ 399 FLD_RF_RXDMA_FIFO1 = BIT_RNG(0,7), 400 }; 401 402 403 #define reg_rf_rxdma_fifo2 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x82) 404 enum{ 405 FLD_RF_RXDMA_FIFO2 = BIT_RNG(0,7), 406 }; 407 408 409 #define reg_rf_rxdma_fifo3 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x83) 410 enum{ 411 FLD_RF_RXDMA_FIFO3 = BIT_RNG(0,7), 412 }; 413 414 #define reg_rf_txdma_adr 0x140884 415 #define reg_rf_txdma_fifo0 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x84) 416 enum{ 417 FLD_RF_TXDMA_FIFO0 = BIT_RNG(0,7), 418 }; 419 420 421 #define reg_rf_txdma_fifo1 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x85) 422 enum{ 423 FLD_RF_TXDMA_FIFO1 = BIT_RNG(0,7), 424 }; 425 426 427 #define reg_rf_txdma_fifo2 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x86) 428 enum{ 429 FLD_RF_TXDMA_FIFO2 = BIT_RNG(0,7), 430 }; 431 432 433 #define reg_rf_txdma_fifo3 REG_ADDR8(REG_BASEBAND_BASE_ADDR+0x87) 434 enum{ 435 FLD_RF_TXDMA_FIFO3 = BIT_RNG(0,7), 436 }; 437 438 439 440 /** 441 * BB_LL 442 */ 443 #define REG_BB_LL_BASE_ADDR 0x0140a00 444 445 446 #define reg_rf_ll_cmd REG_ADDR8(REG_BB_LL_BASE_ADDR) 447 enum{ 448 FLD_RF_R_CMD = BIT_RNG(0,3), 449 FLD_RF_R_STOP = 0, 450 FLD_RF_R_BTX = 1, 451 FLD_RF_R_BRX = 2, 452 FLD_RF_R_PTX = 3, 453 FLD_RF_R_PRX = 4, 454 FLD_RF_R_STX = 5, 455 FLD_RF_R_SRX = 6, 456 FLD_RF_R_STR = 7, 457 FLD_RF_R_SRT = 8, 458 FLD_RF_R_CMD_TRIG = BIT(7), 459 }; 460 461 462 #define reg_rf_ll_rest_pid REG_ADDR8(REG_BB_LL_BASE_ADDR+0x01) 463 enum{ 464 FLD_RF_R_RESET_PID_0 = BIT(0), 465 FLD_RF_R_RESET_PID_1 = BIT(1), 466 FLD_RF_R_RESET_PID_2 = BIT(2), 467 FLD_RF_R_RESET_PID_3 = BIT(3), 468 FLD_RF_R_RESET_PID_4 = BIT(4), 469 FLD_RF_R_RESET_PID_5 = BIT(5), 470 }; 471 472 473 #define reg_rf_ll_ctrl0 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x02) 474 enum{ 475 FLD_RF_R_MD_EN = BIT(0), 476 FLD_RF_R_ID_EN = BIT(1), 477 FLD_RF_R_RX_NOACK_MAN = BIT(2), 478 FLD_RF_R_RX_NOACK_MAN_EN = BIT(3), 479 FLD_RF_R_TX_EN_MAN = BIT(4), 480 FLD_RF_R_RX_EN_MAN = BIT(5), 481 FLD_RF_R_TX_TRIQ_AUTO_EN = BIT(6), 482 FLD_RF_R_S_TX_TIMEOUT_EN = BIT(7), 483 }; 484 485 486 #define reg_rf_ll_ctrl_1 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x03) 487 488 enum{ 489 FLD_RF_FSM_TIMEOUT_EN = BIT(0), 490 FLD_RF_RX_FIRST_TIMEOUT_EN = BIT(1), 491 FLD_RF_RX_TIMEOUT_EN = BIT(2), 492 FLD_RF_CRC_2_EN = BIT(3), 493 494 //BLE mode 495 FLD_RF_BRX_SN_INIT = BIT(4), 496 FLD_RF_BRX_NESN_INIT = BIT(5), 497 FLD_RF_BTX_SN_INIT = BIT(6), 498 FLD_RF_BTX_NESN_INIT = BIT(7), 499 }; 500 501 #define FSM_TIMEOUT_ENABLE ( reg_rf_ll_ctrl_1 |= FLD_RF_FSM_TIMEOUT_EN ) 502 #define FSM_TIMEOUT_DISABLE ( reg_rf_ll_ctrl_1 &= (~FLD_RF_FSM_TIMEOUT_EN) ) 503 504 #define reg_rf_ll_tx_stl REG_ADDR16(REG_BB_LL_BASE_ADDR+0x04) 505 506 #define reg_rf_ll_tx_stl_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x04) 507 508 509 #define reg_rf_ll_tx_stl_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x05) 510 enum{ 511 FLD_RF_R_T_TXSTL_H = BIT_RNG(0,3), 512 }; 513 514 515 #define reg_rf_ll_rxwait_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x06) 516 517 518 #define reg_rf_ll_rxwait_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x07) 519 enum{ 520 FLD_RF_R_T_RXWAIT_H = BIT_RNG(0,3), 521 }; 522 523 524 #define reg_rf_ll_rx_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x0a) 525 526 #define reg_rf_rx_timeout REG_ADDR16(REG_BB_LL_BASE_ADDR+0x0a) 527 528 #define reg_rf_ll_rx_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x0b) 529 enum{ 530 FLD_RF_R_T_RX_H = BIT_RNG(0,3), 531 }; 532 533 534 #define reg_rf_ll_rxstl_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x0c) 535 536 537 #define reg_rf_ll_rxstl_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x0d) 538 enum{ 539 FLD_RF_R_T_RXSTL_H = BIT_RNG(0,3), 540 }; 541 542 543 #define reg_rf_ll_txwait_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x0e) 544 545 546 #define reg_rf_ll_txwait_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x0f) 547 enum{ 548 FLD_RF_R_T_TXWAIT_H = BIT_RNG(0,3), 549 }; 550 551 552 #define reg_rf_ll_ard_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x10) 553 554 555 #define reg_rf_ll_ard_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x11) 556 enum{ 557 FLD_RF_R_T_ARD_H = BIT_RNG(0,3), 558 }; 559 560 561 #define reg_rf_t_coex_t1 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x12) 562 #define reg_rf_t_coex_t2 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x13) 563 #define reg_rf_ll_max_reset_cnt REG_ADDR8(REG_BB_LL_BASE_ADDR+0x14) 564 565 566 #define reg_rf_ll_ctrl2 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x15) 567 enum{ 568 FLD_RF_R_TXCHN_MAN = BIT_RNG(0,2), 569 FLD_RF_R_NOACK_RECNT_EN = BIT(3), 570 FLD_RF_R_TXCHN_MAN_EN = BIT(4), 571 FLD_RF_R_NOACK_REV_EN = BIT(5), 572 FLD_RF_R_RXIRQ_REPORT_ALL = BIT(6), 573 FLD_RF_R_REP_SN_PID_EN = BIT(7), 574 }; 575 576 577 #define reg_rf_ll_ctrl3 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x16) 578 enum{ 579 FLD_RF_R_TX_EN_DLY_EN = BIT(0), 580 FLD_RF_R_PLL_RESET_EN = BIT(1), 581 FLD_RF_R_CMD_SCHDULE_EN = BIT(2), 582 FLD_RF_R_PLL_EN_MAN = BIT(3), 583 FLD_RF_R_T_TX_EN_DLY = BIT_RNG(4,7), 584 }; 585 586 587 #define reg_rf_ll_pll_reset REG_ADDR8(REG_BB_LL_BASE_ADDR+0x17) 588 #define reg_rf_ll_cmd_schedule REG_ADDR32(REG_BB_LL_BASE_ADDR+0x18) 589 #define reg_rf_ll_cmd_schedule0 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x18) 590 #define reg_rf_ll_cmd_schedule1 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x19) 591 #define reg_rf_ll_cmd_schedule2 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x1a) 592 #define reg_rf_ll_cmd_schedule3 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x1b) 593 #define reg_rf_ll_irq_mask_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x1c) 594 #define reg_rf_ll_irq_mask_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x1d) 595 #define reg_rf_irq_mask REG_ADDR16(REG_BB_LL_BASE_ADDR+0x1c) 596 597 598 #define reg_rf_ll_tx_id REG_ADDR8(REG_BB_LL_BASE_ADDR+0x1e) 599 enum{ 600 FLD_RF_R_TX_ID = BIT_RNG(0,6), 601 }; 602 603 604 #define reg_rf_ll_tx_committed REG_ADDR8(REG_BB_LL_BASE_ADDR+0x1f) 605 enum{ 606 FLD_RF_R_TX_COMMITTED = BIT_RNG(0,5), 607 }; 608 609 610 611 #define reg_rf_irq_status REG_ADDR16(REG_BB_LL_BASE_ADDR+0x20) 612 613 typedef enum{ 614 FLD_RF_IRQ_RX = BIT(0), 615 FLD_RF_IRQ_TX = BIT(1), 616 FLD_RF_IRQ_RX_TIMEOUT = BIT(2), 617 FLD_RF_IRQ_RX_FIFO_FULL = BIT(3), 618 FLD_RF_IRQ_RX_CRC_2 = BIT(4), 619 FLD_RF_IRQ_CMD_DONE = BIT(5), 620 FLD_RF_IRQ_FSM_TIMEOUT = BIT(6), 621 FLD_RF_IRQ_TX_RETRYCNT = BIT(7), 622 FLD_RF_IRQ_TX_DS = BIT(8), 623 FLD_RF_IRQ_RX_DR = BIT(9), 624 FLD_RF_IRQ_FIRST_TIMEOUT = BIT(10), 625 FLD_RF_IRQ_INVALID_PID = BIT(11), 626 FLD_RF_IRQ_STX_TIMEOUT = BIT(12), 627 FLD_RF_IRQ_WIFI_DENY = BIT(13), 628 FLD_RF_IRQ_SUPP_OF = BIT(14), 629 FLD_RF_IRQ_RXDMA_OF = BIT(15), 630 FLD_RF_IRQ_ALL = 0X1FFF, 631 }rf_irq_e; 632 633 634 635 #define reg_rf_ll_pid_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x22) 636 enum{ 637 FLD_RF_PID0 = BIT_RNG(0,1), 638 FLD_RF_PID1 = BIT_RNG(2,3), 639 FLD_RF_PID2 = BIT_RNG(4,5), 640 FLD_RF_PID3 = BIT_RNG(6,7), 641 }; 642 643 644 #define reg_rf_ll_pid_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x23) 645 enum{ 646 FLD_RF_PID4 = BIT_RNG(0,1), 647 FLD_RF_PID5 = BIT_RNG(2,3), 648 FLD_RF_NESN = BIT(4), 649 }; 650 651 652 #define reg_rf_ll_2d_sclk REG_ADDR8(REG_BB_LL_BASE_ADDR+0x24) 653 typedef enum { 654 FLD_RF_STATE_MACHINE_IDLE = 0, /**< idle */ 655 FLD_RF_STATE_MACHINE_TX_SETTLE, /**< tx settle*/ 656 FLD_RF_STATE_MACHINE_TX, /**< tx */ 657 FLD_RF_STATE_MACHINE_RX_WAIT, /**< rx wait */ 658 FLD_RF_STATE_MACHINE_RX, /**< rx */ 659 FLD_RF_STATE_MACHINE_TX_WAIT, /**< tx wait */ 660 } state_machine_status_e; 661 662 663 #define reg_rf_ll_retry_cnt REG_ADDR8(REG_BB_LL_BASE_ADDR+0x25) 664 enum{ 665 FLD_RF_LL_RETRY_CNT = BIT_RNG(0,7), 666 }; 667 668 669 #define reg_rf_ll_cnt0 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x26) 670 enum{ 671 FLD_RF_CRC_CNT = BIT_RNG(0,3), 672 FLD_RF_NAK_CNT = BIT_RNG(4,7), 673 }; 674 675 676 #define reg_rf_ll_cnt1 REG_ADDR8(REG_BB_LL_BASE_ADDR+0x27) 677 enum{ 678 FLD_RF_OLD_CNT = BIT_RNG(0,3), 679 FLD_RF_ID_CNT = BIT_RNG(4,7), 680 }; 681 682 #define reg_rf_ll_rx_fst_timeout REG_ADDR32(REG_BB_LL_BASE_ADDR+0x28) 683 #define reg_rf_ll_rx_fst_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x28) 684 #define reg_rf_ll_rx_fst_m REG_ADDR8(REG_BB_LL_BASE_ADDR+0x29) 685 #define reg_rf_ll_rx_fst_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x2a) 686 687 #define reg_rf_ll_fsm_timeout REG_ADDR32(REG_BB_LL_BASE_ADDR+0x2c) 688 #define reg_rf_ll_fsm_timeout_l REG_ADDR8(REG_BB_LL_BASE_ADDR+0x2c) 689 #define reg_rf_ll_fsm_timeout_m REG_ADDR8(REG_BB_LL_BASE_ADDR+0x2d) 690 #define reg_rf_ll_fsm_timeout_h REG_ADDR8(REG_BB_LL_BASE_ADDR+0x2e) 691 692 #define reg_rf_fsm_timeout REG_ADDR32(0x80140a2c) 693 694 #define reg_rf_coex_enable REG_ADDR8(REG_BB_LL_BASE_ADDR+0x30) 695 enum{ 696 FLD_RF_COEX_EN = BIT(0), 697 FLD_RF_COEX_WF_DN_POL = BIT(1), 698 FLD_RF_COEX_STATUS = BIT(2), 699 FLD_RF_COEX_TRX_POL = BIT(3), 700 FLD_RF_TRX_PRIO = BIT(4), 701 FLD_RF_TX_PRIO = BIT(5), 702 FLD_RF_RX_PRIO = BIT(6), 703 }; 704 #define CLEAR_ALL_RFIRQ_STATUS (reg_rf_irq_status = 0xffff) 705 #define REG_TL_MODEM_BASE_ADDR 0x140c00//140c00 706 707 #define reg_rf_modem_mode_cfg_rx1_0 REG_ADDR8(REG_TL_MODEM_BASE_ADDR+0x20) 708 enum 709 { 710 FLD_RF_LR_MODE = BIT(0), 711 FLD_RF_BT_BLE_SEL_AUTO = BIT(1), 712 FLD_RF_BT_BLE_SEL_EN_RX = BIT(2), 713 FLD_RF_CONT_MODE = BIT(3), 714 FLD_RF_NTL_CV = BIT(4), 715 FLD_RF_RX_DATA_CLK_DBG = BIT(5), 716 FLD_RF_LR_TRIG_MODE = BIT(6), 717 FLD_RF_FDC_DBG_SEL = BIT(7), 718 719 }; 720 #define reg_rf_modem_mode_ctrl_tx1_0 REG_ADDR8(REG_TL_MODEM_BASE_ADDR+0x22) 721 enum 722 { 723 FLD_RF_BLE_MODEM_TX = BIT(0), 724 }; 725 726 #define reg_rf_modem_rx_ctrl_0 REG_ADDR8(REG_TL_MODEM_BASE_ADDR+0x4c) 727 enum 728 { 729 FLD_RF_RX_ACC_LNE = BIT_RNG(0,2), 730 FLD_RF_RX_CRC_EN = BIT(3), 731 FLD_RF_SFD0_NUM = BIT_RNG(4,6), 732 }; 733 734 #define reg_rf_modem_sync_thre_ble REG_ADDR8(REG_TL_MODEM_BASE_ADDR+0x4e) 735 736 #define reg_rf_agc_rssi_lat REG_ADDR8(REG_TL_MODEM_BASE_ADDR+0x5d) 737 738 #define reg_rf_tx_tl_ctrl REG_ADDR8(REG_TL_MODEM_BASE_ADDR+0x9a) 739 enum 740 { 741 FLD_RF_TX_TP_EN = BIT(0), 742 FLD_RF_TX_IQ_EN = BIT(1), 743 FLD_RF_TX_MPSK_EN = BIT(2), 744 FLD_RF_TX_TP_ALIGN = BIT(3), 745 746 }; 747 748 #define reg_rf_mode_cfg_rx1_0 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x20) 749 enum 750 { 751 FLD_RF_BW_CODE = BIT_RNG(1,3), 752 FLD_RF_SC_CODE = BIT(4), 753 }; 754 755 #define reg_rf_mode_cfg_rx1_1 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x21) 756 enum 757 { 758 FLD_RF_MODE_VANT_RX = BIT(1), 759 FLD_RF_FE_RTRIM_RX = BIT_RNG(2,4), 760 FLD_RF_IF_FREQ = BIT_RNG(5,6), 761 762 }; 763 764 #define reg_rf_mode_cfg_tx1_0 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x22) 765 enum 766 { 767 FLD_RF_BLE_MODE_TX = BIT(0), 768 FLD_RF_VCO_TRIM_KVM = BIT_RNG(1,3), 769 FLD_RF_HPMC_EXP_DIFF_COUNT_L = BIT_RNG(4,7), 770 }; 771 772 #define reg_rf_mode_cfg_tx1_1 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x23) 773 enum 774 { 775 FLD_RF_HPMC_EXP_DIFF_COUNT_H = BIT_RNG(0,4), 776 FLD_RF_DAC_TRIM_CFBK = BIT_RNG(5,6), 777 778 }; 779 780 #define reg_rf_mode_cfg_txrx_0 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x26) 781 enum 782 { 783 FLD_RF_DIS_CLK_DIG_O = BIT(0), 784 FLD_RF_VANT_PULLDN = BIT(1), 785 FLD_RF_GF_BT = BIT(2), 786 FLD_RF_LDO_ANT_TRIM = BIT_RNG(3,5), 787 FLD_RF_CBPF_TYPE = BIT(6), 788 FLD_RF_TX_PA_PWR_L = BIT(7), 789 }; 790 791 792 #define reg_rf_mode_cfg_txrx_1 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x27) 793 794 enum 795 { 796 FLD_RF_TX_PA_PWR_H = BIT_RNG(0,4), 797 }; 798 799 #define reg_rf_burst_cfg_txrx_0 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x28) 800 enum 801 { 802 FLD_RF_CHNL_NUM = BIT_RNG(0,7), 803 }; 804 805 #define reg_rf_burst_cfg_txrx_1 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x29) 806 enum 807 { 808 FLD_RF_CH_NUMLL_SEL = BIT(0), 809 FLD_RF_TX_EN_PIF = BIT(1), 810 FLD_RF_RX_EN_PIF = BIT(2), 811 FLD_RF_RX_TIM_SRQ_SEL_TESQ = BIT(3), 812 FLD_RF_TX_TIM_SRQ_SEL_TESQ = BIT(4), 813 FLD_RF_FE_CTRIM = BIT_RNG(5,7), 814 }; 815 816 #define reg_rf_mode_cfg_tx3_0 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x3c) 817 enum 818 { 819 FLD_RF_MODE_CFG_TX3 = BIT_RNG(0,5), 820 FLD_RF_MODE_VANT_TX_BLE = BIT(6), 821 FLD_RF_TX_IQ_MODE_EN_BLE = BIT(7), 822 }; 823 824 825 826 #define reg_rf_mode_cfg_tx3_1 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x3d) 827 enum 828 { 829 FLD_RF_LDO_ANT_TRIM_BLE = BIT_RNG(0,2), 830 FLD_RF_BT_BLE_SEL_EN = BIT(3), 831 FLD_RF_TXC_PWR_SRL = BIT(4), 832 FLD_RF_BW_CODE_BLE = BIT_RNG(5,7), 833 834 }; 835 836 #define reg_rf_txrx_dbg3_0 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x44) 837 enum 838 { 839 FLD_RF_CHNL_FREQ_DIRECT = BIT(0), 840 FLD_RF_CHNL_FREQ_L = BIT_RNG(1,7), 841 }; 842 843 #define reg_rf_txrx_dbg3_1 REG_ADDR8(REG_TL_RADIO_BASE_ADDR+0x45) 844 enum 845 { 846 FLD_RF_CHNL_FREQ_H = BIT_RNG(0,5), 847 FLD_RF_DSN_DITHER_DISABLE = BIT(6), 848 FLD_RF_DSM_INT_MODE = BIT(7), 849 }; 850 851 #endif 852