1 /* $NetBSD: ar9344reg.h,v 1.2 2011/07/10 23:13:23 matt Exp $ */ 2 3 /*- 4 * Copyright (c) 2010 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Matt Thomas of 3am Software Foundry. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32 #ifndef _MIPS_ATHEROS_AR9344REG_H_ 33 #define _MIPS_ATHEROS_AR9344REG_H_ 34 35 #define AR9344_MEM0_BASE 0x00000000 /* sdram */ 36 #define AR9344_MEM1_BASE 0x08000000 /* sdram/flash */ 37 #define AR9344_MEM3_BASE 0x10000000 /* flash */ 38 #define AR7100_PCI_BASE 0x17001000 39 #define ARCHIP_DDR_BASE 0x18000000 40 #define AR9344_UART0_BASE 0x18020000 /* low speed */ 41 #define AR7100_UART_BASE 0x18020000 /* low speed */ 42 #define AR9344_USB_CONFIG_BASE 0x18030000 43 #define AR9344_GPIO_BASE 0x18040000 44 #define ARCHIP_PLL_BASE 0x18050000 45 #define ARCHIP_RESET_BASE 0x18060000 46 #define AR9344_GMAC_BASE 0x18070000 47 #define AR7100_MII_BASE 0x18070000 48 #define AR9344_GMAC0_INGRESS_BASE 0x18080000 49 #define AR7100_GMAC0_BASE 0x18090000 50 #define AR9344_MBOX_BASE 0x180A0000 51 #define AR7100_GMAC1_BASE 0x180A0000 52 #define AR9344_SLIC_BASE 0x180A9000 53 #define AR9344_STEREO_BASE 0x180B0000 54 #define AR9344_MDIO_BASE 0x180B8000 55 #define AR9344_PCIE_RC_BASE 0x180C0000 56 #define AR9344_PCIE_RC_BASE2 0x180F0000 57 #define AR9344_WDMA_BASE 0x18100000 58 #define AR9344_RTC_BASE 0x18107000 59 #define AR9344_UART1_BASE 0x18150000 /* high speed */ 60 #define AR9344_GMAC0_BASE 0x19000000 61 #define AR9344_GMAC1_BASE 0x1A000000 62 #define AR9344_USB_BASE 0x1B000000 63 #define AR7100_EHCI_BASE 0x1B000000 64 #define AR9344_NAND_BASE 0x1B000200 65 #define AR7100_OHCI_BASE 0x1C000000 66 #define AR7100_SPI_BASE 0x1F000000 67 #define AR9344_SPI_BASE 0x1FFF0000 68 69 /* 70 * PLL registers -- offset relative to AR9344_PLL_BASE 71 */ 72 #define ARCHIP_PLL_CPU_PLL_CONFIG 0x0000 73 #define ARCHIP_PLL_DDR_PLL_CONFIG 0x0004 74 #define ARCHIP_PLL_CPU_DDR_CLOCK_CONTROL 0x0008 75 76 #define AR9344_PLL_PCIE_PLL_CONFIG 0x0010 77 #define AR9344_PLL_PCIE_PLL_DITHER_DIV_MAX 0x0014 78 #define AR9344_PLL_PCIE_PLL_DITHER_DIV_MIN 0x0018 79 #define AR9344_PLL_PCIE_PLL_DITHER_STEP 0x001c 80 #define AR9344_PLL_SWITCH_CLOCK_SPARE 0x0024 81 #define AR9344_PLL_CURRENT_PCIE_PLL_DITHER 0x0028 82 #define AR9344_PLL_ETH_XMII_CONTROL 0x002c 83 #define AR9344_PLL_AUDIO_PLL_CONFIG 0x0030 84 #define AR9344_PLL_AUDIO_PLL_MODULATION 0x0034 85 #define AR9344_PLL_AUDIO_PLL_MOD_STEP 0x0038 86 #define AR9344_PLL_CURRENT_AUDIO_PLL_MODULATION 0x003c 87 #define AR9344_PLL_DDR_PLL_DITHER 0x0044 88 #define AR9344_PLL_CPU_PLL_DITHER 0x0048 89 90 #define AR9344_CPU_PLL_CONFIG_UPDATING __BIT(31) 91 #define AR9344_CPU_PLL_CONFIG_PLLPWD __BIT(30) 92 #define AR9344_CPU_PLL_CONFIG_OUTDIV __BITS(19,21) 93 #define AR9344_CPU_PLL_CONFIG_RANGE __BITS(18,17) 94 #define AR9344_CPU_PLL_CONFIG_REFDIV __BITS(12,16) 95 #define AR9344_CPU_PLL_CONFIG_NINT __BITS(6,11) 96 #define AR9344_CPU_PLL_CONFIG_NFRAC __BITS(0,5) 97 98 #define AR7100_CPU_PLL_SW_UPDATE __BIT(31) 99 #define AR7100_PLL_LOCKED __BIT(30) 100 #define AR7100_CPU_PLL_AHB_DIV __BITS(22,20) 101 #define AR7100_CPU_PLL_DDR_DIV_SEL __BITS(19,18) 102 #define AR7100_CPU_PLL_CPU_DIV_SEL __BITS(17,16) 103 #define AR7100_PLL_PLL_LOOP_BW __BITS(15,12) 104 #define AR7100_PLL_PLL_DIV_IN __BITS(11,10) 105 #define AR7100_PLL_PLL_DIV_OUT __BITS(9,8) 106 #define AR7100_PLL_PLL_FB __BITS(7,3) 107 #define AR7100_CPU_PLL_PLL_BYPASS __BIT(1) 108 #define AR7100_PLL_PLL_POWER_DOWN __BIT(0) 109 110 #define AR9344_DDR_PLL_CONFIG_UPDATING __BIT(31) 111 #define AR9344_DDR_PLL_CONFIG_PLLPWD __BIT(30) 112 #define AR9344_DDR_PLL_CONFIG_OUTDIV __BITS(23,25) 113 #define AR9344_DDR_PLL_CONFIG_RANGE __BITS(21,22) 114 #define AR9344_DDR_PLL_CONFIG_REFDIV __BITS(16,20) 115 #define AR9344_DDR_PLL_CONFIG_NINT __BITS(10,15) 116 #define AR9344_DDR_PLL_CONFIG_NFRAC __BITS(0,9) 117 118 #define AR9344_CPU_DDR_CLOCK_CONTROL_AHBCLK_FROM_DDRPLL __BIT(24) 119 #define AR9344_CPU_DDR_CLOCK_CONTROL_CPU_RESET_EN_BP_DEASRT __BIT(23) 120 #define AR9344_CPU_DDR_CLOCK_CONTROL_CPU_RESET_EN_BP_ASRT __BIT(22) 121 #define AR9344_CPU_DDR_CLOCK_CONTROL_DDRCLK_FROM_DDRPLL __BIT(21) 122 #define AR9344_CPU_DDR_CLOCK_CONTROL_CPUCLK_FROM_CPUPLL __BIT(20) 123 #define AR9344_CPU_DDR_CLOCK_CONTROL_AHB_POST_DIV __BITS(15,19) 124 #define AR9344_CPU_DDR_CLOCK_CONTROL_DDR_POST_DIV __BITS(10,14) 125 #define AR9344_CPU_DDR_CLOCK_CONTROL_CPU_POST_DIV __BITS(5,9) 126 #define AR9344_CPU_DDR_CLOCK_CONTROL_AHB_PLL_BYPASS __BIT(4) 127 #define AR9344_CPU_DDR_CLOCK_CONTROL_DDR_PLL_BYPASS __BIT(3) 128 #define AR9344_CPU_DDR_CLOCK_CONTROL_CPU_PLL_BYPASS __BIT(2) 129 #define AR9344_CPU_DDR_CLOCK_CONTROL_RESET_SWITCH __BIT(1) 130 131 /* 132 * RESET registers -- offset relative to ARCHIP_RESET_BASE 133 */ 134 #define ARCHIP_RESET_TIMER 0x0000 135 #define ARCHIP_RESET_TIMER_RELOAD 0x0004 136 #define ARCHIP_RESET_WDOG_CTL 0x0008 137 #define ARCHIP_RESET_WDOG_TIMER 0x000c 138 #define ARCHIP_RESET_MISC_INTSTAT 0x0010 139 #define ARCHIP_RESET_MISC_INTMASK 0x0014 140 #define AR9344_RESET_INTSTAT 0x0018 141 #define AR7100_RESET_PCI_INTSTAT 0x0018 142 #define AR9344_RESET_RESETCTL 0x001c 143 #define AR7100_RESET_PCI_INTMASK 0x001c 144 #define AR7100_RESET_INTSTAT 0x0020 145 #define AR7100_RESET_RESETCTL 0x0024 146 #define ARCHIP_RESET_REVISION 0x0090 147 #define AR9344_RESET_WMAC_INTSTAT 0x00AC 148 #define AR9344_RESET_BOOTSTRAP 0x00B0 149 #define AR9344_RESET_MISC2 0x00BC 150 151 /* WDOG_CTL watchdog control bits */ 152 #define ARCHIP_WDOG_CTL_LAST __BIT(31) 153 #define ARCHIP_WDOG_CTL_IGNORE 0x00000000 154 #define ARCHIP_WDOG_CTL_INT 0x00000001 155 #define ARCHIP_WDOG_CTL_NMI 0x00000002 156 #define ARCHIP_WDOG_CTL_RESET 0x00000003 157 158 /* Resets */ 159 #define AR9344_RESETCTL_I2S_RESET __BIT(0) 160 #define AR7100_RESETCTL_PCI_CORE_RESET __BIT(0) 161 #define AR9344_RESETCTL_MBOX_RESET __BIT(1) 162 #define AR7100_RESETCTL_PCI_BUS_RESET __BIT(1) 163 #define AR9344_RESETCTL_LUT_RESET __BIT(2) 164 #define AR9344_RESETCTL_USB_PHY_SUSPEND_OVERRIDE __BIT(3) 165 #define ARCHIP_RESETCTL_USB_PHY_RESET __BIT(4) 166 #define ARCHIP_RESETCTL_USB_HOST_RESET __BIT(5) 167 #define AR9344_RESETCTL_PCIE_RESET __BIT(6) 168 #define AR7100_RESETCTL_USB_OHCI_DLL_RESET __BIT(6) 169 #define AR9344_RESETCTL_PCIE_PHY_RESET __BIT(7) 170 #define AR9344_RESETCTL_ETH_SWITCH_RESET __BIT(8) 171 #define AR7100_RESETCTL_GMAC0_PHY_RESET __BIT(8) 172 #define ARCHIP_RESETCTL_GMAC0_MAC_RESET __BIT(9) 173 #define AR9344_RESETCTL_HOST_DMA_INT __BIT(10) 174 #define AR9344_RESETCTL_USB_PHY_ARESET __BIT(11) 175 #define AR9344_RESETCTL_ETH_SWITCH_ARESET __BIT(12) 176 #define AR7100_RESETCTL_GMAC1_PHY_RESET __BIT(12) 177 #define ARCHIP_RESETCTL_GMAC1_MAC_RESET __BIT(13) 178 #define AR9344_RESETCTL_NANDF_RESET __BIT(14) 179 #define AR9344_RESETCTL_USB_PHY_PLL_PWD_EXT __BIT(15) 180 #define ARCHIP_RESETCTL_DDR_RESET __BIT(16) 181 #define AR9344_RESETCTL_UART1_RESET __BIT(17) 182 #define AR7100_RESETCTL_I2S_RESET __BIT(17) 183 #define AR9344_RESETCTL_PCIEEP_RESET __BIT(18) 184 #define AR7100_RESETCTL_SLIC_RESET __BIT(18) 185 #define AR9344_RESETCTL_HOST_RESET_INT __BIT(19) 186 #define AR7100_RESETCTL_DMA_RESET __BIT(19) 187 #define ARCHIP_RESETCTL_CPU_COLD_RESET __BIT(20) 188 #define ARCHIP_RESETCTL_CPU_NMI __BIT(21) 189 #define AR9344_RESETCTL_RESET_GMAC0_MDIO __BIT(22) 190 #define AR9344_RESETCTL_RESET_GMAC1_MDIO __BIT(23) 191 #define ARCHIP_RESETCTL_FULL_CHIP_RESET __BIT(24) 192 #define AR9344_RESETCTL_CHKSUM_ACC_RESET __BIT(25) 193 #define AR9344_RESETCTL_PCIEEP_RST_INT __BIT(26) 194 #define AR9344_RESETCTL_RTC_RESET __BIT(27) 195 #define ARCHIP_RESETCTL_EXTERNAL_RESET __BIT(28) 196 #define AR9344_RESETCTL_HDMA_RESET __BIT(29) 197 #define AR9344_RESETCTL_SLIC_RESET __BIT(30) 198 #define AR9344_RESETCTL_HOST_RESET __BIT(31) 199 200 /* Revision ids */ 201 #define AR9344_REVISION_WMAC_MAJOR(x) (((x) >> 12) & 0xf) 202 #define AR9344_REVISION_WMAC_MINOR(x) (((x) >> 8) & 0xf) 203 #define AR9344_REVISION_WMAC(x) (((x) >> 8) & 0xff) 204 #define AR9344_REVISION_MAJOR(x) (((x) >> 4) & 0xf) 205 #define AR9344_REVISION_MINOR(x) (((x) >> 0) & 0xf) 206 #define AR9344_REVISION_CHIPID(x) (((x) >> 0) & 0xff) 207 208 #define AR5311_REVISION_MAJ 0x1 209 #define AR7240_REVISION_MAJ 0x4 210 #define AR2313_REVISION_MAJ 0x5 211 #define AR7100_REVISION_MAJ 0xA 212 #define AR5315_REVISION_MAJ 0xB 213 #define AR9344_REVISION_MAJ 0xC 214 215 #define ARCHIP_AR5312 0x42 216 #define ARCHIP_AR7130 0xA0 217 #define ARCHIP_AR7141 0xA1 218 #define ARCHIP_AR7161 0xA2 219 #define ARCHIP_AR9344 0xC0 220 #define ARCHIP_AR9103 0xB0 221 #define ARCHIP_AR5315 0xB0 222 223 #define ARWMAC_AR5312 0x52 224 #define ARWMAC_AR5312_2 0x57 225 #define ARWMAC_AR2313 0x58 226 #define ARWMAC_AR2315LITE 0x86 227 #define ARWMAC_AR2315 0x87 228 #define ARWMAC_AR2317 0x91 229 230 #define AR9344_BOOTSTRAP_SOFTWARE_OPTION_8 __BIT(31) 231 #define AR9344_BOOTSTRAP_SOFTWARE_OPTION_7 __BIT(30) 232 #define AR9344_BOOTSTRAP_DDR_WIDTH __BIT(29) 233 #define AR9344_BOOTSTRAP_SOFTWARE_OPTION_5 __BIT(28) 234 #define AR9344_BOOTSTRAP_SOFTWARE_OPTION_4 __BIT(27) 235 #define AR9344_BOOTSTRAP_SOFTWARE_OPTION_3 __BIT(26) 236 #define AR9344_BOOTSTRAP_SOFTWARE_OPTION_2 __BIT(25) 237 #define AR9344_BOOTSTRAP_SOFTWARE_OPTION_1 __BIT(24) 238 #define AR9344_BOOTSTRAP_USB_MODE __BIT(7) 239 #define AR9344_BOOTSTRAP_EJTAG_MODE __BIT(5) 240 #define AR9344_BOOTSTRAP_REF_CLK_40 __BIT(4) 241 #define AR9344_BOOTSTRAP_BOOT_SELECT __BIT(2) 242 #define AR9344_BOOTSTRAP_SDRAM_DISABLE __BIT(1) 243 #define AR9344_BOOTSTRAP_DDR_SELECT __BIT(0) 244 245 /* 246 * DDR registers -- offset relative to ARCHIP_DDR_BASE 247 */ 248 #define AR9344_DDR_CONFIG 0x0000 249 #define AR9344_DDR_CONFIG2 0x0004 250 #define AR9344_DDR_MODE_REGISTER 0x0008 251 #define AR9344_DDR_EXTENDED_MOD_REGISTER 0x000c 252 #define AR9344_DDR_CONTROL 0x0010 253 #define AR9344_DDR_REFRESH 0x0014 254 #define AR9344_DDR_RD_DATA_THIS_CYCLE 0x0018 255 #define AR9344_DDR_TAP_CONTROL_0 0x001c 256 #define AR9344_DDR_TAP_CONTROL_1 0x0020 257 #define AR9344_DDR_TAP_CONTROL_2 0x0024 258 #define AR9344_DDR_TAP_CONTROL_3 0x0028 259 #define AR9344_DDR_WB_FLUSH_GMAC0 0x009c 260 #define AR9344_DDR_WB_FLUSH_GMAC1 0x00a0 261 #define AR9344_DDR_WB_FLUSH_USB 0x00a4 262 #define AR9344_DDR_WB_FLUSH_PCIE 0x00a8 263 #define AR9344_DDR_WB_FLUSH_WMAC 0x00ac 264 #define AR9344_DDR_WB_FLUSH_SRC1 0x00b0 265 #define AR9344_DDR_WB_FLUSH_SRC2 0x00b4 266 #define AR9344_DDR_DDR2_CONFIG 0x00b8 267 #define AR9344_DDR_EMR2 0x00bc 268 #define AR9344_DDR_EMR3 0x00c0 269 #define AR9344_AHB_MASTER_TIMEOUT_MAX 0x00cc 270 #define AR9344_AHB_MASTER_TIMEOUT_CURRENT 0x00d0 271 #define AR9344_AHB_MASTER_TIMEOUT_SLAVE_ADDR 0x00d4 272 #define AR9344_DDR_CTL_CONFIG 0x0108 273 #define AR9344_DDR_SF_CTL 0x0110 274 #define AR9344_SF_TIMER 0x0114 275 #define AR9344_WMAC_FLUSH 0x0128 276 277 /* memory config 1 bits */ 278 #define AR9344_MEM_CFG1_BANK0 __BITS(8,10) 279 #define AR9344_MEM_CFG1_BANK1 __BITS(12,14) 280 281 #define ARCHIP_REG_DDR_WB_FLUSH_GMAC0 0x009c 282 #define ARCHIP_REG_DDR_WB_FLUSH_GMAC1 0x00a0 283 #define ARCHIP_REG_DDR_WB_FLUSH_USB 0x00a4 284 #define AR9344_REG_DDR_WB_FLUSH_PCIERC 0x00a8 285 #define AR7100_REG_DDR_WB_FLUSH_PCI 0x00a8 286 #define AR9344_REG_DDR_WB_FLUSH_WMAC 0x00ac 287 #define AR9344_REG_DDR_WB_FLUSH_PCIEEP 0x00b0 288 #define AR9344_REG_DDR_WB_FLUSH_CSUM 0x00b4 289 290 #define AR7100_PCI_WINDOW_0 0x7c 291 #define AR7100_PCI_WINDOW_1 0x80 292 #define AR7100_PCI_WINDOW_2 0x84 293 #define AR7100_PCI_WINDOW_3 0x88 294 #define AR7100_PCI_WINDOW_4 0x8c 295 #define AR7100_PCI_WINDOW_5 0x90 296 #define AR7100_PCI_WINDOW_6 0x94 297 #define AR7100_PCI_WINDOW_7 0x98 298 299 #define AR7100_PCI_LCL_CFG_CMD 0x00 300 #define AR7100_PCI_LCL_CFG_CMD_BE __BITS(20,23) 301 #define AR7100_PCI_LCL_CFG_CMD_CMD __BITS(16,19) 302 #define AR7100_PCI_LCL_CFG_CMD_READ __SHIFTIN(0, AR7100_PCI_LCL_CFG_CMD_CMD) 303 #define AR7100_PCI_LCL_CFG_CMD_WRITE __SHIFTIN(1, AR7100_PCI_LCL_CFG_CMD_CMD) 304 #define AR7100_PCI_LCL_CFG_CMD_ADDRESS __BITS(0,11) 305 #define AR7100_PCI_LCL_CFG_WDATA 0x04 306 #define AR7100_PCI_LCL_CFG_RDATA 0x08 307 #define AR7100_PCI_CFG_ADDR 0x0c 308 #define AR7100_PCI_CFG_CMD 0x10 309 #define AR7100_PCI_CFG_CMD_BE __BITS(4,7) 310 #define AR7100_PCI_CFG_CMD_CMD __BITS(0,3) 311 #define AR7100_PCI_CFG_WDATA 0x14 312 #define AR7100_PCI_CFG_RDATA 0x18 313 #define AR7100_PCI_ERROR 0x1c 314 #define AR7100_PCI_ERROR_PARITY __BIT(0) 315 #define AR7100_PCI_ERROR_FATAL __BIT(1) 316 #define AR7100_PCI_ERROR_ADDR 0x20 317 #define AR7100_AHB_ERROR 0x24 318 #define AR7100_AHB_ERROR_ADDR 0x28 319 320 #define AR9344_SPI_FUNCTION_SELECT 0x0000 321 #define AR9344_SPI_FUNCTION_SLEECT_FUNCTION_SELECT __BIT(0) 322 #define AR9344_SPI_CONTROL 0x0004 323 #define AR9344_SPI_CONTROL_TSHSL_CNT __BITS(8,13) 324 #define AR9344_SPI_CONTROL_SPI_RELOCATE __BIT(7) 325 #define AR9344_SPI_CONTROL_REMAP_DISABLE __BIT(6) 326 #define AR9344_SPI_CONTROL_CLOCK_DIVIDER __BITS(0,5) 327 #define AR9344_SPI_IO_CONTROL 0x0008 328 #define AR9344_SPI_IO_CONTROL_IO_CS2_DISABLE __BIT(18) 329 #define AR9344_SPI_IO_CONTROL_IO_CS1_DISABLE __BIT(17) 330 #define AR9344_SPI_IO_CONTROL_IO_CS0_DISABLE __BIT(16) 331 #define AR9344_SPI_IO_CONTROL_IO_CLK __BIT(8) 332 #define AR9344_SPI_IO_CONTROL_IO_DO __BIT(0) 333 #define AR9344_SPI_READ_DATA 0x000c 334 #define AR9344_SPI_SHIFT_DATAOUT 0x0010 335 #define AR9344_SPI_SHIFT_CNT 0x0014 336 #define AR9344_SPI_SHIFT_CNT_SHIFT_EN __BIT(31) 337 #define AR9344_SPI_SHIFT_CNT_SHIFT_CHNL_2 __BIT(30) 338 #define AR9344_SPI_SHIFT_CNT_SHIFT_CHNL_1 __BIT(29) 339 #define AR9344_SPI_SHIFT_CNT_SHIFT_CHNL_0 __BIT(28) 340 #define AR9344_SPI_SHIFT_CNT_SHIFT_CLKOUT __BIT(27) 341 #define AR9344_SPI_SHIFT_CNT_TERMINATE __BIT(26) 342 #define AR9344_SPI_SHIFT_CNT_SHIFT_COUNT __BITS(0,6) 343 #define AR9344_SPI_SHIFT_DATAIN 0x0018 344 345 /* helper macro for accessing system registers without bus space */ 346 #define REGVAL(x) *((volatile uint32_t *)(MIPS_PHYS_TO_KSEG1((x)))) 347 #define GETRESETREG(x) REGVAL((x) + ARCHIP_RESET_BASE) 348 #define PUTRESETREG(x,v) (REGVAL((x) + ARCHIP_RESET_BASE)) = (v) 349 #define GETPLLREG(x) REGVAL((x) + ARCHIP_PLL_BASE) 350 #define PUTPLLREG(x,v) (REGVAL((x) + ARCHIP_PLL_BASE)) = (v) 351 #define GETDDRREG(x) REGVAL((x) + ARCHIP_DDR_BASE) 352 #define PUTDDRREG(x,v) (REGVAL((x) + ARCHIP_DDR_BASE)) = (v) 353 354 /* 355 * Interrupts. 356 */ 357 #define AR9344_CPU_IRQ_PCIERC 0 358 #define AR7100_CPU_IRQ_PCI 0 359 #define ARCHIP_CPU_IRQ_USB 1 360 #define ARCHIP_CPU_IRQ_GMAC0 2 361 #define ARCHIP_CPU_IRQ_GMAC1 3 362 #define ARCHIP_CPU_IRQ_MISC 4 363 #define ARCHIP_CPU_IRQ_TIMER 5 364 #define AR9344_CPU_IRQ_PCIEEP_HSTDMA 6 365 366 #define AR9344_MISC_IRQ_TIMER 0 367 #define AR9344_MISC_IRQ_ERROR 1 368 #define AR9344_MISC_IRQ_GPIO 2 369 #define AR9344_MISC_IRQ_UART0 3 370 #define AR9344_MISC_IRQ_WDOG 4 371 #define AR9344_MISC_IRQ_PC 5 372 #define AR9344_MISC_IRQ_UART1 6 373 #define AR9344_MISC_IRQ_MBOX 7 374 #define AR9344_MISC_IRQ_TIMER2 8 375 #define AR9344_MISC_IRQ_TIMER3 9 376 #define AR9344_MISC_IRQ_TIMER4 10 377 #define AR9344_MISC_IRQ_DDR_PERF 11 378 #define AR9344_MISC_IRQ_SW_MAC 12 379 #define AR9344_MISC_IRQ_LUTS_AGER 13 380 #define AR9344_MISC_IRQ_RES14 14 381 #define AR9344_MISC_IRQ_CHKSUM_ACC 15 382 #define AR9344_MISC_IRQ_DDR_SF_ENTRY 16 383 #define AR9344_MISC_IRQ_DDR_SF_EXIT 17 384 #define AR9344_MISC_IRQ_DDR_ACT_IN_SF 18 385 #define AR9344_MISC_IRQ_SLIC 19 386 #define AR9344_MISC_IRQ_WOW 20 387 #define AR9344_MISC_IRQ_NANDF 21 388 389 #define AR7100_MISC_IRQ_TIMER 0 390 #define AR7100_MISC_IRQ_ERROR 1 391 #define AR7100_MISC_IRQ_GPIO 2 392 #define AR7100_MISC_IRQ_UART0 3 393 #define AR7100_MISC_IRQ_WDOG 4 394 #define AR7100_MISC_IRQ_PC 5 395 #define AR7100_MISC_IRQ_OHCI 6 396 #define AR7100_MISC_IRQ_DMA 7 397 398 #define AR9344_WMAC_IRQ_WMAC_MISC_INT 0 399 #define AR9344_WMAC_IRQ_WMAC_TX_INT 1 400 #define AR9344_WMAC_IRQ_WMAC_RXLP_INT 2 401 #define AR9344_WMAC_IRQ_WMAC_RXHP_INT 3 402 #define AR9344_WMAC_IRQ_PCIE_RC_INT 4 403 #define AR9344_WMAC_IRQ_PCIE_RC_INT0 5 404 #define AR9344_WMAC_IRQ_PCIE_RC_INT1 6 405 #define AR9344_WMAC_IRQ_PCIE_RC_INT2 7 406 #define AR9344_WMAC_IRQ_PCIE_RC_INT3 8 407 408 #endif /* _MIPS_ATHEROS_AR9344REG_H_ */ 409