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