1 /* 2 * Copyright (c) 2013-2017 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 #ifndef _REGTABLE_SDIO_H_ 20 #define _REGTABLE_SDIO_H_ 21 22 #define MISSING 0 23 extern struct hif_sdio_softc *scn; 24 25 struct targetdef_s { 26 uint32_t d_RTC_SOC_BASE_ADDRESS; 27 uint32_t d_RTC_WMAC_BASE_ADDRESS; 28 uint32_t d_SYSTEM_SLEEP_OFFSET; 29 uint32_t d_WLAN_SYSTEM_SLEEP_OFFSET; 30 uint32_t d_WLAN_SYSTEM_SLEEP_DISABLE_LSB; 31 uint32_t d_WLAN_SYSTEM_SLEEP_DISABLE_MASK; 32 uint32_t d_CLOCK_CONTROL_OFFSET; 33 uint32_t d_CLOCK_CONTROL_SI0_CLK_MASK; 34 uint32_t d_RESET_CONTROL_OFFSET; 35 uint32_t d_RESET_CONTROL_MBOX_RST_MASK; 36 uint32_t d_RESET_CONTROL_SI0_RST_MASK; 37 uint32_t d_WLAN_RESET_CONTROL_OFFSET; 38 uint32_t d_WLAN_RESET_CONTROL_COLD_RST_MASK; 39 uint32_t d_WLAN_RESET_CONTROL_WARM_RST_MASK; 40 uint32_t d_GPIO_BASE_ADDRESS; 41 uint32_t d_GPIO_PIN0_OFFSET; 42 uint32_t d_GPIO_PIN1_OFFSET; 43 uint32_t d_GPIO_PIN0_CONFIG_MASK; 44 uint32_t d_GPIO_PIN1_CONFIG_MASK; 45 uint32_t d_SI_CONFIG_BIDIR_OD_DATA_LSB; 46 uint32_t d_SI_CONFIG_BIDIR_OD_DATA_MASK; 47 uint32_t d_SI_CONFIG_I2C_LSB; 48 uint32_t d_SI_CONFIG_I2C_MASK; 49 uint32_t d_SI_CONFIG_POS_SAMPLE_LSB; 50 uint32_t d_SI_CONFIG_POS_SAMPLE_MASK; 51 uint32_t d_SI_CONFIG_INACTIVE_CLK_LSB; 52 uint32_t d_SI_CONFIG_INACTIVE_CLK_MASK; 53 uint32_t d_SI_CONFIG_INACTIVE_DATA_LSB; 54 uint32_t d_SI_CONFIG_INACTIVE_DATA_MASK; 55 uint32_t d_SI_CONFIG_DIVIDER_LSB; 56 uint32_t d_SI_CONFIG_DIVIDER_MASK; 57 uint32_t d_SI_BASE_ADDRESS; 58 uint32_t d_SI_CONFIG_OFFSET; 59 uint32_t d_SI_TX_DATA0_OFFSET; 60 uint32_t d_SI_TX_DATA1_OFFSET; 61 uint32_t d_SI_RX_DATA0_OFFSET; 62 uint32_t d_SI_RX_DATA1_OFFSET; 63 uint32_t d_SI_CS_OFFSET; 64 uint32_t d_SI_CS_DONE_ERR_MASK; 65 uint32_t d_SI_CS_DONE_INT_MASK; 66 uint32_t d_SI_CS_START_LSB; 67 uint32_t d_SI_CS_START_MASK; 68 uint32_t d_SI_CS_RX_CNT_LSB; 69 uint32_t d_SI_CS_RX_CNT_MASK; 70 uint32_t d_SI_CS_TX_CNT_LSB; 71 uint32_t d_SI_CS_TX_CNT_MASK; 72 uint32_t d_BOARD_DATA_SZ; 73 uint32_t d_BOARD_EXT_DATA_SZ; 74 uint32_t d_MBOX_BASE_ADDRESS; 75 uint32_t d_LOCAL_SCRATCH_OFFSET; 76 uint32_t d_CPU_CLOCK_OFFSET; 77 uint32_t d_LPO_CAL_OFFSET; 78 uint32_t d_GPIO_PIN10_OFFSET; 79 uint32_t d_GPIO_PIN11_OFFSET; 80 uint32_t d_GPIO_PIN12_OFFSET; 81 uint32_t d_GPIO_PIN13_OFFSET; 82 uint32_t d_CLOCK_GPIO_OFFSET; 83 uint32_t d_CPU_CLOCK_STANDARD_LSB; 84 uint32_t d_CPU_CLOCK_STANDARD_MASK; 85 uint32_t d_LPO_CAL_ENABLE_LSB; 86 uint32_t d_LPO_CAL_ENABLE_MASK; 87 uint32_t d_CLOCK_GPIO_BT_CLK_OUT_EN_LSB; 88 uint32_t d_CLOCK_GPIO_BT_CLK_OUT_EN_MASK; 89 uint32_t d_ANALOG_INTF_BASE_ADDRESS; 90 uint32_t d_WLAN_MAC_BASE_ADDRESS; 91 uint32_t d_FW_INDICATOR_ADDRESS; 92 uint32_t d_DRAM_BASE_ADDRESS; 93 uint32_t d_SOC_CORE_BASE_ADDRESS; 94 uint32_t d_CORE_CTRL_ADDRESS; 95 uint32_t d_MSI_NUM_REQUEST; 96 uint32_t d_MSI_ASSIGN_FW; 97 uint32_t d_CORE_CTRL_CPU_INTR_MASK; 98 uint32_t d_SR_WR_INDEX_ADDRESS; 99 uint32_t d_DST_WATERMARK_ADDRESS; 100 101 /* htt_rx.c */ 102 uint32_t d_RX_MSDU_END_4_FIRST_MSDU_MASK; 103 uint32_t d_RX_MSDU_END_4_FIRST_MSDU_LSB; 104 uint32_t d_RX_MPDU_START_0_RETRY_LSB; 105 uint32_t d_RX_MPDU_START_0_RETRY_MASK; 106 uint32_t d_RX_MPDU_START_0_SEQ_NUM_MASK; 107 uint32_t d_RX_MPDU_START_0_SEQ_NUM_LSB; 108 uint32_t d_RX_MPDU_START_2_PN_47_32_LSB; 109 uint32_t d_RX_MPDU_START_2_PN_47_32_MASK; 110 uint32_t d_RX_MPDU_START_2_TID_LSB; 111 uint32_t d_RX_MPDU_START_2_TID_MASK; 112 uint32_t d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK; 113 uint32_t d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB; 114 uint32_t d_RX_MSDU_END_1_KEY_ID_OCT_MASK; 115 uint32_t d_RX_MSDU_END_1_KEY_ID_OCT_LSB; 116 uint32_t d_RX_MSDU_END_4_LAST_MSDU_MASK; 117 uint32_t d_RX_MSDU_END_4_LAST_MSDU_LSB; 118 uint32_t d_RX_ATTENTION_0_MCAST_BCAST_MASK; 119 uint32_t d_RX_ATTENTION_0_MCAST_BCAST_LSB; 120 uint32_t d_RX_ATTENTION_0_FRAGMENT_MASK; 121 uint32_t d_RX_ATTENTION_0_FRAGMENT_LSB; 122 uint32_t d_RX_ATTENTION_0_MPDU_LENGTH_ERR_MASK; 123 uint32_t d_RX_FRAG_INFO_0_RING2_MORE_COUNT_MASK; 124 uint32_t d_RX_FRAG_INFO_0_RING2_MORE_COUNT_LSB; 125 uint32_t d_RX_MSDU_START_0_MSDU_LENGTH_MASK; 126 uint32_t d_RX_MSDU_START_0_MSDU_LENGTH_LSB; 127 uint32_t d_RX_MSDU_START_2_DECAP_FORMAT_OFFSET; 128 uint32_t d_RX_MSDU_START_2_DECAP_FORMAT_MASK; 129 uint32_t d_RX_MSDU_START_2_DECAP_FORMAT_LSB; 130 uint32_t d_RX_MPDU_START_0_ENCRYPTED_MASK; 131 uint32_t d_RX_MPDU_START_0_ENCRYPTED_LSB; 132 uint32_t d_RX_ATTENTION_0_MORE_DATA_MASK; 133 uint32_t d_RX_ATTENTION_0_MSDU_DONE_MASK; 134 uint32_t d_RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK; 135 /* end */ 136 137 /* PLL start */ 138 uint32_t d_EFUSE_OFFSET; 139 uint32_t d_EFUSE_XTAL_SEL_MSB; 140 uint32_t d_EFUSE_XTAL_SEL_LSB; 141 uint32_t d_EFUSE_XTAL_SEL_MASK; 142 uint32_t d_BB_PLL_CONFIG_OFFSET; 143 uint32_t d_BB_PLL_CONFIG_OUTDIV_MSB; 144 uint32_t d_BB_PLL_CONFIG_OUTDIV_LSB; 145 uint32_t d_BB_PLL_CONFIG_OUTDIV_MASK; 146 uint32_t d_BB_PLL_CONFIG_FRAC_MSB; 147 uint32_t d_BB_PLL_CONFIG_FRAC_LSB; 148 uint32_t d_BB_PLL_CONFIG_FRAC_MASK; 149 uint32_t d_WLAN_PLL_SETTLE_TIME_MSB; 150 uint32_t d_WLAN_PLL_SETTLE_TIME_LSB; 151 uint32_t d_WLAN_PLL_SETTLE_TIME_MASK; 152 uint32_t d_WLAN_PLL_SETTLE_OFFSET; 153 uint32_t d_WLAN_PLL_SETTLE_SW_MASK; 154 uint32_t d_WLAN_PLL_SETTLE_RSTMASK; 155 uint32_t d_WLAN_PLL_SETTLE_RESET; 156 uint32_t d_WLAN_PLL_CONTROL_NOPWD_MSB; 157 uint32_t d_WLAN_PLL_CONTROL_NOPWD_LSB; 158 uint32_t d_WLAN_PLL_CONTROL_NOPWD_MASK; 159 uint32_t d_WLAN_PLL_CONTROL_BYPASS_MSB; 160 uint32_t d_WLAN_PLL_CONTROL_BYPASS_LSB; 161 uint32_t d_WLAN_PLL_CONTROL_BYPASS_MASK; 162 uint32_t d_WLAN_PLL_CONTROL_BYPASS_RESET; 163 uint32_t d_WLAN_PLL_CONTROL_CLK_SEL_MSB; 164 uint32_t d_WLAN_PLL_CONTROL_CLK_SEL_LSB; 165 uint32_t d_WLAN_PLL_CONTROL_CLK_SEL_MASK; 166 uint32_t d_WLAN_PLL_CONTROL_CLK_SEL_RESET; 167 uint32_t d_WLAN_PLL_CONTROL_REFDIV_MSB; 168 uint32_t d_WLAN_PLL_CONTROL_REFDIV_LSB; 169 uint32_t d_WLAN_PLL_CONTROL_REFDIV_MASK; 170 uint32_t d_WLAN_PLL_CONTROL_REFDIV_RESET; 171 uint32_t d_WLAN_PLL_CONTROL_DIV_MSB; 172 uint32_t d_WLAN_PLL_CONTROL_DIV_LSB; 173 uint32_t d_WLAN_PLL_CONTROL_DIV_MASK; 174 uint32_t d_WLAN_PLL_CONTROL_DIV_RESET; 175 uint32_t d_WLAN_PLL_CONTROL_OFFSET; 176 uint32_t d_WLAN_PLL_CONTROL_SW_MASK; 177 uint32_t d_WLAN_PLL_CONTROL_RSTMASK; 178 uint32_t d_WLAN_PLL_CONTROL_RESET; 179 uint32_t d_SOC_CORE_CLK_CTRL_OFFSET; 180 uint32_t d_SOC_CORE_CLK_CTRL_DIV_MSB; 181 uint32_t d_SOC_CORE_CLK_CTRL_DIV_LSB; 182 uint32_t d_SOC_CORE_CLK_CTRL_DIV_MASK; 183 uint32_t d_RTC_SYNC_STATUS_PLL_CHANGING_MSB; 184 uint32_t d_RTC_SYNC_STATUS_PLL_CHANGING_LSB; 185 uint32_t d_RTC_SYNC_STATUS_PLL_CHANGING_MASK; 186 uint32_t d_RTC_SYNC_STATUS_PLL_CHANGING_RESET; 187 uint32_t d_RTC_SYNC_STATUS_OFFSET; 188 uint32_t d_SOC_CPU_CLOCK_OFFSET; 189 uint32_t d_SOC_CPU_CLOCK_STANDARD_MSB; 190 uint32_t d_SOC_CPU_CLOCK_STANDARD_LSB; 191 uint32_t d_SOC_CPU_CLOCK_STANDARD_MASK; 192 /* PLL end */ 193 194 uint32_t d_SOC_POWER_REG_OFFSET; 195 uint32_t d_SOC_RESET_CONTROL_ADDRESS; 196 uint32_t d_SOC_RESET_CONTROL_CPU_WARM_RST_MASK; 197 uint32_t d_CPU_INTR_ADDRESS; 198 uint32_t d_SOC_LF_TIMER_CONTROL0_ADDRESS; 199 uint32_t d_SOC_LF_TIMER_CONTROL0_ENABLE_MASK; 200 201 /* chip id start */ 202 uint32_t d_SOC_CHIP_ID_ADDRESS; 203 uint32_t d_SOC_CHIP_ID_VERSION_MASK; 204 uint32_t d_SOC_CHIP_ID_VERSION_LSB; 205 uint32_t d_SOC_CHIP_ID_REVISION_MASK; 206 uint32_t d_SOC_CHIP_ID_REVISION_LSB; 207 /* chip id end */ 208 209 uint32_t d_A_SOC_CORE_SCRATCH_0_ADDRESS; 210 uint32_t d_A_SOC_CORE_SCRATCH_1_ADDRESS; 211 uint32_t d_A_SOC_CORE_SCRATCH_2_ADDRESS; 212 uint32_t d_A_SOC_CORE_SCRATCH_3_ADDRESS; 213 uint32_t d_A_SOC_CORE_SCRATCH_4_ADDRESS; 214 uint32_t d_A_SOC_CORE_SCRATCH_5_ADDRESS; 215 uint32_t d_A_SOC_CORE_SCRATCH_6_ADDRESS; 216 uint32_t d_A_SOC_CORE_SCRATCH_7_ADDRESS; 217 uint32_t d_A_SOC_CORE_SPARE_0_REGISTER; 218 uint32_t d_A_SOC_CORE_SPARE_1_REGISTER; 219 220 uint32_t d_WLAN_DEBUG_INPUT_SEL_OFFSET; 221 uint32_t d_WLAN_DEBUG_INPUT_SEL_SRC_MSB; 222 uint32_t d_WLAN_DEBUG_INPUT_SEL_SRC_LSB; 223 uint32_t d_WLAN_DEBUG_INPUT_SEL_SRC_MASK; 224 uint32_t d_WLAN_DEBUG_CONTROL_OFFSET; 225 uint32_t d_WLAN_DEBUG_CONTROL_ENABLE_MSB; 226 uint32_t d_WLAN_DEBUG_CONTROL_ENABLE_LSB; 227 uint32_t d_WLAN_DEBUG_CONTROL_ENABLE_MASK; 228 uint32_t d_WLAN_DEBUG_OUT_OFFSET; 229 uint32_t d_WLAN_DEBUG_OUT_DATA_MSB; 230 uint32_t d_WLAN_DEBUG_OUT_DATA_LSB; 231 uint32_t d_WLAN_DEBUG_OUT_DATA_MASK; 232 uint32_t d_AMBA_DEBUG_BUS_OFFSET; 233 uint32_t d_AMBA_DEBUG_BUS_SEL_MSB; 234 uint32_t d_AMBA_DEBUG_BUS_SEL_LSB; 235 uint32_t d_AMBA_DEBUG_BUS_SEL_MASK; 236 237 #ifdef QCA_WIFI_3_0_ADRASTEA 238 uint32_t d_Q6_ENABLE_REGISTER_0; 239 uint32_t d_Q6_ENABLE_REGISTER_1; 240 uint32_t d_Q6_CAUSE_REGISTER_0; 241 uint32_t d_Q6_CAUSE_REGISTER_1; 242 uint32_t d_Q6_CLEAR_REGISTER_0; 243 uint32_t d_Q6_CLEAR_REGISTER_1; 244 #endif 245 }; 246 247 #define A_SOC_CORE_SPARE_0_REGISTER \ 248 (scn->targetdef->d_A_SOC_CORE_SPARE_0_REGISTER) 249 #define A_SOC_CORE_SCRATCH_0_ADDRESS \ 250 (scn->targetdef->d_A_SOC_CORE_SCRATCH_0_ADDRESS) 251 #define A_SOC_CORE_SCRATCH_1_ADDRESS \ 252 (scn->targetdef->d_A_SOC_CORE_SCRATCH_1_ADDRESS) 253 #define A_SOC_CORE_SCRATCH_2_ADDRESS \ 254 (scn->targetdef->d_A_SOC_CORE_SCRATCH_2_ADDRESS) 255 #define A_SOC_CORE_SCRATCH_3_ADDRESS \ 256 (scn->targetdef->d_A_SOC_CORE_SCRATCH_3_ADDRESS) 257 #define A_SOC_CORE_SCRATCH_4_ADDRESS \ 258 (scn->targetdef->d_A_SOC_CORE_SCRATCH_4_ADDRESS) 259 #define A_SOC_CORE_SCRATCH_5_ADDRESS \ 260 (scn->targetdef->d_A_SOC_CORE_SCRATCH_5_ADDRESS) 261 #define A_SOC_CORE_SCRATCH_6_ADDRESS \ 262 (scn->targetdef->d_A_SOC_CORE_SCRATCH_6_ADDRESS) 263 #define A_SOC_CORE_SCRATCH_7_ADDRESS \ 264 (scn->targetdef->d_A_SOC_CORE_SCRATCH_7_ADDRESS) 265 #define RTC_SOC_BASE_ADDRESS (scn->targetdef->d_RTC_SOC_BASE_ADDRESS) 266 #define RTC_WMAC_BASE_ADDRESS (scn->targetdef->d_RTC_WMAC_BASE_ADDRESS) 267 #define SYSTEM_SLEEP_OFFSET (scn->targetdef->d_SYSTEM_SLEEP_OFFSET) 268 #define WLAN_SYSTEM_SLEEP_OFFSET \ 269 (scn->targetdef->d_WLAN_SYSTEM_SLEEP_OFFSET) 270 #define WLAN_SYSTEM_SLEEP_DISABLE_LSB \ 271 (scn->targetdef->d_WLAN_SYSTEM_SLEEP_DISABLE_LSB) 272 #define WLAN_SYSTEM_SLEEP_DISABLE_MASK \ 273 (scn->targetdef->d_WLAN_SYSTEM_SLEEP_DISABLE_MASK) 274 #define CLOCK_CONTROL_OFFSET (scn->targetdef->d_CLOCK_CONTROL_OFFSET) 275 #define CLOCK_CONTROL_SI0_CLK_MASK \ 276 (scn->targetdef->d_CLOCK_CONTROL_SI0_CLK_MASK) 277 #define RESET_CONTROL_OFFSET (scn->targetdef->d_RESET_CONTROL_OFFSET) 278 #define RESET_CONTROL_MBOX_RST_MASK \ 279 (scn->targetdef->d_RESET_CONTROL_MBOX_RST_MASK) 280 #define RESET_CONTROL_SI0_RST_MASK \ 281 (scn->targetdef->d_RESET_CONTROL_SI0_RST_MASK) 282 #define WLAN_RESET_CONTROL_OFFSET \ 283 (scn->targetdef->d_WLAN_RESET_CONTROL_OFFSET) 284 #define WLAN_RESET_CONTROL_COLD_RST_MASK \ 285 (scn->targetdef->d_WLAN_RESET_CONTROL_COLD_RST_MASK) 286 #define WLAN_RESET_CONTROL_WARM_RST_MASK \ 287 (scn->targetdef->d_WLAN_RESET_CONTROL_WARM_RST_MASK) 288 #define GPIO_BASE_ADDRESS (scn->targetdef->d_GPIO_BASE_ADDRESS) 289 #define GPIO_PIN0_OFFSET (scn->targetdef->d_GPIO_PIN0_OFFSET) 290 #define GPIO_PIN1_OFFSET (scn->targetdef->d_GPIO_PIN1_OFFSET) 291 #define GPIO_PIN0_CONFIG_MASK (scn->targetdef->d_GPIO_PIN0_CONFIG_MASK) 292 #define GPIO_PIN1_CONFIG_MASK (scn->targetdef->d_GPIO_PIN1_CONFIG_MASK) 293 #define A_SOC_CORE_SCRATCH_0 (scn->targetdef->d_A_SOC_CORE_SCRATCH_0) 294 #define SI_CONFIG_BIDIR_OD_DATA_LSB \ 295 (scn->targetdef->d_SI_CONFIG_BIDIR_OD_DATA_LSB) 296 #define SI_CONFIG_BIDIR_OD_DATA_MASK \ 297 (scn->targetdef->d_SI_CONFIG_BIDIR_OD_DATA_MASK) 298 #define SI_CONFIG_I2C_LSB (scn->targetdef->d_SI_CONFIG_I2C_LSB) 299 #define SI_CONFIG_I2C_MASK \ 300 (scn->targetdef->d_SI_CONFIG_I2C_MASK) 301 #define SI_CONFIG_POS_SAMPLE_LSB \ 302 (scn->targetdef->d_SI_CONFIG_POS_SAMPLE_LSB) 303 #define SI_CONFIG_POS_SAMPLE_MASK \ 304 (scn->targetdef->d_SI_CONFIG_POS_SAMPLE_MASK) 305 #define SI_CONFIG_INACTIVE_CLK_LSB \ 306 (scn->targetdef->d_SI_CONFIG_INACTIVE_CLK_LSB) 307 #define SI_CONFIG_INACTIVE_CLK_MASK \ 308 (scn->targetdef->d_SI_CONFIG_INACTIVE_CLK_MASK) 309 #define SI_CONFIG_INACTIVE_DATA_LSB \ 310 (scn->targetdef->d_SI_CONFIG_INACTIVE_DATA_LSB) 311 #define SI_CONFIG_INACTIVE_DATA_MASK \ 312 (scn->targetdef->d_SI_CONFIG_INACTIVE_DATA_MASK) 313 #define SI_CONFIG_DIVIDER_LSB (scn->targetdef->d_SI_CONFIG_DIVIDER_LSB) 314 #define SI_CONFIG_DIVIDER_MASK (scn->targetdef->d_SI_CONFIG_DIVIDER_MASK) 315 #define SI_BASE_ADDRESS (scn->targetdef->d_SI_BASE_ADDRESS) 316 #define SI_CONFIG_OFFSET (scn->targetdef->d_SI_CONFIG_OFFSET) 317 #define SI_TX_DATA0_OFFSET (scn->targetdef->d_SI_TX_DATA0_OFFSET) 318 #define SI_TX_DATA1_OFFSET (scn->targetdef->d_SI_TX_DATA1_OFFSET) 319 #define SI_RX_DATA0_OFFSET (scn->targetdef->d_SI_RX_DATA0_OFFSET) 320 #define SI_RX_DATA1_OFFSET (scn->targetdef->d_SI_RX_DATA1_OFFSET) 321 #define SI_CS_OFFSET (scn->targetdef->d_SI_CS_OFFSET) 322 #define SI_CS_DONE_ERR_MASK (scn->targetdef->d_SI_CS_DONE_ERR_MASK) 323 #define SI_CS_DONE_INT_MASK (scn->targetdef->d_SI_CS_DONE_INT_MASK) 324 #define SI_CS_START_LSB (scn->targetdef->d_SI_CS_START_LSB) 325 #define SI_CS_START_MASK (scn->targetdef->d_SI_CS_START_MASK) 326 #define SI_CS_RX_CNT_LSB (scn->targetdef->d_SI_CS_RX_CNT_LSB) 327 #define SI_CS_RX_CNT_MASK (scn->targetdef->d_SI_CS_RX_CNT_MASK) 328 #define SI_CS_TX_CNT_LSB (scn->targetdef->d_SI_CS_TX_CNT_LSB) 329 #define SI_CS_TX_CNT_MASK (scn->targetdef->d_SI_CS_TX_CNT_MASK) 330 #define EEPROM_SZ (scn->targetdef->d_BOARD_DATA_SZ) 331 #define EEPROM_EXT_SZ (scn->targetdef->d_BOARD_EXT_DATA_SZ) 332 #define MBOX_BASE_ADDRESS (scn->targetdef->d_MBOX_BASE_ADDRESS) 333 #define LOCAL_SCRATCH_OFFSET (scn->targetdef->d_LOCAL_SCRATCH_OFFSET) 334 #define CPU_CLOCK_OFFSET (scn->targetdef->d_CPU_CLOCK_OFFSET) 335 #define LPO_CAL_OFFSET (scn->targetdef->d_LPO_CAL_OFFSET) 336 #define GPIO_PIN10_OFFSET (scn->targetdef->d_GPIO_PIN10_OFFSET) 337 #define GPIO_PIN11_OFFSET (scn->targetdef->d_GPIO_PIN11_OFFSET) 338 #define GPIO_PIN12_OFFSET (scn->targetdef->d_GPIO_PIN12_OFFSET) 339 #define GPIO_PIN13_OFFSET (scn->targetdef->d_GPIO_PIN13_OFFSET) 340 #define CLOCK_GPIO_OFFSET (scn->targetdef->d_CLOCK_GPIO_OFFSET) 341 #define CPU_CLOCK_STANDARD_LSB (scn->targetdef->d_CPU_CLOCK_STANDARD_LSB) 342 #define CPU_CLOCK_STANDARD_MASK (scn->targetdef->d_CPU_CLOCK_STANDARD_MASK) 343 #define LPO_CAL_ENABLE_LSB (scn->targetdef->d_LPO_CAL_ENABLE_LSB) 344 #define LPO_CAL_ENABLE_MASK (scn->targetdef->d_LPO_CAL_ENABLE_MASK) 345 #define CLOCK_GPIO_BT_CLK_OUT_EN_LSB \ 346 (scn->targetdef->d_CLOCK_GPIO_BT_CLK_OUT_EN_LSB) 347 #define CLOCK_GPIO_BT_CLK_OUT_EN_MASK \ 348 (scn->targetdef->d_CLOCK_GPIO_BT_CLK_OUT_EN_MASK) 349 #define ANALOG_INTF_BASE_ADDRESS (scn->targetdef->d_ANALOG_INTF_BASE_ADDRESS) 350 #define WLAN_MAC_BASE_ADDRESS (scn->targetdef->d_WLAN_MAC_BASE_ADDRESS) 351 #define FW_INDICATOR_ADDRESS (scn->targetdef->d_FW_INDICATOR_ADDRESS) 352 #define DRAM_BASE_ADDRESS (scn->targetdef->d_DRAM_BASE_ADDRESS) 353 #define SOC_CORE_BASE_ADDRESS (scn->targetdef->d_SOC_CORE_BASE_ADDRESS) 354 #define CORE_CTRL_ADDRESS (scn->targetdef->d_CORE_CTRL_ADDRESS) 355 #define CORE_CTRL_CPU_INTR_MASK (scn->targetdef->d_CORE_CTRL_CPU_INTR_MASK) 356 #define SOC_RESET_CONTROL_ADDRESS (scn->targetdef->d_SOC_RESET_CONTROL_ADDRESS) 357 #define SOC_RESET_CONTROL_CPU_WARM_RST_MASK \ 358 (scn->targetdef->d_SOC_RESET_CONTROL_CPU_WARM_RST_MASK) 359 #define CPU_INTR_ADDRESS (scn->targetdef->d_CPU_INTR_ADDRESS) 360 #define SOC_LF_TIMER_CONTROL0_ADDRESS \ 361 (scn->targetdef->d_SOC_LF_TIMER_CONTROL0_ADDRESS) 362 #define SOC_LF_TIMER_CONTROL0_ENABLE_MASK \ 363 (scn->targetdef->d_SOC_LF_TIMER_CONTROL0_ENABLE_MASK) 364 365 366 #define CHIP_ID_ADDRESS (scn->targetdef->d_SOC_CHIP_ID_ADDRESS) 367 #define SOC_CHIP_ID_REVISION_MASK (scn->targetdef->d_SOC_CHIP_ID_REVISION_MASK) 368 #define SOC_CHIP_ID_REVISION_LSB (scn->targetdef->d_SOC_CHIP_ID_REVISION_LSB) 369 #define SOC_CHIP_ID_VERSION_MASK (scn->targetdef->d_SOC_CHIP_ID_VERSION_MASK) 370 #define SOC_CHIP_ID_VERSION_LSB (scn->targetdef->d_SOC_CHIP_ID_VERSION_LSB) 371 #define CHIP_ID_REVISION_GET(x) \ 372 (((x) & SOC_CHIP_ID_REVISION_MASK) >> SOC_CHIP_ID_REVISION_LSB) 373 #define CHIP_ID_VERSION_GET(x) \ 374 (((x) & SOC_CHIP_ID_VERSION_MASK) >> SOC_CHIP_ID_VERSION_LSB) 375 376 /* misc */ 377 #define SR_WR_INDEX_ADDRESS (scn->targetdef->d_SR_WR_INDEX_ADDRESS) 378 #define DST_WATERMARK_ADDRESS (scn->targetdef->d_DST_WATERMARK_ADDRESS) 379 #define SOC_POWER_REG_OFFSET (scn->targetdef->d_SOC_POWER_REG_OFFSET) 380 /* end */ 381 382 /* htt_rx.c */ 383 #define RX_MSDU_END_4_FIRST_MSDU_MASK \ 384 (pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_MASK) 385 #define RX_MSDU_END_4_FIRST_MSDU_LSB \ 386 (pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_LSB) 387 #define RX_MPDU_START_0_RETRY_LSB \ 388 (pdev->targetdef->d_RX_MPDU_START_0_RETRY_LSB) 389 #define RX_MPDU_START_0_RETRY_MASK \ 390 (pdev->targetdef->d_RX_MPDU_START_0_RETRY_MASK) 391 #define RX_MPDU_START_0_SEQ_NUM_MASK \ 392 (pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_MASK) 393 #define RX_MPDU_START_0_SEQ_NUM_LSB \ 394 (pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_LSB) 395 #define RX_MPDU_START_2_PN_47_32_LSB \ 396 (pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_LSB) 397 #define RX_MPDU_START_2_PN_47_32_MASK \ 398 (pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_MASK) 399 #define RX_MPDU_START_2_TID_LSB \ 400 (pdev->targetdef->d_RX_MPDU_START_2_TID_LSB) 401 #define RX_MPDU_START_2_TID_MASK \ 402 (pdev->targetdef->d_RX_MPDU_START_2_TID_MASK) 403 #define RX_MSDU_END_1_KEY_ID_OCT_MASK \ 404 (pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_MASK) 405 #define RX_MSDU_END_1_KEY_ID_OCT_LSB \ 406 (pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_LSB) 407 #define RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK \ 408 (pdev->targetdef->d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK) 409 #define RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB \ 410 (pdev->targetdef->d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB) 411 #define RX_MSDU_END_4_LAST_MSDU_MASK \ 412 (pdev->targetdef->d_RX_MSDU_END_4_LAST_MSDU_MASK) 413 #define RX_MSDU_END_4_LAST_MSDU_LSB \ 414 (pdev->targetdef->d_RX_MSDU_END_4_LAST_MSDU_LSB) 415 #define RX_ATTENTION_0_MCAST_BCAST_MASK \ 416 (pdev->targetdef->d_RX_ATTENTION_0_MCAST_BCAST_MASK) 417 #define RX_ATTENTION_0_MCAST_BCAST_LSB \ 418 (pdev->targetdef->d_RX_ATTENTION_0_MCAST_BCAST_LSB) 419 #define RX_ATTENTION_0_FRAGMENT_MASK \ 420 (pdev->targetdef->d_RX_ATTENTION_0_FRAGMENT_MASK) 421 #define RX_ATTENTION_0_FRAGMENT_LSB \ 422 (pdev->targetdef->d_RX_ATTENTION_0_FRAGMENT_LSB) 423 #define RX_ATTENTION_0_MPDU_LENGTH_ERR_MASK \ 424 (pdev->targetdef->d_RX_ATTENTION_0_MPDU_LENGTH_ERR_MASK) 425 #define RX_FRAG_INFO_0_RING2_MORE_COUNT_MASK \ 426 (pdev->targetdef->d_RX_FRAG_INFO_0_RING2_MORE_COUNT_MASK) 427 #define RX_FRAG_INFO_0_RING2_MORE_COUNT_LSB \ 428 (pdev->targetdef->d_RX_FRAG_INFO_0_RING2_MORE_COUNT_LSB) 429 #define RX_MSDU_START_0_MSDU_LENGTH_MASK \ 430 (pdev->targetdef->d_RX_MSDU_START_0_MSDU_LENGTH_MASK) 431 #define RX_MSDU_START_0_MSDU_LENGTH_LSB \ 432 (pdev->targetdef->d_RX_MSDU_START_0_MSDU_LENGTH_LSB) 433 #define RX_MSDU_START_2_DECAP_FORMAT_OFFSET \ 434 (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_OFFSET) 435 #define RX_MSDU_START_2_DECAP_FORMAT_MASK \ 436 (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_MASK) 437 #define RX_MSDU_START_2_DECAP_FORMAT_LSB \ 438 (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_LSB) 439 #define RX_MPDU_START_0_ENCRYPTED_MASK \ 440 (pdev->targetdef->d_RX_MPDU_START_0_ENCRYPTED_MASK) 441 #define RX_MPDU_START_0_ENCRYPTED_LSB \ 442 (pdev->targetdef->d_RX_MPDU_START_0_ENCRYPTED_LSB) 443 #define RX_ATTENTION_0_MORE_DATA_MASK \ 444 (pdev->targetdef->d_RX_ATTENTION_0_MORE_DATA_MASK) 445 #define RX_ATTENTION_0_MSDU_DONE_MASK \ 446 (pdev->targetdef->d_RX_ATTENTION_0_MSDU_DONE_MASK) 447 #define RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK \ 448 (pdev->targetdef->d_RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK) 449 /* end */ 450 451 /* copy_engine.c */ 452 /* end */ 453 /* PLL start */ 454 #define EFUSE_OFFSET (scn->targetdef->d_EFUSE_OFFSET) 455 #define EFUSE_XTAL_SEL_MSB (scn->targetdef->d_EFUSE_XTAL_SEL_MSB) 456 #define EFUSE_XTAL_SEL_LSB (scn->targetdef->d_EFUSE_XTAL_SEL_LSB) 457 #define EFUSE_XTAL_SEL_MASK (scn->targetdef->d_EFUSE_XTAL_SEL_MASK) 458 #define BB_PLL_CONFIG_OFFSET (scn->targetdef->d_BB_PLL_CONFIG_OFFSET) 459 #define BB_PLL_CONFIG_OUTDIV_MSB (scn->targetdef->d_BB_PLL_CONFIG_OUTDIV_MSB) 460 #define BB_PLL_CONFIG_OUTDIV_LSB (scn->targetdef->d_BB_PLL_CONFIG_OUTDIV_LSB) 461 #define BB_PLL_CONFIG_OUTDIV_MASK (scn->targetdef->d_BB_PLL_CONFIG_OUTDIV_MASK) 462 #define BB_PLL_CONFIG_FRAC_MSB (scn->targetdef->d_BB_PLL_CONFIG_FRAC_MSB) 463 #define BB_PLL_CONFIG_FRAC_LSB (scn->targetdef->d_BB_PLL_CONFIG_FRAC_LSB) 464 #define BB_PLL_CONFIG_FRAC_MASK (scn->targetdef->d_BB_PLL_CONFIG_FRAC_MASK) 465 #define WLAN_PLL_SETTLE_TIME_MSB (scn->targetdef->d_WLAN_PLL_SETTLE_TIME_MSB) 466 #define WLAN_PLL_SETTLE_TIME_LSB (scn->targetdef->d_WLAN_PLL_SETTLE_TIME_LSB) 467 #define WLAN_PLL_SETTLE_TIME_MASK (scn->targetdef->d_WLAN_PLL_SETTLE_TIME_MASK) 468 #define WLAN_PLL_SETTLE_OFFSET (scn->targetdef->d_WLAN_PLL_SETTLE_OFFSET) 469 #define WLAN_PLL_SETTLE_SW_MASK (scn->targetdef->d_WLAN_PLL_SETTLE_SW_MASK) 470 #define WLAN_PLL_SETTLE_RSTMASK (scn->targetdef->d_WLAN_PLL_SETTLE_RSTMASK) 471 #define WLAN_PLL_SETTLE_RESET (scn->targetdef->d_WLAN_PLL_SETTLE_RESET) 472 #define WLAN_PLL_CONTROL_NOPWD_MSB \ 473 (scn->targetdef->d_WLAN_PLL_CONTROL_NOPWD_MSB) 474 #define WLAN_PLL_CONTROL_NOPWD_LSB \ 475 (scn->targetdef->d_WLAN_PLL_CONTROL_NOPWD_LSB) 476 #define WLAN_PLL_CONTROL_NOPWD_MASK \ 477 (scn->targetdef->d_WLAN_PLL_CONTROL_NOPWD_MASK) 478 #define WLAN_PLL_CONTROL_BYPASS_MSB \ 479 (scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_MSB) 480 #define WLAN_PLL_CONTROL_BYPASS_LSB \ 481 (scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_LSB) 482 #define WLAN_PLL_CONTROL_BYPASS_MASK \ 483 (scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_MASK) 484 #define WLAN_PLL_CONTROL_BYPASS_RESET \ 485 (scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_RESET) 486 #define WLAN_PLL_CONTROL_CLK_SEL_MSB \ 487 (scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_MSB) 488 #define WLAN_PLL_CONTROL_CLK_SEL_LSB \ 489 (scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_LSB) 490 #define WLAN_PLL_CONTROL_CLK_SEL_MASK \ 491 (scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_MASK) 492 #define WLAN_PLL_CONTROL_CLK_SEL_RESET \ 493 (scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_RESET) 494 #define WLAN_PLL_CONTROL_REFDIV_MSB \ 495 (scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_MSB) 496 #define WLAN_PLL_CONTROL_REFDIV_LSB \ 497 (scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_LSB) 498 #define WLAN_PLL_CONTROL_REFDIV_MASK \ 499 (scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_MASK) 500 #define WLAN_PLL_CONTROL_REFDIV_RESET \ 501 (scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_RESET) 502 #define WLAN_PLL_CONTROL_DIV_MSB (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_MSB) 503 #define WLAN_PLL_CONTROL_DIV_LSB (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_LSB) 504 #define WLAN_PLL_CONTROL_DIV_MASK (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_MASK) 505 #define WLAN_PLL_CONTROL_DIV_RESET \ 506 (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_RESET) 507 #define WLAN_PLL_CONTROL_OFFSET (scn->targetdef->d_WLAN_PLL_CONTROL_OFFSET) 508 #define WLAN_PLL_CONTROL_SW_MASK (scn->targetdef->d_WLAN_PLL_CONTROL_SW_MASK) 509 #define WLAN_PLL_CONTROL_RSTMASK (scn->targetdef->d_WLAN_PLL_CONTROL_RSTMASK) 510 #define WLAN_PLL_CONTROL_RESET (scn->targetdef->d_WLAN_PLL_CONTROL_RESET) 511 #define SOC_CORE_CLK_CTRL_OFFSET (scn->targetdef->d_SOC_CORE_CLK_CTRL_OFFSET) 512 #define SOC_CORE_CLK_CTRL_DIV_MSB (scn->targetdef->d_SOC_CORE_CLK_CTRL_DIV_MSB) 513 #define SOC_CORE_CLK_CTRL_DIV_LSB (scn->targetdef->d_SOC_CORE_CLK_CTRL_DIV_LSB) 514 #define SOC_CORE_CLK_CTRL_DIV_MASK \ 515 (scn->targetdef->d_SOC_CORE_CLK_CTRL_DIV_MASK) 516 #define RTC_SYNC_STATUS_PLL_CHANGING_MSB \ 517 (scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_MSB) 518 #define RTC_SYNC_STATUS_PLL_CHANGING_LSB \ 519 (scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_LSB) 520 #define RTC_SYNC_STATUS_PLL_CHANGING_MASK \ 521 (scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_MASK) 522 #define RTC_SYNC_STATUS_PLL_CHANGING_RESET \ 523 (scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_RESET) 524 #define RTC_SYNC_STATUS_OFFSET (scn->targetdef->d_RTC_SYNC_STATUS_OFFSET) 525 #define SOC_CPU_CLOCK_OFFSET (scn->targetdef->d_SOC_CPU_CLOCK_OFFSET) 526 #define SOC_CPU_CLOCK_STANDARD_MSB \ 527 (scn->targetdef->d_SOC_CPU_CLOCK_STANDARD_MSB) 528 #define SOC_CPU_CLOCK_STANDARD_LSB \ 529 (scn->targetdef->d_SOC_CPU_CLOCK_STANDARD_LSB) 530 #define SOC_CPU_CLOCK_STANDARD_MASK \ 531 (scn->targetdef->d_SOC_CPU_CLOCK_STANDARD_MASK) 532 /* PLL end */ 533 534 /* SET macros */ 535 #define WLAN_SYSTEM_SLEEP_DISABLE_SET(x) \ 536 (((x) << WLAN_SYSTEM_SLEEP_DISABLE_LSB) & \ 537 WLAN_SYSTEM_SLEEP_DISABLE_MASK) 538 #define SI_CONFIG_BIDIR_OD_DATA_SET(x) \ 539 (((x) << SI_CONFIG_BIDIR_OD_DATA_LSB) & SI_CONFIG_BIDIR_OD_DATA_MASK) 540 #define SI_CONFIG_I2C_SET(x) (((x) << SI_CONFIG_I2C_LSB) & SI_CONFIG_I2C_MASK) 541 #define SI_CONFIG_POS_SAMPLE_SET(x) \ 542 (((x) << SI_CONFIG_POS_SAMPLE_LSB) & SI_CONFIG_POS_SAMPLE_MASK) 543 #define SI_CONFIG_INACTIVE_CLK_SET(x) \ 544 (((x) << SI_CONFIG_INACTIVE_CLK_LSB) & SI_CONFIG_INACTIVE_CLK_MASK) 545 #define SI_CONFIG_INACTIVE_DATA_SET(x) \ 546 (((x) << SI_CONFIG_INACTIVE_DATA_LSB) & SI_CONFIG_INACTIVE_DATA_MASK) 547 #define SI_CONFIG_DIVIDER_SET(x) \ 548 (((x) << SI_CONFIG_DIVIDER_LSB) & SI_CONFIG_DIVIDER_MASK) 549 #define SI_CS_START_SET(x) (((x) << SI_CS_START_LSB) & SI_CS_START_MASK) 550 #define SI_CS_RX_CNT_SET(x) (((x) << SI_CS_RX_CNT_LSB) & SI_CS_RX_CNT_MASK) 551 #define SI_CS_TX_CNT_SET(x) (((x) << SI_CS_TX_CNT_LSB) & SI_CS_TX_CNT_MASK) 552 #define LPO_CAL_ENABLE_SET(x) \ 553 (((x) << LPO_CAL_ENABLE_LSB) & LPO_CAL_ENABLE_MASK) 554 #define CPU_CLOCK_STANDARD_SET(x) \ 555 (((x) << CPU_CLOCK_STANDARD_LSB) & CPU_CLOCK_STANDARD_MASK) 556 #define CLOCK_GPIO_BT_CLK_OUT_EN_SET(x) \ 557 (((x) << CLOCK_GPIO_BT_CLK_OUT_EN_LSB) & CLOCK_GPIO_BT_CLK_OUT_EN_MASK) 558 /* copy_engine.c */ 559 /* end */ 560 /* PLL start */ 561 #define EFUSE_XTAL_SEL_GET(x) \ 562 (((x) & EFUSE_XTAL_SEL_MASK) >> EFUSE_XTAL_SEL_LSB) 563 #define EFUSE_XTAL_SEL_SET(x) \ 564 (((x) << EFUSE_XTAL_SEL_LSB) & EFUSE_XTAL_SEL_MASK) 565 #define BB_PLL_CONFIG_OUTDIV_GET(x) \ 566 (((x) & BB_PLL_CONFIG_OUTDIV_MASK) >> BB_PLL_CONFIG_OUTDIV_LSB) 567 #define BB_PLL_CONFIG_OUTDIV_SET(x) \ 568 (((x) << BB_PLL_CONFIG_OUTDIV_LSB) & BB_PLL_CONFIG_OUTDIV_MASK) 569 #define BB_PLL_CONFIG_FRAC_GET(x) \ 570 (((x) & BB_PLL_CONFIG_FRAC_MASK) >> BB_PLL_CONFIG_FRAC_LSB) 571 #define BB_PLL_CONFIG_FRAC_SET(x) \ 572 (((x) << BB_PLL_CONFIG_FRAC_LSB) & BB_PLL_CONFIG_FRAC_MASK) 573 #define WLAN_PLL_SETTLE_TIME_GET(x) \ 574 (((x) & WLAN_PLL_SETTLE_TIME_MASK) >> WLAN_PLL_SETTLE_TIME_LSB) 575 #define WLAN_PLL_SETTLE_TIME_SET(x) \ 576 (((x) << WLAN_PLL_SETTLE_TIME_LSB) & WLAN_PLL_SETTLE_TIME_MASK) 577 #define WLAN_PLL_CONTROL_NOPWD_GET(x) \ 578 (((x) & WLAN_PLL_CONTROL_NOPWD_MASK) >> WLAN_PLL_CONTROL_NOPWD_LSB) 579 #define WLAN_PLL_CONTROL_NOPWD_SET(x) \ 580 (((x) << WLAN_PLL_CONTROL_NOPWD_LSB) & WLAN_PLL_CONTROL_NOPWD_MASK) 581 #define WLAN_PLL_CONTROL_BYPASS_GET(x) \ 582 (((x) & WLAN_PLL_CONTROL_BYPASS_MASK) >> WLAN_PLL_CONTROL_BYPASS_LSB) 583 #define WLAN_PLL_CONTROL_BYPASS_SET(x) \ 584 (((x) << WLAN_PLL_CONTROL_BYPASS_LSB) & WLAN_PLL_CONTROL_BYPASS_MASK) 585 #define WLAN_PLL_CONTROL_CLK_SEL_GET(x) \ 586 (((x) & WLAN_PLL_CONTROL_CLK_SEL_MASK) >> WLAN_PLL_CONTROL_CLK_SEL_LSB) 587 #define WLAN_PLL_CONTROL_CLK_SEL_SET(x) \ 588 (((x) << WLAN_PLL_CONTROL_CLK_SEL_LSB) & WLAN_PLL_CONTROL_CLK_SEL_MASK) 589 #define WLAN_PLL_CONTROL_REFDIV_GET(x) \ 590 (((x) & WLAN_PLL_CONTROL_REFDIV_MASK) >> WLAN_PLL_CONTROL_REFDIV_LSB) 591 #define WLAN_PLL_CONTROL_REFDIV_SET(x) \ 592 (((x) << WLAN_PLL_CONTROL_REFDIV_LSB) & WLAN_PLL_CONTROL_REFDIV_MASK) 593 #define WLAN_PLL_CONTROL_DIV_GET(x) \ 594 (((x) & WLAN_PLL_CONTROL_DIV_MASK) >> WLAN_PLL_CONTROL_DIV_LSB) 595 #define WLAN_PLL_CONTROL_DIV_SET(x) \ 596 (((x) << WLAN_PLL_CONTROL_DIV_LSB) & WLAN_PLL_CONTROL_DIV_MASK) 597 #define SOC_CORE_CLK_CTRL_DIV_GET(x) \ 598 (((x) & SOC_CORE_CLK_CTRL_DIV_MASK) >> SOC_CORE_CLK_CTRL_DIV_LSB) 599 #define SOC_CORE_CLK_CTRL_DIV_SET(x) \ 600 (((x) << SOC_CORE_CLK_CTRL_DIV_LSB) & SOC_CORE_CLK_CTRL_DIV_MASK) 601 #define RTC_SYNC_STATUS_PLL_CHANGING_GET(x) \ 602 (((x) & RTC_SYNC_STATUS_PLL_CHANGING_MASK) >> \ 603 RTC_SYNC_STATUS_PLL_CHANGING_LSB) 604 #define RTC_SYNC_STATUS_PLL_CHANGING_SET(x) \ 605 (((x) << RTC_SYNC_STATUS_PLL_CHANGING_LSB) & \ 606 RTC_SYNC_STATUS_PLL_CHANGING_MASK) 607 #define SOC_CPU_CLOCK_STANDARD_GET(x) \ 608 (((x) & SOC_CPU_CLOCK_STANDARD_MASK) >> SOC_CPU_CLOCK_STANDARD_LSB) 609 #define SOC_CPU_CLOCK_STANDARD_SET(x) \ 610 (((x) << SOC_CPU_CLOCK_STANDARD_LSB) & SOC_CPU_CLOCK_STANDARD_MASK) 611 /* PLL end */ 612 613 #ifdef QCA_WIFI_3_0_ADRASTEA 614 #define Q6_ENABLE_REGISTER_0 \ 615 (scn->targetdef->d_Q6_ENABLE_REGISTER_0) 616 #define Q6_ENABLE_REGISTER_1 \ 617 (scn->targetdef->d_Q6_ENABLE_REGISTER_1) 618 #define Q6_CAUSE_REGISTER_0 \ 619 (scn->targetdef->d_Q6_CAUSE_REGISTER_0) 620 #define Q6_CAUSE_REGISTER_1 \ 621 (scn->targetdef->d_Q6_CAUSE_REGISTER_1) 622 #define Q6_CLEAR_REGISTER_0 \ 623 (scn->targetdef->d_Q6_CLEAR_REGISTER_0) 624 #define Q6_CLEAR_REGISTER_1 \ 625 (scn->targetdef->d_Q6_CLEAR_REGISTER_1) 626 #endif 627 628 struct hostdef_s { 629 uint32_t d_INT_STATUS_ENABLE_ERROR_LSB; 630 uint32_t d_INT_STATUS_ENABLE_ERROR_MASK; 631 uint32_t d_INT_STATUS_ENABLE_CPU_LSB; 632 uint32_t d_INT_STATUS_ENABLE_CPU_MASK; 633 uint32_t d_INT_STATUS_ENABLE_COUNTER_LSB; 634 uint32_t d_INT_STATUS_ENABLE_COUNTER_MASK; 635 uint32_t d_INT_STATUS_ENABLE_MBOX_DATA_LSB; 636 uint32_t d_INT_STATUS_ENABLE_MBOX_DATA_MASK; 637 uint32_t d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB; 638 uint32_t d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK; 639 uint32_t d_ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB; 640 uint32_t d_ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK; 641 uint32_t d_COUNTER_INT_STATUS_ENABLE_BIT_LSB; 642 uint32_t d_COUNTER_INT_STATUS_ENABLE_BIT_MASK; 643 uint32_t d_INT_STATUS_ENABLE_ADDRESS; 644 uint32_t d_CPU_INT_STATUS_ENABLE_BIT_LSB; 645 uint32_t d_CPU_INT_STATUS_ENABLE_BIT_MASK; 646 uint32_t d_HOST_INT_STATUS_ADDRESS; 647 uint32_t d_CPU_INT_STATUS_ADDRESS; 648 uint32_t d_ERROR_INT_STATUS_ADDRESS; 649 uint32_t d_ERROR_INT_STATUS_WAKEUP_MASK; 650 uint32_t d_ERROR_INT_STATUS_WAKEUP_LSB; 651 uint32_t d_ERROR_INT_STATUS_RX_UNDERFLOW_MASK; 652 uint32_t d_ERROR_INT_STATUS_RX_UNDERFLOW_LSB; 653 uint32_t d_ERROR_INT_STATUS_TX_OVERFLOW_MASK; 654 uint32_t d_ERROR_INT_STATUS_TX_OVERFLOW_LSB; 655 uint32_t d_COUNT_DEC_ADDRESS; 656 uint32_t d_HOST_INT_STATUS_CPU_MASK; 657 uint32_t d_HOST_INT_STATUS_CPU_LSB; 658 uint32_t d_HOST_INT_STATUS_ERROR_MASK; 659 uint32_t d_HOST_INT_STATUS_ERROR_LSB; 660 uint32_t d_HOST_INT_STATUS_COUNTER_MASK; 661 uint32_t d_HOST_INT_STATUS_COUNTER_LSB; 662 uint32_t d_RX_LOOKAHEAD_VALID_ADDRESS; 663 uint32_t d_WINDOW_DATA_ADDRESS; 664 uint32_t d_WINDOW_READ_ADDR_ADDRESS; 665 uint32_t d_WINDOW_WRITE_ADDR_ADDRESS; 666 uint32_t d_SOC_GLOBAL_RESET_ADDRESS; 667 uint32_t d_RTC_STATE_ADDRESS; 668 uint32_t d_RTC_STATE_COLD_RESET_MASK; 669 uint32_t d_RTC_STATE_V_MASK; 670 uint32_t d_RTC_STATE_V_LSB; 671 uint32_t d_FW_IND_EVENT_PENDING; 672 uint32_t d_FW_IND_INITIALIZED; 673 uint32_t d_FW_IND_HELPER; 674 uint32_t d_RTC_STATE_V_ON; 675 #if defined(SDIO_3_0) 676 uint32_t d_HOST_INT_STATUS_MBOX_DATA_MASK; 677 uint32_t d_HOST_INT_STATUS_MBOX_DATA_LSB; 678 #endif 679 uint32_t d_MSI_MAGIC_ADR_ADDRESS; 680 uint32_t d_MSI_MAGIC_ADDRESS; 681 uint32_t d_ENABLE_MSI; 682 uint32_t d_MUX_ID_MASK; 683 uint32_t d_TRANSACTION_ID_MASK; 684 uint32_t d_DESC_DATA_FLAG_MASK; 685 }; 686 #define DESC_DATA_FLAG_MASK (scn->hostdef->d_DESC_DATA_FLAG_MASK) 687 #define MUX_ID_MASK (scn->hostdef->d_MUX_ID_MASK) 688 #define TRANSACTION_ID_MASK (scn->hostdef->d_TRANSACTION_ID_MASK) 689 #define ENABLE_MSI (scn->hostdef->d_ENABLE_MSI) 690 #define INT_STATUS_ENABLE_ERROR_LSB \ 691 (scn->hostdef->d_INT_STATUS_ENABLE_ERROR_LSB) 692 #define INT_STATUS_ENABLE_ERROR_MASK \ 693 (scn->hostdef->d_INT_STATUS_ENABLE_ERROR_MASK) 694 #define INT_STATUS_ENABLE_CPU_LSB (scn->hostdef->d_INT_STATUS_ENABLE_CPU_LSB) 695 #define INT_STATUS_ENABLE_CPU_MASK (scn->hostdef->d_INT_STATUS_ENABLE_CPU_MASK) 696 #define INT_STATUS_ENABLE_COUNTER_LSB \ 697 (scn->hostdef->d_INT_STATUS_ENABLE_COUNTER_LSB) 698 #define INT_STATUS_ENABLE_COUNTER_MASK \ 699 (scn->hostdef->d_INT_STATUS_ENABLE_COUNTER_MASK) 700 #define INT_STATUS_ENABLE_MBOX_DATA_LSB \ 701 (scn->hostdef->d_INT_STATUS_ENABLE_MBOX_DATA_LSB) 702 #define INT_STATUS_ENABLE_MBOX_DATA_MASK \ 703 (scn->hostdef->d_INT_STATUS_ENABLE_MBOX_DATA_MASK) 704 #define ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB \ 705 (scn->hostdef->d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB) 706 #define ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK \ 707 (scn->hostdef->d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK) 708 #define ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB \ 709 (scn->hostdef->d_ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB) 710 #define ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK \ 711 (scn->hostdef->d_ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK) 712 #define COUNTER_INT_STATUS_ENABLE_BIT_LSB \ 713 (scn->hostdef->d_COUNTER_INT_STATUS_ENABLE_BIT_LSB) 714 #define COUNTER_INT_STATUS_ENABLE_BIT_MASK \ 715 (scn->hostdef->d_COUNTER_INT_STATUS_ENABLE_BIT_MASK) 716 #define INT_STATUS_ENABLE_ADDRESS \ 717 (scn->hostdef->d_INT_STATUS_ENABLE_ADDRESS) 718 #define CPU_INT_STATUS_ENABLE_BIT_LSB \ 719 (scn->hostdef->d_CPU_INT_STATUS_ENABLE_BIT_LSB) 720 #define CPU_INT_STATUS_ENABLE_BIT_MASK \ 721 (scn->hostdef->d_CPU_INT_STATUS_ENABLE_BIT_MASK) 722 #define HOST_INT_STATUS_ADDRESS (scn->hostdef->d_HOST_INT_STATUS_ADDRESS) 723 #define CPU_INT_STATUS_ADDRESS (scn->hostdef->d_CPU_INT_STATUS_ADDRESS) 724 #define ERROR_INT_STATUS_ADDRESS (scn->hostdef->d_ERROR_INT_STATUS_ADDRESS) 725 #define ERROR_INT_STATUS_WAKEUP_MASK \ 726 (scn->hostdef->d_ERROR_INT_STATUS_WAKEUP_MASK) 727 #define ERROR_INT_STATUS_WAKEUP_LSB \ 728 (scn->hostdef->d_ERROR_INT_STATUS_WAKEUP_LSB) 729 #define ERROR_INT_STATUS_RX_UNDERFLOW_MASK \ 730 (scn->hostdef->d_ERROR_INT_STATUS_RX_UNDERFLOW_MASK) 731 #define ERROR_INT_STATUS_RX_UNDERFLOW_LSB \ 732 (scn->hostdef->d_ERROR_INT_STATUS_RX_UNDERFLOW_LSB) 733 #define ERROR_INT_STATUS_TX_OVERFLOW_MASK \ 734 (scn->hostdef->d_ERROR_INT_STATUS_TX_OVERFLOW_MASK) 735 #define ERROR_INT_STATUS_TX_OVERFLOW_LSB \ 736 (scn->hostdef->d_ERROR_INT_STATUS_TX_OVERFLOW_LSB) 737 #define COUNT_DEC_ADDRESS (scn->hostdef->d_COUNT_DEC_ADDRESS) 738 #define HOST_INT_STATUS_CPU_MASK (scn->hostdef->d_HOST_INT_STATUS_CPU_MASK) 739 #define HOST_INT_STATUS_CPU_LSB (scn->hostdef->d_HOST_INT_STATUS_CPU_LSB) 740 #define HOST_INT_STATUS_ERROR_MASK (scn->hostdef->d_HOST_INT_STATUS_ERROR_MASK) 741 #define HOST_INT_STATUS_ERROR_LSB (scn->hostdef->d_HOST_INT_STATUS_ERROR_LSB) 742 #define HOST_INT_STATUS_COUNTER_MASK \ 743 (scn->hostdef->d_HOST_INT_STATUS_COUNTER_MASK) 744 #define HOST_INT_STATUS_COUNTER_LSB \ 745 (scn->hostdef->d_HOST_INT_STATUS_COUNTER_LSB) 746 #define RX_LOOKAHEAD_VALID_ADDRESS (scn->hostdef->d_RX_LOOKAHEAD_VALID_ADDRESS) 747 #define WINDOW_DATA_ADDRESS (scn->hostdef->d_WINDOW_DATA_ADDRESS) 748 #define WINDOW_READ_ADDR_ADDRESS (scn->hostdef->d_WINDOW_READ_ADDR_ADDRESS) 749 #define WINDOW_WRITE_ADDR_ADDRESS (scn->hostdef->d_WINDOW_WRITE_ADDR_ADDRESS) 750 #define SOC_GLOBAL_RESET_ADDRESS (scn->hostdef->d_SOC_GLOBAL_RESET_ADDRESS) 751 #define RTC_STATE_ADDRESS (scn->hostdef->d_RTC_STATE_ADDRESS) 752 #define RTC_STATE_COLD_RESET_MASK (scn->hostdef->d_RTC_STATE_COLD_RESET_MASK) 753 #define RTC_STATE_V_MASK (scn->hostdef->d_RTC_STATE_V_MASK) 754 #define RTC_STATE_V_LSB (scn->hostdef->d_RTC_STATE_V_LSB) 755 #define FW_IND_EVENT_PENDING (scn->hostdef->d_FW_IND_EVENT_PENDING) 756 #define FW_IND_INITIALIZED (scn->hostdef->d_FW_IND_INITIALIZED) 757 #define FW_IND_HELPER (scn->hostdef->d_FW_IND_HELPER) 758 #define RTC_STATE_V_ON (scn->hostdef->d_RTC_STATE_V_ON) 759 #if defined(SDIO_3_0) 760 #define HOST_INT_STATUS_MBOX_DATA_MASK \ 761 (scn->hostdef->d_HOST_INT_STATUS_MBOX_DATA_MASK) 762 #define HOST_INT_STATUS_MBOX_DATA_LSB \ 763 (scn->hostdef->d_HOST_INT_STATUS_MBOX_DATA_LSB) 764 #endif 765 766 #if !defined(MSI_MAGIC_ADR_ADDRESS) 767 #define MSI_MAGIC_ADR_ADDRESS 0 768 #define MSI_MAGIC_ADDRESS 0 769 #endif 770 771 /* SET/GET macros */ 772 #define INT_STATUS_ENABLE_ERROR_SET(x) \ 773 (((x) << INT_STATUS_ENABLE_ERROR_LSB) & INT_STATUS_ENABLE_ERROR_MASK) 774 #define INT_STATUS_ENABLE_CPU_SET(x) \ 775 (((x) << INT_STATUS_ENABLE_CPU_LSB) & INT_STATUS_ENABLE_CPU_MASK) 776 #define INT_STATUS_ENABLE_COUNTER_SET(x) \ 777 (((x) << INT_STATUS_ENABLE_COUNTER_LSB) & \ 778 INT_STATUS_ENABLE_COUNTER_MASK) 779 #define INT_STATUS_ENABLE_MBOX_DATA_SET(x) \ 780 (((x) << INT_STATUS_ENABLE_MBOX_DATA_LSB) & \ 781 INT_STATUS_ENABLE_MBOX_DATA_MASK) 782 #define CPU_INT_STATUS_ENABLE_BIT_SET(x) \ 783 (((x) << CPU_INT_STATUS_ENABLE_BIT_LSB) & \ 784 CPU_INT_STATUS_ENABLE_BIT_MASK) 785 #define ERROR_STATUS_ENABLE_RX_UNDERFLOW_SET(x) \ 786 (((x) << ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB) & \ 787 ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK) 788 #define ERROR_STATUS_ENABLE_TX_OVERFLOW_SET(x) \ 789 (((x) << ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB) & \ 790 ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK) 791 #define COUNTER_INT_STATUS_ENABLE_BIT_SET(x) \ 792 (((x) << COUNTER_INT_STATUS_ENABLE_BIT_LSB) & \ 793 COUNTER_INT_STATUS_ENABLE_BIT_MASK) 794 #define ERROR_INT_STATUS_WAKEUP_GET(x) \ 795 (((x) & ERROR_INT_STATUS_WAKEUP_MASK) >> \ 796 ERROR_INT_STATUS_WAKEUP_LSB) 797 #define ERROR_INT_STATUS_RX_UNDERFLOW_GET(x) \ 798 (((x) & ERROR_INT_STATUS_RX_UNDERFLOW_MASK) >> \ 799 ERROR_INT_STATUS_RX_UNDERFLOW_LSB) 800 #define ERROR_INT_STATUS_TX_OVERFLOW_GET(x) \ 801 (((x) & ERROR_INT_STATUS_TX_OVERFLOW_MASK) >> \ 802 ERROR_INT_STATUS_TX_OVERFLOW_LSB) 803 #define HOST_INT_STATUS_CPU_GET(x) \ 804 (((x) & HOST_INT_STATUS_CPU_MASK) >> HOST_INT_STATUS_CPU_LSB) 805 #define HOST_INT_STATUS_ERROR_GET(x) \ 806 (((x) & HOST_INT_STATUS_ERROR_MASK) >> HOST_INT_STATUS_ERROR_LSB) 807 #define HOST_INT_STATUS_COUNTER_GET(x) \ 808 (((x) & HOST_INT_STATUS_COUNTER_MASK) >> HOST_INT_STATUS_COUNTER_LSB) 809 #define RTC_STATE_V_GET(x) \ 810 (((x) & RTC_STATE_V_MASK) >> RTC_STATE_V_LSB) 811 #if defined(SDIO_3_0) 812 #define HOST_INT_STATUS_MBOX_DATA_GET(x) \ 813 (((x) & HOST_INT_STATUS_MBOX_DATA_MASK) >> \ 814 HOST_INT_STATUS_MBOX_DATA_LSB) 815 #endif 816 817 #define INVALID_REG_LOC_DUMMY_DATA 0xAA 818 819 #define AR6320_CORE_CLK_DIV_ADDR 0x403fa8 820 #define AR6320_CPU_PLL_INIT_DONE_ADDR 0x403fd0 821 #define AR6320_CPU_SPEED_ADDR 0x403fa4 822 #define AR6320V2_CORE_CLK_DIV_ADDR 0x403fd8 823 #define AR6320V2_CPU_PLL_INIT_DONE_ADDR 0x403fd0 824 #define AR6320V2_CPU_SPEED_ADDR 0x403fd4 825 #define AR6320V3_CORE_CLK_DIV_ADDR 0x404028 826 #define AR6320V3_CPU_PLL_INIT_DONE_ADDR 0x404020 827 #define AR6320V3_CPU_SPEED_ADDR 0x404024 828 829 enum a_refclk_speed_t { 830 SOC_REFCLK_UNKNOWN = -1, /* Unsupported ref clock -- use PLL Bypass */ 831 SOC_REFCLK_48_MHZ = 0, 832 SOC_REFCLK_19_2_MHZ = 1, 833 SOC_REFCLK_24_MHZ = 2, 834 SOC_REFCLK_26_MHZ = 3, 835 SOC_REFCLK_37_4_MHZ = 4, 836 SOC_REFCLK_38_4_MHZ = 5, 837 SOC_REFCLK_40_MHZ = 6, 838 SOC_REFCLK_52_MHZ = 7, 839 }; 840 841 #define A_REFCLK_UNKNOWN SOC_REFCLK_UNKNOWN 842 #define A_REFCLK_48_MHZ SOC_REFCLK_48_MHZ 843 #define A_REFCLK_19_2_MHZ SOC_REFCLK_19_2_MHZ 844 #define A_REFCLK_24_MHZ SOC_REFCLK_24_MHZ 845 #define A_REFCLK_26_MHZ SOC_REFCLK_26_MHZ 846 #define A_REFCLK_37_4_MHZ SOC_REFCLK_37_4_MHZ 847 #define A_REFCLK_38_4_MHZ SOC_REFCLK_38_4_MHZ 848 #define A_REFCLK_40_MHZ SOC_REFCLK_40_MHZ 849 #define A_REFCLK_52_MHZ SOC_REFCLK_52_MHZ 850 851 #define TARGET_CPU_FREQ 176000000 852 853 struct wlan_pll_s { 854 uint32_t refdiv; 855 uint32_t div; 856 uint32_t rnfrac; 857 uint32_t outdiv; 858 }; 859 860 struct cmnos_clock_s { 861 enum a_refclk_speed_t refclk_speed; 862 uint32_t refclk_hz; 863 uint32_t pll_settling_time; /* 50us */ 864 struct wlan_pll_s wlan_pll; 865 }; 866 867 struct tgt_reg_section { 868 uint32_t start_addr; 869 uint32_t end_addr; 870 }; 871 872 873 struct tgt_reg_table { 874 const struct tgt_reg_section *section; 875 uint32_t section_size; 876 }; 877 #endif /* _REGTABLE_SDIO_H_ */ 878