1 1.20 skrll /* $NetBSD: bcm53xx_reg.h,v 1.20 2024/02/16 15:11:17 skrll Exp $ */ 2 1.19 andvar 3 1.1 matt /*- 4 1.1 matt * Copyright (c) 2012 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 _ARM_BROADCOM_BCM53XX_REG_H_ 33 1.1 matt #define _ARM_BROADCOM_BCM53XX_REG_H_ 34 1.1 matt 35 1.1 matt /* 36 1.1 matt * 0x0000_0000..0x07ff_ffff 128MB DDR2/3 DRAM Memory Region (dual map) 37 1.1 matt * 0x0800_0000..0x0fff_ffff 128MB PCIe 0 Address Match Region 38 1.1 matt * 0x1800_0000..0x180f_ffff 1MB Core Register Region 39 1.1 matt * 0x1810_0000..0x181f_ffff 1MB IDM Register Region 40 1.1 matt * 0x1900_0000..0x190f_ffff 1MB ARMcore (CORTEX-A9) Register Region 41 1.1 matt * 0x1c00_0000..0x1dff_ffff 1MB NAND Flash Region 42 1.1 matt * 0x1e00_0000..0x1dff_ffff 1MB Serial Flash Region 43 1.1 matt * 0x4000_0000..0x47ff_ffff 128MB PCIe 1 Address Match Region 44 1.1 matt * 0x4800_0000..0x4fff_ffff 128MB PCIe 2 Address Match Region 45 1.1 matt * 0x8000_0000..0xbfff_ffff 1024MB DDR2/3 DRAM Memory Region 46 1.1 matt * 0xfffd_0000..0xfffe_ffff 128KB Internal Boot ROM Region 47 1.1 matt * 0xffff_0000..0xffff_043f 1088B Internal SKU ROM Region 48 1.1 matt * 0xffff_1000..0xffff_1fff 4KB Enumeration ROM Register Region 49 1.1 matt */ 50 1.15 matt #define BCM53XX_PCIE0_OWIN_PBASE 0x08000000 51 1.15 matt #define BCM53XX_PCIE0_OWIN_SIZE 0x04000000 52 1.15 matt #define BCM53XX_PCIE0_OWIN_MAX 0x08000000 53 1.3 matt 54 1.15 matt #define BCM53XX_IOREG_PBASE 0x18000000 55 1.15 matt #define BCM53XX_IOREG_SIZE 0x00200000 56 1.1 matt 57 1.15 matt #define BCM53XX_ARMCORE_PBASE 0x19000000 58 1.15 matt #define BCM53XX_ARMCORE_SIZE 0x00100000 59 1.1 matt 60 1.15 matt #define BCM53XX_NAND_PBASE 0x1c000000 61 1.15 matt #define BCM53XX_NAND_SIZE 0x01000000 62 1.1 matt 63 1.15 matt #define BCM53XX_SPIFLASH_PBASE 0x1d000000 64 1.15 matt #define BCM53XX_SPIFLASH_SIZE 0x01000000 65 1.1 matt 66 1.15 matt #define BCM53XX_PCIE1_OWIN_PBASE 0x40000000 67 1.15 matt #define BCM53XX_PCIE1_OWIN_SIZE 0x04000000 68 1.15 matt #define BCM53XX_PCIE1_OWIN_MAX 0x08000000 69 1.3 matt 70 1.15 matt #define BCM53XX_PCIE2_OWIN_PBASE 0x48000000 71 1.15 matt #define BCM53XX_PCIE2_OWIN_SIZE 0x04000000 72 1.15 matt #define BCM53XX_PCIE2_OWIN_MAX 0x08000000 73 1.3 matt 74 1.18 skrll #define BCM53XX_ROM_REGION_PBASE 0xfff00000 75 1.18 skrll #define BCM53XX_ROM_REGION_SIZE 0x00100000 76 1.18 skrll 77 1.15 matt #define BCM53XX_IO_SIZE (BCM53XX_IOREG_SIZE \ 78 1.3 matt + BCM53XX_ARMCORE_SIZE \ 79 1.3 matt + BCM53XX_PCIE0_OWIN_SIZE \ 80 1.3 matt + BCM53XX_PCIE1_OWIN_SIZE \ 81 1.18 skrll + BCM53XX_PCIE2_OWIN_SIZE \ 82 1.18 skrll + BCM53XX_ROM_REGION_SIZE) 83 1.1 matt 84 1.15 matt #define BCM53XX_REF_CLK (25*1000*1000) 85 1.1 matt 86 1.15 matt #define CCA_UART_FREQ BCM53XX_REF_CLK 87 1.1 matt 88 1.1 matt /* Chip Common A */ 89 1.15 matt #define CCA_MISC_BASE 0x000000 90 1.15 matt #define CCA_MISC_SIZE 0x001000 91 1.15 matt #define CCA_UART0_BASE 0x000300 92 1.15 matt #define CCA_UART1_BASE 0x000400 93 1.1 matt 94 1.1 matt /* Chip Common B */ 95 1.15 matt #define CCB_BASE 0x000000 96 1.16 matt #ifdef BCM5301X 97 1.15 matt #define CCB_SIZE 0x030000 98 1.15 matt #define PWM_BASE 0x002000 99 1.15 matt #define MII_BASE 0x003000 100 1.15 matt #define RNG_BASE 0x004000 101 1.15 matt #define TIMER0_BASE 0x005000 102 1.15 matt #define TIMER1_BASE 0x006000 103 1.15 matt #define SRAB_BASE 0x007000 104 1.16 matt #define UART2_BASE 0x008000 105 1.16 matt #define SMBUS1_BASE 0x009000 106 1.1 matt 107 1.15 matt #define CRU_BASE 0x00b000 108 1.15 matt #define DMU_BASE 0x00c000 109 1.16 matt #elif defined(BCM563XX) 110 1.16 matt #define CCB_SIZE 0x040000 111 1.16 matt #define GPIO_BASE 0x030000 112 1.16 matt #define PWM_BASE 0x031000 113 1.16 matt #define MII_BASE 0x032000 114 1.16 matt #define RNG_BASE 0x033000 115 1.16 matt #define TIMER0_BASE 0x034000 116 1.16 matt #define TIMER1_BASE 0x035000 117 1.16 matt #define UART2_BASE 0x037000 118 1.16 matt #define SMBUS0_BASE 0x038000 119 1.16 matt #define WDT_BASE 0x039000 120 1.16 matt #define PKA_BASE 0x03a000 121 1.16 matt #define SMBUS1_BASE 0x03b000 122 1.16 matt 123 1.16 matt #define CRU_BASE 0x03e000 124 1.16 matt #define DMU_BASE 0x03f000 125 1.16 matt #endif 126 1.1 matt 127 1.15 matt #define DDR_BASE 0x010000 128 1.1 matt 129 1.15 matt #define PCIE0_BASE 0x012000 130 1.15 matt #define PCIE1_BASE 0x013000 131 1.14 matt 132 1.14 matt #ifdef BCM5301X 133 1.15 matt #define PCIE2_BASE 0x014000 134 1.1 matt #define SDIO_BASE 0x020000 135 1.15 matt #define EHCI_BASE 0x021000 136 1.15 matt #define OHCI_BASE 0x022000 137 1.15 matt #define GMAC0_BASE 0x024000 138 1.15 matt #define GMAC1_BASE 0x025000 139 1.15 matt #define GMAC2_BASE 0x026000 140 1.15 matt #define GMAC3_BASE 0x027000 141 1.15 matt #define NAND_BASE 0x028000 142 1.14 matt #define QSPI_BASE 0x029000 143 1.14 matt #define I2S_BASE 0x02A000 144 1.14 matt #define DMAC_BASE 0x02C000 145 1.14 matt #endif 146 1.14 matt 147 1.14 matt #ifdef BCM563XX 148 1.14 matt #define DMAC_BASE 0x020000 149 1.15 matt #define GMAC0_BASE 0x022000 150 1.15 matt #define GMAC1_BASE 0x023000 151 1.15 matt #define NAND_BASE 0x026000 152 1.15 matt #define QSPI_BASE 0x027000 153 1.15 matt #define EHCI_BASE 0x02A000 154 1.15 matt #define OHCI_BASE 0x02B000 155 1.14 matt #endif 156 1.1 matt 157 1.15 matt #define IDM_BASE 0x100000 158 1.15 matt #define IDM_SIZE 0x100000 159 1.1 matt 160 1.1 matt /* Chip Common A */ 161 1.1 matt 162 1.1 matt #ifdef CCA_PRIVATE 163 1.1 matt 164 1.15 matt #define MISC_CHIPID 0x000 165 1.15 matt #define CHIPID_REV __BITS(19,16) 166 1.15 matt #define CHIPID_ID __BITS(15,0) 167 1.15 matt #define ID_BCM53010 0xcf12 // 53010 168 1.15 matt #define ID_BCM53011 0xcf13 // 53011 169 1.15 matt #define ID_BCM53012 0xcf14 // 53012 170 1.15 matt #define ID_BCM53013 0xcf15 // 53013 171 1.15 matt #define ID_BCM56340 0xdc14 // 56340 172 1.15 matt 173 1.15 matt #define MISC_CAPABILITY 0x004 174 1.15 matt #define CAPABILITY_JTAG_PRESENT __BIT(22) 175 1.15 matt #define CAPABILITY_UART_CLKSEL __BITS(4,3) 176 1.15 matt #define UART_CLKSEL_REFCLK 0 177 1.15 matt #define UART_CLKSEL_INTCLK 1 178 1.1 matt /* 2 & 3 are reserved */ 179 1.15 matt #define CAPABILITY_BIG_ENDIAN __BIT(2) 180 1.15 matt #define CAPABILITY_UART_COUNT __BITS(1,0) 181 1.1 matt 182 1.15 matt #define MISC_CORECTL 0x008 183 1.15 matt #define CORECTL_UART_CLK_EN __BIT(3) 184 1.15 matt #define CORECTL_GPIO_ASYNC_INT_EN __BIT(2) 185 1.15 matt #define CORECTL_UART_CLK_OVERRIDE __BIT(0) 186 1.15 matt 187 1.15 matt #define MISC_INTSTATUS 0x020 188 1.15 matt #define INTSTATUS_WDRESET __BIT(31) // WO2C 189 1.15 matt #define INTSTATUS_UARTINT __BIT(6) // RO 190 1.15 matt #define INTSTATUS_GPIOINT __BIT(0) // RO 191 1.15 matt 192 1.15 matt #define MISC_INTMASK 0x024 193 1.15 matt #define INTMASK_UARTINT __BIT(6) // 1 = enabled 194 1.15 matt #define INTMASK_GPIOINT __BIT(0) // 1 = enabled 195 1.1 matt 196 1.1 matt /* Only bits [23:0] are used in the GPIO registers */ 197 1.15 matt #define GPIO_INPUT 0x060 // RO 198 1.15 matt #define GPIO_OUT 0x064 199 1.15 matt #define GPIO_OUTEN 0x068 200 1.15 matt #define GPIO_INTPOLARITY 0x070 // 1 = active low 201 1.15 matt #define GPIO_INTMASK 0x074 // 1 = enabled (level) 202 1.15 matt #define GPIO_EVENT 0x078 // W1C, 1 = edge seen 203 1.15 matt #define GPIO_EVENT_INTMASK 0x07c // 1 = enabled (edge) 204 1.15 matt #define GPIO_EVENT_INTPOLARITY 0x084 // 1 = falling 205 1.15 matt #define GPIO_TIMER_VAL 0x088 206 1.15 matt #define TIMERVAL_ONCOUNT __BITS(31,16) 207 1.15 matt #define TIMERVAL_OFFCOUNT __BITS(15,0) 208 1.1 matt #define GPIO_TIMER_OUTMASK 0x08c 209 1.1 matt #define GPIO_DEBUG_SEL 0x0a8 210 1.1 matt 211 1.15 matt #define MISC_WATCHDOG 0x080 // 0 disables, 1 resets 212 1.1 matt 213 1.15 matt #define MISC_CLKDIV 0x0a4 214 1.15 matt #define CLKDIV_JTAG_MASTER_CLKDIV __BITS(13,9) 215 1.15 matt #define CLKDIV_UART_CLKDIV __BITS(7,1) 216 1.1 matt 217 1.15 matt #define MISC_CAPABILITY2 0x0ac 218 1.1 matt #define CAPABILITY2_GSIO_PRESENT __BIT(1) // SPI exists 219 1.1 matt 220 1.15 matt #define MISC_GSIOCTL 0x0e4 221 1.15 matt #define GSIOCTL_STARTBUSY __BIT(31) 222 1.15 matt #define GSIOCTL_GSIOMODE __BIT(30) // 0 = SPI 223 1.15 matt #define GSIOCTL_ERROR __BIT(23) 224 1.15 matt #define GSIOCTL_BIGENDIAN __BIT(22) 225 1.15 matt #define GSIOCTL_GSIOGO __BIT(21) 226 1.15 matt #define GSIOCTL_NUM_DATABYTES __BITS(17,16) // actual is + 1 227 1.15 matt #define GSIOCTL_NUM_WAITCYCLES __BITS(15,14) // actual is + 1 228 1.15 matt #define GSIOCTL_NUM_ADDRESSBYTES __BITS(13,12) // actual is + 1 229 1.15 matt #define GSIOCTL_GSIOCODE __BITS(10,8) 230 1.15 matt #define GSIOCODE_OP_RD1DATA 0 231 1.15 matt #define GSIOCODE_OP_WRADDR_RDADDR 1 232 1.15 matt #define GSIOCODE_OP_WRADDR_XFRDATA 2 233 1.15 matt #define GSIOCODE_OP_WRADDR_WAIT_XFRDATA 3 234 1.15 matt #define GSIOCODE_XFRDATA 4 235 1.15 matt #define GSIOCTL_GSIOOP __BITS(7,0) 236 1.1 matt 237 1.15 matt #define MISC_GSIOADDRESS 0x0e8 238 1.15 matt #define MISC_GSIODATA 0x0ec 239 1.1 matt 240 1.15 matt #define MISC_CLKDIV2 0x0f0 241 1.15 matt #define CLKDIV2_GSIODIV __BITS(20,5) 242 1.1 matt 243 1.15 matt #define MISC_EROM_PTR_OFFSET 0x0fc 244 1.1 matt 245 1.1 matt #endif /* CCA_PRIVATE */ 246 1.1 matt 247 1.1 matt /* 248 1.1 matt * UART0 & 1 use the standard 16550 register layout (normal 1 byte stride) 249 1.1 matt * and have 64-byte FIFOs 250 1.1 matt */ 251 1.1 matt 252 1.1 matt /* TIMER0 & 1 are implemented by the dtimer driver */ 253 1.1 matt 254 1.15 matt #define TIMER_FREQ BCM53XX_REF_CLK 255 1.1 matt 256 1.6 matt #ifdef SRAB_PRIVATE 257 1.15 matt #define SRAB_CMDSTAT 0x002c 258 1.6 matt #define SRA_PAGE __BITS(31,24) 259 1.6 matt #define SRA_OFFSET __BITS(23,16) 260 1.15 matt #define SRA_PAGEOFFSET __BITS(31,16) 261 1.15 matt #define SRA_RST __BIT(2) 262 1.15 matt #define SRA_WRITE __BIT(1) 263 1.15 matt #define SRA_GORDYN __BIT(0) 264 1.15 matt #define SRAB_WDH 0x0030 265 1.15 matt #define SRAB_WDL 0x0034 266 1.15 matt #define SRAB_RDH 0x0038 267 1.15 matt #define SRAB_RDL 0x003c 268 1.6 matt #endif 269 1.6 matt 270 1.1 matt #ifdef MII_PRIVATE 271 1.15 matt #define MII_INTERNAL 0x0038003 /* internal phy bitmask */ 272 1.15 matt #define MIIMGT 0x000 273 1.15 matt #define MIIMGT_BYP __BIT(10) 274 1.15 matt #define MIIMGT_EXT __BIT(9) 275 1.15 matt #define MIIMGT_BSY __BIT(8) 276 1.15 matt #define MIIMGT_PRE __BIT(7) 277 1.15 matt #define MIIMGT_MDCDIV __BITS(6,0) 278 1.15 matt #define MIICMD 0x004 279 1.1 matt #define MIICMD_SB __BITS(31,30) 280 1.15 matt #define MIICMD_SB_DEF __SHIFTIN(1, MIICMD_SB) 281 1.1 matt #define MIICMD_OP __BITS(29,28) 282 1.15 matt #define MIICMD_OP_RD __SHIFTIN(2, MIICMD_OP) 283 1.15 matt #define MIICMD_OP_WR __SHIFTIN(1, MIICMD_OP) 284 1.1 matt #define MIICMD_PHY __BITS(27,23) 285 1.1 matt #define MIICMD_REG __BITS(22,18) 286 1.1 matt #define MIICMD_TA __BITS(17,16) 287 1.15 matt #define MIICMD_TA_DEF __SHIFTIN(2, MIICMD_TA) 288 1.1 matt #define MIICMD_DATA __BITS(15,0) 289 1.1 matt 290 1.15 matt #define MIICMD_RD_DEF (MIICMD_SB_DEF|MIICMD_OP_RD|MIICMD_TA_DEF) 291 1.15 matt #define MIICMD_WR_DEF (MIICMD_SB_DEF|MIICMD_OP_WR|MIICMD_TA_DEF) 292 1.15 matt #define MIICMD__PHYREG(p,r) (__SHIFTIN(p,MIICMD_PHY)|__SHIFTIN(r,MIICMD_REG)) 293 1.15 matt #define MIICMD_RD(p,r) (MIICMD_RD_DEF|MIICMD__PHYREG((p),(r))) 294 1.15 matt #define MIICMD_WR(p,r,v) (MIICMD_WR_DEF|MIICMD__PHYREG((p),(r))|(v)) 295 1.1 matt #endif /* MII_PRIVATE */ 296 1.1 matt 297 1.1 matt #ifdef RNG_PRIVATE 298 1.15 matt #define RNG_CTRL 0x000 299 1.1 matt #define RNG_COMBLK2_OSC_DIS __BITS(27,22) 300 1.1 matt #define RNG_COMBLK1_OSC_DIS __BITS(21,16) 301 1.1 matt #define RNG_ICLK_BYP_DIV_CNT __BITS(15,8) 302 1.1 matt #define RNG_JCLK_BYP_SRC __BIT(5) 303 1.1 matt #define RNG_JCLK_BYP_SEL __BIT(4) 304 1.1 matt #define RNG_RBG2X __BIT(1) 305 1.1 matt #define RNG_RBGEN __BIT(0) 306 1.15 matt #define RNG_STATUS 0x004 307 1.15 matt #define RNG_VAL __BITS(31,24) 308 1.15 matt #define RNG_WARM_CNT __BITS(19,0) 309 1.15 matt 310 1.15 matt #define RNG_DATA 0x008 311 1.15 matt #define RNG_FF_THRESHOLD 0x00c 312 1.15 matt #define RNG_INT_MASK 0x010 313 1.15 matt #define RNG_INT_OFF __BIT(0) 314 1.1 matt #endif /* RNG_PRIVATE */ 315 1.1 matt 316 1.1 matt #ifdef UART2_PRIVATE 317 1.1 matt /* 318 1.1 matt * UART2 (ChipCommonB) uses a 4-byte stride and 16-byte FIFO. 319 1.1 matt * Its frequency is the APB clock. 320 1.1 matt */ 321 1.15 matt #define UART2_LPDLL 0x020 322 1.15 matt #define UART2_LPDLH 0x024 323 1.1 matt #endif 324 1.1 matt 325 1.1 matt #ifdef CRU_PRIVATE 326 1.1 matt 327 1.15 matt #define CRU_CONTROL 0x000 328 1.15 matt #define CRUCTL_QSPI_CLK_SEL __BITS(2,1) 329 1.15 matt #define QSPI_CLK_25MHZ 0 // iproc_ref_clk 330 1.15 matt #define QSPI_CLK_50MHZ 1 // iproc_sdio_clk / 4 331 1.15 matt #define QSPI_CLK_31dot25MHZ 2 // iproc_clk250 / 8 332 1.15 matt #define QSPI_CLK_62dot5MHZ 3 // iproc_clk250 / 4 333 1.15 matt #define CRUCTL_SW_RESET __BIT(0) 334 1.15 matt 335 1.15 matt #define CRU_GENPLL_CONTROL5 0x1154 336 1.15 matt #define GENPLL_CONTROL5_NDIV_INT __BITS(29,20) // = (n ? n : 1024) 337 1.15 matt #define GENPLL_CONTROL5_NDIV_FRAC __BITS(19,0) // = 1 / n 338 1.15 matt #define CRU_GENPLL_CONTROL6 0x1158 339 1.15 matt #define GENPLL_CONTROL6_PDIV __BITS(26,24) // = (n ? n : 8) 340 1.15 matt #define GENPLL_CONTROL6_CH0_MDIV __BITS(23,16) // = (n ? n : 256), clk_mac 341 1.20 skrll #define GENPLL_CONTROL6_CH1_MDIV __BITS(15,8) // = (n ? n : 256), clk_robo 342 1.15 matt #define GENPLL_CONTROL6_CH2_MDIV __BITS(7,0) // = (n ? n : 256), clf_usb2 343 1.15 matt #define CRU_GENPLL_CONTROL7 0x115c 344 1.15 matt #define GENPLL_CONTROL7_CH3_MDIV __BITS(23,16) // = (n ? n : 256), clk_iproc 345 1.15 matt 346 1.15 matt #define USB2_REF_CLK (1920*1000*1000) 347 1.15 matt #define CRU_USB2_CONTROL 0x1164 348 1.15 matt #define USB2_CONTROL_KA __BITS(24,22) 349 1.15 matt #define USB2_CONTROL_KI __BITS(31,19) 350 1.15 matt #define USB2_CONTROL_KP __BITS(18,15) 351 1.20 skrll #define USB2_CONTROL_PDIV __BITS(14,12) // = (n ? n : 8) 352 1.15 matt #define USB2_CONTROL_NDIV_INT __BITS(11,2) // = (n ? n : 1024) 353 1.15 matt #define USB2_CONTROL_PLL_PCIEUSB3_RESET __BIT(1) // inverted 1=normal 354 1.15 matt #define USB2_CONTROL_PLL_USB2_RESET __BIT(0) // inverted 1=normal 355 1.1 matt 356 1.15 matt #define CRU_CLKSET_KEY 0x1180 357 1.15 matt #define CRU_CLKSET_KEY_MAGIC 0xea68 358 1.1 matt 359 1.15 matt #define CRU_GPIO_SELECT 0x11c0 // CRU GPIO Select 360 1.1 matt #define CRU_GPIO_DRIVE_SEL2 0x11c4 361 1.1 matt #define CRU_GPIO_DRIVE_SEL1 0x11c8 362 1.1 matt #define CRU_GPIO_DRIVE_SEL0 0x11cc 363 1.1 matt #define CRU_GPIO_INPUT_DISABLE 0x11d0 364 1.1 matt #define CRU_GPIO_HYSTERESIS 0x11d4 365 1.1 matt #define CRU_GPIO_SLEW_RATE 0x11d8 366 1.1 matt #define CRU_GPIO_PULL_UP 0x11dc 367 1.1 matt #define CRU_GPIO_PULL_DOWN 0x11e0 368 1.1 matt 369 1.1 matt #define CRU_STRAPS_CONTROL 0x12a0 370 1.6 matt #define STRAP_BOOT_DEV __BITS(17,16) 371 1.6 matt #define STRAP_NAND_TYPE __BITS(15,12) 372 1.6 matt #define STRAP_NAND_PAGE __BITS(11,10) 373 1.6 matt #define STRAP_DDR3 __BIT(9) 374 1.6 matt #define STRAP_P5_VOLT_15 __BIT(8) 375 1.6 matt #define STRAP_P5_MODE __BITS(7,6) 376 1.6 matt #define STRAP_PCIE0_MODE __BIT(5) 377 1.6 matt #define STRAP_USB3_SEL __BIT(4) 378 1.6 matt #define STRAP_EX_EXTCLK __BIT(3) 379 1.6 matt #define STRAP_HW_FWDG_EN __BIT(2) 380 1.6 matt #define STRAP_LED_SERIAL_MODE __BIT(1) 381 1.1 matt #define STRAP_BISR_BYPASS_AUTOLOAD __BIT(0) 382 1.1 matt 383 1.1 matt #endif /* CRU_PRIVATE */ 384 1.1 matt 385 1.1 matt #ifdef DMU_PRIVATE 386 1.1 matt 387 1.15 matt #define DMU_LCPLL_CONTROL0 0x100 388 1.15 matt #define DMU_LCPLL_CONTROL1 0x104 389 1.20 skrll #define LCPLL_CONTROL1_PDIV __BITS(30,28) // = (n ? n : 8) 390 1.15 matt #define LCPLL_CONTROL1_NDIV_INT __BITS(27,20) // = (n ? n : 256) 391 1.15 matt #define LCPLL_CONTROL1_NDIV_FRAC __BITS(19,0) // = 1 / n 392 1.1 matt /* 393 1.1 matt * SYS_CLK = (1 / pdiv) * (ndiv_int + (ndiv_frac / 0x40000000)) x F(ref) 394 1.1 matt */ 395 1.15 matt #define DMU_LCPLL_CONTROL2 0x108 396 1.15 matt #define LCPLL_CONTROL2_CH0_MDIV __BITS(31,24) // = (n ? n : 256), clk_pcie_ref 397 1.15 matt #define LCPLL_CONTROL2_CH1_MDIV __BITS(23,16) // = (n ? n : 256), clk_sdio 398 1.20 skrll #define LCPLL_CONTROL2_CH2_MDIV __BITS(15,8) // = (n ? n : 256), clk_ddr 399 1.15 matt #define LCPLL_CONTROL2_CH3_MDIV __BITS(7,0) // = (n ? n : 256), clf_dft 400 1.1 matt 401 1.16 matt #define DMU_CRU_RESET 0x200 402 1.16 matt #define DMU_CRU_RESET_IPROC __BIT(1) 403 1.16 matt #define DMU_CRU_RESET_CMICD __BIT(0) 404 1.16 matt 405 1.1 matt #endif /* DMU_PRIVATE */ 406 1.1 matt 407 1.1 matt #ifdef DDR_PRIVATE 408 1.1 matt /* 409 1.1 matt * DDR CTL register has such inspired names. 410 1.1 matt */ 411 1.15 matt #define DDR_CTL_01 0x004 412 1.15 matt #define CTL_01_MAX_CHIP_SEL __BITS(18,16) // not documented as such 413 1.15 matt #define CTL_01_MAX_COL __BITS(11,8) 414 1.15 matt #define CTL_01_MAX_ROW __BITS(4,0) 415 1.15 matt 416 1.15 matt #define DDR_CTL_82 0x148 417 1.15 matt #define CTL_82_COL_DIFF __BITS(26,24) 418 1.15 matt #define CTL_82_ROW_DIFF __BITS(18,16) 419 1.15 matt #define CTL_82_BANK_DIFF __BITS(9,8) 420 1.15 matt #define CTL_82_ZQCS_ROTATE __BIT(0) 421 1.15 matt 422 1.15 matt #define DDR_CTL_86 0x158 423 1.15 matt #define CTL_86_CS_MAP __BITS(27,24) 424 1.15 matt #define CTL_86_INHIBIT_DRAM_CMD __BIT(16) 425 1.15 matt #define CTL_86_DIS_RD_INTRLV __BIT(8) 426 1.15 matt #define CTL_86_NUM_QENT_ACT_DIS __BITS(2,0) 427 1.1 matt 428 1.15 matt #define DDR_CTL_87 0x15c 429 1.1 matt #define CTL_87_IN_ORDER_ACCEPT __BIT(24) 430 1.1 matt #define CTL_87_Q_FULLNESS __BITS(18,16) 431 1.1 matt #define CTL_87_REDUC __BIT(8) 432 1.1 matt #define CTL_87_BURST_ON_FLY_BIT __BITS(3,0) 433 1.1 matt 434 1.15 matt #define DDR_PHY_CTL_PLL_STATUS 0x810 435 1.15 matt #define PLL_STATUS_LOCK_LOST __BIT(26) 436 1.15 matt #define PLL_STATUS_MHZ __BITS(25,14) 437 1.15 matt #define PLL_STATUS_CLOCKING_4X __BIT(13) 438 1.15 matt #define PLL_STATUS_STATUS __BITS(12,1) 439 1.15 matt #define PLL_STATUS_LOCK __BIT(0) 440 1.15 matt 441 1.15 matt #define DDR_PHY_CTL_PLL_DIVIDERS 0x81c 442 1.15 matt #define PLL_DIVIDERS_POST_DIV __BITS(13,11) 443 1.15 matt #define PLL_DIVIDERS_PDIV __BITS(10,8) // 4x: (n ? n : 8), n = n - 4, 4x 444 1.15 matt #define PLL_DIVIDERS_NDIV __BITS(7,0) 445 1.1 matt 446 1.1 matt #endif /* DDR_PRIVATE */ 447 1.1 matt 448 1.1 matt #ifdef PCIE_PRIVATE 449 1.1 matt 450 1.15 matt #define PCIE_CLK_CONTROL 0x000 451 1.2 matt 452 1.10 matt #define PCIE_RC_AXI_CONFIG 0x100 453 1.15 matt #define PCIE_AWCACHE_CONFIG __BITS(17,14) 454 1.15 matt #define PCIE_AWUSER_CONFIG __BITS(13,9) 455 1.15 matt #define PCIE_ARCACHE_CONFIG __BITS(8,5) 456 1.15 matt #define PCIE_ARUSER_CONFIG __BITS(4,0) 457 1.10 matt 458 1.15 matt #define PCIE_CFG_IND_ADDR 0x120 459 1.15 matt #define CFG_IND_ADDR_FUNC __BITS(15,13) 460 1.1 matt #define CFG_IND_ADDR_LAYER __BITS(12,11) 461 1.15 matt #define CFG_IND_ADDR_REG __BITS(10,2) 462 1.15 matt #define PCIE_CFG_IND_DATA 0x124 463 1.15 matt #define PCIE_CFG_ADDR 0x1f8 464 1.15 matt #define CFG_ADDR_BUS __BITS(27,20) 465 1.15 matt #define CFG_ADDR_DEV __BITS(19,15) 466 1.15 matt #define CFG_ADDR_FUNC __BITS(14,12) 467 1.15 matt #define CFG_ADDR_REG __BITS(11,2) 468 1.15 matt #define CFG_ADDR_TYPE __BITS(1,0) 469 1.15 matt #define CFG_ADDR_TYPE0 __SHIFTIN(0, CFG_ADDR_TYPE) 470 1.15 matt #define CFG_ADDR_TYPE1 __SHIFTIN(1, CFG_ADDR_TYPE) 471 1.15 matt #define PCIE_CFG_DATA 0x1fc 472 1.15 matt #define PCIE_EQ_PAGE 0x200 473 1.15 matt #define PCIE_MSI_PAGE 0x204 474 1.15 matt #define PCIE_MSI_INTR_EN 0x208 475 1.15 matt #define PCIE_MSI_CTRL_0 0x210 476 1.15 matt #define PCIE_MSI_CTRL_1 0x214 477 1.15 matt #define PCIE_MSI_CTRL_2 0x218 478 1.15 matt #define PCIE_MSI_CTRL_3 0x21c 479 1.15 matt #define PCIE_MSI_CTRL_4 0x220 480 1.15 matt #define PCIE_MSI_CTRL_5 0x224 481 1.1 matt #define PCIE_SYS_EQ_HEAD_0 0x250 482 1.1 matt #define PCIE_SYS_EQ_TAIL_0 0x254 483 1.1 matt #define PCIE_SYS_EQ_HEAD_1 0x258 484 1.1 matt #define PCIE_SYS_EQ_TAIL_1 0x25c 485 1.1 matt #define PCIE_SYS_EQ_HEAD_2 0x260 486 1.1 matt #define PCIE_SYS_EQ_TAIL_2 0x264 487 1.1 matt #define PCIE_SYS_EQ_HEAD_3 0x268 488 1.1 matt #define PCIE_SYS_EQ_TAIL_3 0x26c 489 1.1 matt #define PCIE_SYS_EQ_HEAD_4 0x270 490 1.1 matt #define PCIE_SYS_EQ_TAIL_4 0x274 491 1.1 matt #define PCIE_SYS_EQ_HEAD_5 0x278 492 1.1 matt #define PCIE_SYS_EQ_TAIL_5 0x27c 493 1.1 matt #define PCIE_SYS_RC_INTX_EN 0x330 494 1.1 matt #define PCIE_SYS_RC_INTX_CSR 0x334 495 1.1 matt 496 1.15 matt #define PCIE_CFG000_BASE 0x400 497 1.8 matt 498 1.15 matt #define PCIE_FUNC0_IMAP0_0 0xc00 499 1.15 matt #define PCIE_FUNC0_IMAP0_1 0xc04 500 1.15 matt #define PCIE_FUNC0_IMAP0_2 0xc08 501 1.15 matt #define PCIE_FUNC0_IMAP0_3 0xc0c 502 1.15 matt #define PCIE_FUNC0_IMAP0_4 0xc10 503 1.15 matt #define PCIE_FUNC0_IMAP0_5 0xc14 504 1.15 matt #define PCIE_FUNC0_IMAP0_6 0xc18 505 1.15 matt #define PCIE_FUNC0_IMAP0_7 0xc1c 506 1.15 matt 507 1.15 matt #define PCIE_FUNC0_IMAP1 0xc80 508 1.15 matt #define PCIE_FUNC1_IMAP1 0xc88 509 1.15 matt #define PCIE_FUNC0_IMAP2 0xcc0 510 1.15 matt #define PCIE_FUNC1_IMAP2 0xcc8 511 1.15 matt 512 1.15 matt #define PCIE_IARR_0_LOWER 0xd00 513 1.15 matt #define PCIE_IARR_0_UPPER 0xd04 514 1.15 matt #define PCIE_IARR_1_LOWER 0xd08 515 1.15 matt #define PCIE_IARR_1_UPPER 0xd0c 516 1.15 matt #define PCIE_IARR_2_LOWER 0xd10 517 1.15 matt #define PCIE_IARR_2_UPPER 0xd14 518 1.1 matt 519 1.15 matt #define PCIE_OARR_0 0xd20 520 1.15 matt #define PCIE_OARR_1 0xd28 521 1.1 matt 522 1.3 matt #define PCIE_OARR_ADDR __BITS(31,26) 523 1.3 matt 524 1.15 matt #define PCIE_OMAP_0_LOWER 0xd40 525 1.15 matt #define PCIE_OMAP_0_UPPER 0xd44 526 1.15 matt #define PCIE_OMAP_1_LOWER 0xd48 527 1.15 matt #define PCIE_OMAP_1_UPPER 0xd4c 528 1.1 matt 529 1.3 matt #define PCIE_OMAP_ADDRL __BITS(31,26) 530 1.3 matt 531 1.15 matt #define PCIE_FUNC1_IARR_1_SIZE 0xd58 532 1.15 matt #define PCIE_FUNC1_IARR_2_SIZE 0xd5c 533 1.1 matt 534 1.1 matt #define PCIE_MEM_CONTROL 0xf00 535 1.1 matt #define PCIE_MEM_ECC_ERR_LOG_0 0xf04 536 1.1 matt #define PCIE_MEM_ECC_ERR_LOG_1 0xf08 537 1.1 matt 538 1.15 matt #define PCIE_LINK_STATUS 0xf0c 539 1.1 matt #define PCIE_PHYLINKUP __BIT(3) 540 1.1 matt #define PCIE_DL_ACTIVE __BIT(2) 541 1.1 matt #define PCIE_RX_LOS_TIMEOUT __BIT(1) 542 1.1 matt #define PCIE_LINK_IN_L1 __BIT(0) 543 1.15 matt #define PCIE_STRAP_STATUS 0xf10 544 1.1 matt #define STRAP_PCIE_REPLAY_BUF_TM __BITS(8,4) 545 1.1 matt #define STRAP_PCIE_USER_FOR_CE_GEN1 __BIT(3) 546 1.1 matt #define STRAP_PCIE_USER_FOR_CE_1LANE __BIT(2) 547 1.1 matt #define STRAP_PCIE_IF_ENABLE __BIT(1) 548 1.1 matt #define STRAP_PCIE_USER_RC_MODE __BIT(0) 549 1.15 matt #define PCIE_RESET_STATUS 0xf14 550 1.1 matt 551 1.15 matt #define PCIE_RESET_ENABLE_IN_PCIE_LINK_DOWN 0xf18 552 1.1 matt 553 1.15 matt #define PCIE_MISC_INTR_EN 0xf1c 554 1.1 matt #define PCIE_TX_DEBUG_CFG 0xf20 555 1.15 matt #define PCIE_ERROR_INTR_EN 0xf30 556 1.15 matt #define PCIE_ERROR_INTR_CLR 0xf34 557 1.15 matt #define PCIE_ERROR_INTR_STS 0xf38 558 1.1 matt 559 1.1 matt 560 1.1 matt // PCIE_SYS_MSI_INTR_EN 561 1.15 matt #define MSI_INTR_EN_EQ_5 __BIT(5) 562 1.15 matt #define MSI_INTR_EN_EQ_4 __BIT(4) 563 1.15 matt #define MSI_INTR_EN_EQ_3 __BIT(3) 564 1.15 matt #define MSI_INTR_EN_EQ_2 __BIT(2) 565 1.15 matt #define MSI_INTR_EN_EQ_1 __BIT(1) 566 1.15 matt #define MSI_INTR_EN_EQ_0 __BIT(0) 567 1.1 matt 568 1.1 matt // PCIE_SYS_MSI_CTRL<n> 569 1.15 matt #define INT_N_DELAY __BITS(9,6) 570 1.15 matt #define INT_N_EVENT __BITS(1,1) 571 1.15 matt #define EQ_ENABLE __BIT(0) 572 1.1 matt 573 1.1 matt // PCIE_SYS_EQ_HEAD<n> 574 1.15 matt #define HEAD_PTR __BITS(5,0) 575 1.1 matt 576 1.1 matt // PCIE_SYS_EQ_TAIL<n> 577 1.15 matt #define EQ_OVERFLOW __BIT(6) 578 1.15 matt #define TAIL_PTR __BITS(5,0) 579 1.1 matt 580 1.1 matt // PCIE_SYS_RC_INTRX_EN 581 1.15 matt #define RC_EN_INTD __BIT(3) 582 1.15 matt #define RC_EN_INTC __BIT(2) 583 1.15 matt #define RC_EN_INTB __BIT(1) 584 1.15 matt #define RC_EN_INTA __BIT(0) 585 1.1 matt 586 1.1 matt // PCIE_SYS_RC_INTRX_CSR 587 1.15 matt #define RC_INTD __BIT(3) 588 1.15 matt #define RC_INTC __BIT(2) 589 1.15 matt #define RC_INTB __BIT(1) 590 1.15 matt #define RC_INTA __BIT(0) 591 1.1 matt 592 1.1 matt // PCIE_IARR_0_LOWER / UPPER 593 1.15 matt #define IARR0_ADDR __BIT(31,15) 594 1.15 matt #define IARR0_VALID __BIT(0) 595 1.1 matt 596 1.1 matt // PCIE_IARR_1_LOWER / UPPER 597 1.15 matt #define IARR1_ADDR __BIT(31,20) 598 1.15 matt #define IARR1_SIZE __BIT(7,0) 599 1.5 matt 600 1.5 matt // PCIE_IARR_2_LOWER / UPPER 601 1.15 matt #define IARR2_ADDR __BIT(31,20) 602 1.15 matt #define IARR2_SIZE __BIT(7,0) 603 1.5 matt 604 1.5 matt // PCIE_MISC_INTR_EN 605 1.15 matt #define INTR_EN_PCIE_ERR_ATTN __BIT(2) 606 1.15 matt #define INTR_EN_PAXB_ECC_2B_ATTN __BIT(1) 607 1.15 matt #define INTR_EN_PCIE_IN_WAKE_B __BIT(0) 608 1.5 matt 609 1.5 matt // PCIE_ERR_INTR_{EN,CLR,STS} 610 1.15 matt #define PCIE_OVERFLOW_UNDERFLOW_INTR __BIT(10) 611 1.15 matt #define PCIE_AXI_MASTER_RRESP_SLV_ERR_INTR __BIT(9) 612 1.15 matt #define PCIE_AXI_MASTER_RRESP_DECERR_INTR __BIT(8) 613 1.15 matt #define PCIE_ECRC_ERR_INTR __BIT(7) 614 1.15 matt #define PCIE_CMPL_TIMEROUT_INTR __BIT(6) 615 1.15 matt #define PCIE_ERR_ATTN_INTR __BIT(5) 616 1.15 matt #define PCIE_IN_WAKE_B_INTR __BIT(4) 617 1.15 matt #define PCIE_REPLAY_BUF_2B_ECC_ERR_INTR __BIT(3) 618 1.15 matt #define PCIE_RD_CMPL_BUF_1_2B_ECC_ERR_INTR __BIT(2) 619 1.15 matt #define PCIE_RD_CMPL_BUF_0_2B_ECC_ERR_INTR __BIT(1) 620 1.15 matt #define PCIE_WR_DATA_BUF_2B_ECC_ERR_INTR __BIT(0) 621 1.15 matt 622 1.15 matt #define REGS_DEVICE_CAPACITY 0x04d4 623 1.15 matt #define REGS_LINK_CAPACITY 0x03dc 624 1.15 matt #define REGS_TL_CONTROL_0 0x0800 625 1.15 matt #define REGS_DL_STATUS 0x1048 626 1.1 matt 627 1.1 matt #endif /* PCIE_PRIVATE */ 628 1.1 matt 629 1.15 matt #define ARMCORE_SCU_BASE 0x20000 /* CBAR is 19020000 */ 630 1.15 matt #define ARMCORE_L2C_BASE 0x22000 631 1.1 matt 632 1.1 matt #ifdef ARMCORE_PRIVATE 633 1.1 matt 634 1.15 matt #define ARMCORE_CLK_POLICY_FREQ 0x008 635 1.15 matt #define CLK_POLICY_FREQ_PRIVED __BIT(31) 636 1.15 matt #define CLK_POLICY_FREQ_POLICY3 __BITS(26,24) 637 1.15 matt #define CLK_POLICY_FREQ_POLICY2 __BITS(18,16) 638 1.15 matt #define CLK_POLICY_FREQ_POLICY1 __BITS(10,8) 639 1.15 matt #define CLK_POLICY_FREQ_POLICY0 __BITS(2,0) 640 1.15 matt #define CLK_POLICY_REF_CLK 0 // 25 MHZ 641 1.15 matt #define CLK_POLICY_SYS_CLK 1 // sys clk (200MHZ) 642 1.15 matt #define CLK_POLICY_ARM_PLL_CH0 6 // slow clock 643 1.15 matt #define CLK_POLICY_ARM_PLL_CH1 7 // fast clock 644 1.15 matt 645 1.15 matt #define ARMCORE_CLK_APB_DIV 0xa10 646 1.15 matt #define CLK_APB_DIV_PRIVED __BIT(31) 647 1.15 matt #define CLK_APB_DIV_VALUE __BITS(1,0) // n = n + 1 648 1.15 matt 649 1.15 matt #define ARMCORE_CLK_APB_DIV_TRIGGER 0xa10 650 1.15 matt #define CLK_APB_DIV_TRIGGER_PRIVED __BIT(31) 651 1.15 matt #define CLK_APB_DIV_TRIGGER_OVERRIDE __BIT(0) 652 1.15 matt 653 1.15 matt #define ARMCORE_CLK_PLLARMA 0xc00 654 1.20 skrll #define CLK_PLLARMA_PDIV __BITS(26,24) // = (n ? n : 16(?)) 655 1.15 matt #define CLK_PLLARMA_NDIV_INT __BITS(17,8) // = (n ? n : 1024) 656 1.1 matt 657 1.15 matt #define ARMCORE_CLK_PLLARMB 0xc04 658 1.15 matt #define CLK_PLLARMB_NDIV_FRAC __BITS(19,0) // = 1 / n 659 1.1 matt 660 1.1 matt #endif 661 1.1 matt 662 1.1 matt #ifdef IDM_PRIVATE 663 1.1 matt 664 1.15 matt #define IDM_ARMCORE_M0_BASE 0x00000 665 1.15 matt #define IDM_PCIE_M0_BASE 0x01000 666 1.15 matt #define IDM_PCIE_M1_BASE 0x02000 667 1.15 matt #define IDM_PCIE_M2_BASE 0x03000 668 1.15 matt #define IDM_USB3_BASE 0x05000 669 1.15 matt #define IDM_ARMCORE_S1_BASE 0x06000 670 1.15 matt #define IDM_ARMCORE_S0_BASE 0x07000 671 1.15 matt #define IDM_DDR_S1_BASE 0x08000 672 1.15 matt #define IDM_DDR_S2_BASE 0x09000 673 1.15 matt #define IDM_ROM_S0_BASE 0x0d000 674 1.15 matt #define IDM_AMAC0_BASE 0x10000 675 1.15 matt #define IDM_AMAC1_BASE 0x11000 676 1.15 matt #define IDM_AMAC2_BASE 0x12000 677 1.15 matt #define IDM_AMAC3_BASE 0x13000 678 1.15 matt #define IDM_DMAC_M0_BASE 0x14000 679 1.15 matt #define IDM_USB2_BASE 0x15000 680 1.15 matt #define IDM_SDIO_BASE 0x16000 681 1.15 matt #define IDM_I2S_M0_BASE 0x17000 682 1.15 matt #define IDM_A9JTAG_M0_BASE 0x18000 683 1.16 matt #ifdef BCM5301X 684 1.15 matt #define IDM_NAND_BASE 0x1a000 685 1.15 matt #define IDM_QSPI_BASE 0x1b000 686 1.16 matt #endif 687 1.16 matt #ifdef BCM563XX 688 1.16 matt #define IDM_NAND_BASE 0x1b000 689 1.16 matt #define IDM_QSPI_BASE 0x1c000 690 1.16 matt #endif 691 1.1 matt #define IDM_APBX_BASE 0x21000 692 1.1 matt 693 1.15 matt #define IDM_IO_CONTROL_DIRECT 0x0408 694 1.15 matt #define IDM_IO_STATUS 0x0500 695 1.15 matt #define IDM_RESET_CONTROL 0x0800 696 1.15 matt #define IDM_RESET_STATUS 0x0804 697 1.15 matt #define IDM_INTERRUPT_STATUS 0x0a00 698 1.15 matt 699 1.15 matt #define IO_CONTROL_DIRECT_ARUSER __BITS(29,25) 700 1.15 matt #define IO_CONTROL_DIRECT_AWUSER __BITS(24,20) 701 1.15 matt #define IO_CONTROL_DIRECT_ARCACHE __BITS(19,16) 702 1.15 matt #define IO_CONTROL_DIRECT_AWCACHE __BITS(10,7) 703 1.15 matt #define AXCACHE_WA __BIT(3) 704 1.15 matt #define AXCACHE_RA __BIT(2) 705 1.15 matt #define AXCACHE_C __BIT(1) 706 1.15 matt #define AXCACHE_B __BIT(0) 707 1.15 matt #define IO_CONTROL_DIRECT_UARTCLKSEL __BIT(17) 708 1.15 matt #define IO_CONTROL_DIRECT_CLK_250_SEL __BIT(6) 709 1.15 matt #define IO_CONTROL_DIRECT_DIRECT_GMII_MODE __BIT(5) 710 1.15 matt #define IO_CONTROL_DIRECT_TX_CLK_OUT_INVERT_EN __BIT(4) 711 1.15 matt #define IO_CONTROL_DIRECT_DEST_SYNC_MODE_EN __BIT(3) 712 1.15 matt #define IO_CONTROL_DIRECT_SOURCE_SYNC_MODE_EN __BIT(2) 713 1.15 matt #define IO_CONTROL_DIRECT_CLK_GATING_EN __BIT(0) 714 1.1 matt 715 1.15 matt #define RESET_CONTROL_RESET __BIT(0) 716 1.1 matt 717 1.1 matt #endif /* IDM_PRIVATE */ 718 1.1 matt 719 1.11 matt #ifdef USBH_PRIVATE 720 1.15 matt #define USBH_PHY_CTRL_P0 0x200 721 1.15 matt #define USBH_PHY_CTRL_P1 0x204 722 1.11 matt 723 1.15 matt #define USBH_PHY_CTRL_INIT 0x3ff 724 1.11 matt #endif 725 1.11 matt 726 1.1 matt #ifdef GMAC_PRIVATE 727 1.1 matt 728 1.1 matt struct gmac_txdb { 729 1.1 matt uint32_t txdb_flags; 730 1.6 matt uint32_t txdb_buflen; 731 1.1 matt uint32_t txdb_addrlo; 732 1.1 matt uint32_t txdb_addrhi; 733 1.1 matt }; 734 1.15 matt #define TXDB_FLAG_SF __BIT(31) // Start oF Frame 735 1.15 matt #define TXDB_FLAG_EF __BIT(30) // End oF Frame 736 1.19 andvar #define TXDB_FLAG_IC __BIT(29) // Interrupt on Completion 737 1.15 matt #define TXDB_FLAG_ET __BIT(28) // End Of Table 738 1.1 matt 739 1.1 matt struct gmac_rxdb { 740 1.1 matt uint32_t rxdb_flags; 741 1.6 matt uint32_t rxdb_buflen; 742 1.1 matt uint32_t rxdb_addrlo; 743 1.1 matt uint32_t rxdb_addrhi; 744 1.1 matt }; 745 1.15 matt #define RXDB_FLAG_SF __BIT(31) // Start oF Frame (ignored) 746 1.15 matt #define RXDB_FLAG_EF __BIT(30) // End oF Frame (ignored) 747 1.19 andvar #define RXDB_FLAG_IC __BIT(29) // Interrupt on Completion 748 1.15 matt #define RXDB_FLAG_ET __BIT(28) // End Of Table 749 1.15 matt 750 1.15 matt #define RXSTS_FRAMELEN __BITS(15,0) // # of bytes (including padding) 751 1.15 matt #define RXSTS_PKTTYPE __BITS(17,16) 752 1.15 matt #define RXSTS_PKTTYPE_UC 0 // Unicast 753 1.15 matt #define RXSTS_PKTTYPE_MC 1 // Multicast 754 1.15 matt #define RXSTS_PKTTYPE_BC 2 // Broadcast 755 1.15 matt #define RXSTS_VLAN_PRESENT __BIT(18) 756 1.15 matt #define RXSTS_CRC_ERROR __BIT(19) 757 1.15 matt #define RXSTS_OVERSIZED __BIT(20) 758 1.15 matt #define RXSTS_CTF_HIT __BIT(21) 759 1.15 matt #define RXSTS_CTF_ERROR __BIT(22) 760 1.15 matt #define RXSTS_PKT_OVERFLOW __BIT(23) 761 1.15 matt #define RXSTS_DESC_COUNT __BITS(27,24) // # of descriptors - 1 762 1.1 matt 763 1.15 matt #define GMAC_DEVCONTROL 0x000 764 1.6 matt #define ENABLE_DEL_G_TXC __BIT(21) 765 1.6 matt #define ENABLE_DEL_G_RXC __BIT(20) 766 1.15 matt #define TXC_DRNG __BITS(19,18) 767 1.15 matt #define RXC_DRNG __BITS(17,16) 768 1.6 matt #define TXQ_FLUSH __BIT(8) 769 1.6 matt #define NWAY_AUTO_POLL_EN __BIT(7) 770 1.6 matt #define FLOW_CTRL_MODE __BITS(6,5) 771 1.6 matt #define MIB_RD_RESET_EN __BIT(4) 772 1.6 matt #define RGMII_LINK_STATUS_SEL __BIT(3) 773 1.6 matt #define CPU_FLOW_CTRL_ON __BIT(2) 774 1.6 matt #define RXQ_OVERFLOW_CTRL_SEL __BIT(1) 775 1.6 matt #define TXARB_STRICT_MODE __BIT(0) 776 1.1 matt #define GMAC_DEVSTATUS 0x004 777 1.1 matt #define GMAC_BISTSTATUS 0x00c 778 1.1 matt #define GMAC_INTSTATUS 0x020 779 1.1 matt #define GMAC_INTMASK 0x024 780 1.20 skrll #define TXQECCUNCORRECTED __BIT(31) 781 1.6 matt #define TXQECCCORRECTED __BIT(30) 782 1.6 matt #define RXQECCUNCORRECTED __BIT(29) 783 1.6 matt #define RXQECCCORRECTED __BIT(28) 784 1.6 matt #define XMTINT_3 __BIT(27) 785 1.6 matt #define XMTINT_2 __BIT(26) 786 1.6 matt #define XMTINT_1 __BIT(25) 787 1.6 matt #define XMTINT_0 __BIT(24) 788 1.6 matt #define RCVINT __BIT(16) 789 1.6 matt #define XMTUF __BIT(15) 790 1.6 matt #define RCVFIFOOF __BIT(14) 791 1.6 matt #define RCVDESCUF __BIT(13) 792 1.6 matt #define DESCPROTOERR __BIT(12) 793 1.6 matt #define DATAERR __BIT(11) 794 1.6 matt #define DESCERR __BIT(10) 795 1.6 matt #define INT_SW_LINK_ST_CHG __BIT(8) 796 1.6 matt #define INT_TIMEOUT __BIT(7) 797 1.6 matt #define MIB_TX_INT __BIT(6) 798 1.6 matt #define MIB_RX_INT __BIT(5) 799 1.6 matt #define MDIOINT __BIT(4) 800 1.6 matt #define NWAYLINKSTATINT __BIT(3) 801 1.6 matt #define TXQ_FLUSH_DONEINT __BIT(2) 802 1.6 matt #define MIB_TX_OVERFLOW __BIT(1) 803 1.6 matt #define MIB_RX_OVERFLOW __BIT(0) 804 1.1 matt #define GMAC_GPTIMER 0x028 805 1.1 matt 806 1.1 matt #define GMAC_INTRCVLAZY 0x100 807 1.7 matt #define INTRCVLAZY_FRAMECOUNT __BITS(31,24) 808 1.7 matt #define INTRCVLAZY_TIMEOUT __BITS(23,0) 809 1.1 matt #define GMAC_FLOWCNTL_TH 0x104 810 1.1 matt #define GMAC_TXARB_WRR_TH 0x108 811 1.1 matt #define GMAC_GMACIDLE_CNT_TH 0x10c 812 1.1 matt 813 1.1 matt #define GMAC_FIFOACCESSADDR 0x120 814 1.1 matt #define GMAC_FIFOACCESSBYTE 0x124 815 1.1 matt #define GMAC_FIFOACCESSDATA 0x128 816 1.1 matt 817 1.1 matt #define GMAC_PHYACCESS 0x180 818 1.1 matt #define GMAC_PHYCONTROL 0x188 819 1.1 matt #define GMAC_TXQCONTROL 0x18c 820 1.1 matt #define GMAC_RXQCONTROL 0x190 821 1.1 matt #define GMAC_GPIOSELECT 0x194 822 1.1 matt #define GMAC_GPIOOUTPUTEN 0x198 823 1.1 matt #define GMAC_TXQRXQMEMORYCONTROL 0x1a0 824 1.1 matt #define GMAC_MEMORYECCSTATUS 0x1a4 825 1.1 matt 826 1.1 matt #define GMAC_CLOCKCONTROLSTATUS 0x1e0 827 1.1 matt #define GMAC_POWERCONTROL 0x1e8 828 1.1 matt 829 1.6 matt #define GMAC_XMTCONTROL 0x200 830 1.6 matt #define XMTCTL_PREFETCH_THRESH __BITS(25,24) 831 1.6 matt #define XMTCTL_PREFETCH_CTL __BITS(23,21) 832 1.6 matt #define XMTCTL_BURSTLEN __BITS(20,18) 833 1.6 matt #define XMTCTL_ADDREXT __BITS(17,16) 834 1.6 matt #define XMTCTL_DMA_ACT_INDEX __BIT(13) 835 1.6 matt #define XMTCTL_PARITY_DIS __BIT(11) 836 1.6 matt #define XMTCTL_OUTSTANDING_READS __BITS(7,6) 837 1.6 matt #define XMTCTL_BURST_ALIGN_EN __BIT(5) 838 1.6 matt #define XMTCTL_DMA_LOOPBACK __BIT(2) 839 1.6 matt #define XMTCTL_SUSPEND __BIT(1) 840 1.6 matt #define XMTCTL_ENABLE __BIT(0) 841 1.6 matt #define GMAC_XMTPTR 0x204 842 1.6 matt #define XMT_LASTDSCR __BITS(11,4) 843 1.6 matt #define GMAC_XMTADDR_LOW 0x208 844 1.6 matt #define GMAC_XMTADDR_HIGH 0x20c 845 1.6 matt #define GMAC_XMTSTATUS0 0x210 846 1.6 matt #define XMTSTATE __BITS(31,28) 847 1.6 matt #define XMTSTATE_DIS 0 848 1.6 matt #define XMTSTATE_ACTIVE 1 849 1.6 matt #define XMTSTATE_IDLE_WAIT 2 850 1.6 matt #define XMTSTATE_STOPPED 3 851 1.6 matt #define XMTSTATE_SUSP_PENDING 4 852 1.6 matt #define XMT_CURRDSCR __BITS(11,4) 853 1.6 matt #define GMAC_XMTSTATUS1 0x214 854 1.6 matt #define XMTERR __BITS(31,28) 855 1.6 matt #define XMT_ACTIVEDSCR __BITS(11,4) 856 1.6 matt #define GMAC_RCVCONTROL 0x220 857 1.6 matt #define RCVCTL_PREFETCH_THRESH __BITS(25,24) 858 1.6 matt #define RCVCTL_PREFETCH_CTL __BITS(23,21) 859 1.6 matt #define RCVCTL_BURSTLEN __BITS(20,18) 860 1.6 matt #define RCVCTL_ADDREXT __BITS(17,16) 861 1.6 matt #define RCVCTL_DMA_ACT_INDEX __BIT(13) 862 1.6 matt #define RCVCTL_PARITY_DIS __BIT(11) 863 1.6 matt #define RCVCTL_OFLOW_CONTINUE __BIT(10) 864 1.6 matt #define RCVCTL_SEPRXHDRDESC __BIT(9) 865 1.6 matt #define RCVCTL_RCVOFFSET __BITS(7,1) 866 1.6 matt #define RCVCTL_ENABLE __BIT(0) 867 1.1 matt #define GMAC_RCVPTR 0x224 868 1.15 matt #define RCVPTR __BITS(11,4) 869 1.1 matt #define GMAC_RCVADDR_LOW 0x228 870 1.1 matt #define GMAC_RCVADDR_HIGH 0x22c 871 1.1 matt #define GMAC_RCVSTATUS0 0x230 872 1.6 matt #define RCVSTATE __BITS(31,28) 873 1.6 matt #define RCVSTATE_DIS 0 874 1.6 matt #define RCVSTATE_ACTIVE 1 875 1.6 matt #define RCVSTATE_IDLE_WAIT 2 876 1.6 matt #define RCVSTATE_STOPPED 3 877 1.6 matt #define RCVSTATE_SUSP_PENDING 4 878 1.6 matt #define RCV_CURRDSCR __BITS(11,4) 879 1.1 matt #define GMAC_RCVSTATUS1 0x234 880 1.6 matt #define RCV_ACTIVEDSCR __BITS(11,4) 881 1.1 matt 882 1.1 matt #define GMAC_TX_GD_OCTETS_LO 0x300 883 1.1 matt 884 1.1 matt 885 1.15 matt #define UNIMAC_IPG_HD_BPG_CNTL 0x804 886 1.15 matt #define UNIMAC_COMMAND_CONFIG 0x808 887 1.6 matt #define RUNT_FILTER_DIS __BIT(30) 888 1.6 matt #define OOB_EFC_EN __BIT(29) 889 1.6 matt #define IGNORE_TX_PAUSE __BIT(28) 890 1.6 matt #define PRBL_ENA __BIT(27) 891 1.6 matt #define RX_ERR_DIS __BIT(26) 892 1.6 matt #define LINE_LOOPBACK __BIT(25) 893 1.6 matt #define NO_LENGTH_CHECK __BIT(24) 894 1.6 matt #define CNTRL_FRM_ENA __BIT(23) 895 1.6 matt #define ENA_EXT_CONFIG __BIT(22) 896 1.6 matt #define EN_INTERNAL_TX_CRS __BIT(21) 897 1.6 matt #define SW_OVERRIDE_RX __BIT(18) 898 1.6 matt #define SW_OVERRIDE_TX __BIT(17) 899 1.6 matt #define MAC_LOOP_CON __BIT(16) 900 1.6 matt #define LOOP_ENA __BIT(15) 901 1.6 matt #define RCS_CORRUPT_URUN_EN __BIT(14) 902 1.6 matt #define SW_RESET __BIT(13) 903 1.6 matt #define OVERFLOW_EN __BIT(12) 904 1.6 matt #define RX_LOW_LATENCY_EN __BIT(11) 905 1.6 matt #define HD_ENA __BIT(10) 906 1.6 matt #define TX_ADDR_INS __BIT(9) 907 1.20 skrll #define PAUSE_IGNORE __BIT(8) 908 1.20 skrll #define PAUSE_FWD __BIT(7) 909 1.20 skrll #define CRC_FWD __BIT(6) 910 1.20 skrll #define PAD_EN __BIT(5) 911 1.20 skrll #define PROMISC_EN __BIT(4) 912 1.6 matt #define ETH_SPEED __BITS(3,2) 913 1.6 matt #define ETH_SPEED_10 0 914 1.6 matt #define ETH_SPEED_100 1 915 1.6 matt #define ETH_SPEED_1000 2 916 1.6 matt #define ETH_SPEED_2500 3 917 1.20 skrll #define RX_ENA __BIT(1) 918 1.20 skrll #define TX_ENA __BIT(0) 919 1.15 matt #define UNIMAC_MAC_0 0x80c // bits 16:47 of macaddr 920 1.15 matt #define UNIMAC_MAC_1 0x810 // bits 0:15 of macaddr 921 1.15 matt #define UNIMAC_FRAME_LEN 0x814 922 1.15 matt #define UNIMAC_PAUSE_QUANTA 0x818 923 1.15 matt #define UNIMAC_TX_TS_SEQ_ID 0x83c 924 1.15 matt #define UNIMAC_MAC_MODE 0x844 925 1.15 matt #define UNIMAC_TAG_0 0x848 926 1.15 matt #define UNIMAC_TAG_1 0x84c 927 1.15 matt #define UNIMAC_RX_PAUSE_QUANTA_SCALE 0x850 928 1.15 matt #define UNIMAC_TX_PREAMBLE 0x854 929 1.15 matt #define UNIMAC_TX_IPG_LENGTH 0x85c 930 1.15 matt #define UNIMAC_PRF_XOFF_TIMER 0x860 931 1.15 matt #define UNIMAC_UMAC_EEE_CTRL 0x864 932 1.15 matt #define UNIMAC_MII_EEE_DELAY_ENTRY_TIMER 0x868 933 1.15 matt #define UNIMAC_GMII_EEE_DELAY_ENTRY_TIMER 0x86c 934 1.15 matt #define UNIMAC_UMAC_EEE_REF_COUNT 0x870 935 1.15 matt #define UNIMAC_UMAX_RX_PKT_DROP_STATUS 0x878 936 1.1 matt 937 1.1 matt #define UNIMAC_UMAC_SYMMETRIC_IDLE_THRESHOLD 0x87c // RX IDLE threshold for LPI prediction 938 1.1 matt #define UNIMAC_MII_EEE_WAKE_TIMER 0x880 // MII_EEE Wake timer 939 1.1 matt #define UNIMAC_GMII_EEE_WAKE_TIMER 0x884 // GMII_EEE Wake timer 940 1.1 matt #define UNIMAC_UMAC_REV_ID 0x888 // UNIMAC_REV_ID 941 1.1 matt #define UNIMAC_MAC_PFC_TYPE 0xb00 // Programmable ethertype (GNAT 13440) 942 1.1 matt #define UNIMAC_MAC_PFC_OPCODE 0xb04 // Programmable opcode (GNAT 13440) 943 1.1 matt #define UNIMAC_MAC_PFC_DA_0 0xb08 // lower 32 bits of programmable DA for PPP (GNAT 13897) 944 1.1 matt #define UNIMAC_MAC_PFC_DA_1 0xb0c // upper 16 bits of programmable DA for PPP (GNAT 13897) 945 1.1 matt #define UNIMAC_MACSEC_CNTRL 0xb14 // Miscellaneous control for MACSEC (GNAT 11599,11600,12078,12198) 946 1.1 matt #define UNIMAC_TS_STATUS_CNTRL 0xb18 // Timestamp control/status 947 1.1 matt #define UNIMAC_TX_TS_DATA 0xb1c // Transmit Timestamp data 948 1.1 matt #define UNIMAC_PAUSE_CONTROL 0xb30 // PAUSE frame timer control register 949 1.1 matt #define UNIMAC_FLUSH_CONTROL 0xb34 // Flush enable control register 950 1.1 matt #define UNIMAC_RXFIFO_STAT 0xb38 // RXFIFO status register 951 1.1 matt #define UNIMAC_TXFIFO_STAT 0xb3c // TXFIFO status register 952 1.1 matt #define UNIMAC_MAC_PFC_CTRL 0xb40 // PPP control register 953 1.1 matt #define UNIMAC_MAC_PFC_REFRESH_CTRL 0xb44 // PPP refresh control register 954 1.1 matt 955 1.1 matt #endif /* GMAC_PRIVATE */ 956 1.1 matt 957 1.14 matt #ifdef NAND_PRIVATE 958 1.14 matt 959 1.14 matt #define NAND_REVISION 0x0000 // NAND Revision 960 1.14 matt #define NAND_CMD_START 0x0004 // Nand Flash Command Start 961 1.14 matt #define NAND_CMD_EXT_ADDR 0x0008 // Nand Flash Command Extended Address 962 1.14 matt #define NAND_CMD_ADDR 0x000c // Nand Flash Command Address 963 1.14 matt #define NAND_CMD_END_ADDR 0x0010 // Nand Flash Command End Address 964 1.14 matt #define NAND_INTFC_STATUS 0x0014 // Nand Flash Interface Status 965 1.16 matt #define NAND_CS_NAND_SELECT 0x0018 // Nand Flash CS 966 1.14 matt #define NAND_CS_NAND_XOR 0x001c // Nand Flash EBI 967 1.14 matt #define NAND_LL_OP 0x0020 // Nand Flash Low Level Operation 968 1.14 matt #define NAND_MPLANE_BASE_EXT_ADDR 0x0024 // Nand Flash Multiplane base address 969 1.14 matt #define NAND_MPLANE_BASE_ADDR 0x0028 // Nand Flash Multiplane base address 970 1.14 matt #define NAND_ACC_CONTROL_CS0 0x0050 // Nand Flash Access Control 971 1.14 matt #define NAND_CONFIG_CS0 0x0054 // Nand Flash Config 972 1.14 matt #define NAND_TIMING_1_CS0 0x0058 // Nand Flash Timing Parameters 1 973 1.14 matt #define NAND_TIMING_2_CS0 0x005c // Nand Flash Timing Parameters 2 974 1.14 matt #define NAND_ACC_CONTROL_CS1 0x0060 // Nand Flash Access Control 975 1.14 matt #define NAND_CONFIG_CS1 0x0064 // Nand Flash 976 1.14 matt #define NAND_TIMING_1_CS1 0x0068 // Nand Flash Timing Parameters 1 977 1.14 matt #define NAND_TIMING_2_CS1 0x006c // Nand Flash Timing Parameters 2 978 1.14 matt #define NAND_CORR_STAT_THRESHOLD 0x00c0 // Correctable Error Reporting Threshold 979 1.14 matt #define NAND_BLK_WR_PROTECT 0x00c8 // Block Write Protect Enable and Size for EBI_CS0b 980 1.14 matt #define NAND_MULTIPLANE_OPCODES_1 0x00cc // Nand Flash Multiplane Customized Opcodes 981 1.14 matt #define NAND_MULTIPLANE_OPCODES_2 0x00d0 // Nand Flash Multiplane Customized Opcodes 982 1.14 matt #define NAND_MULTIPLANE_CTRL 0x00d4 // Nand Flash Multiplane Control 983 1.14 matt #define NAND_UNCORR_ERROR_COUNT 0x00fc // Read Uncorrectable Event Count 984 1.14 matt #define NAND_CORR_ERROR_COUNT 0x0100 // Read Error Count 985 1.14 matt #define NAND_READ_ERROR_COUNT 0x0104 // Read Error Count 986 1.14 matt #define NAND_BLOCK_LOCK_STATUS 0x0108 // Nand Flash Block Lock Status 987 1.14 matt #define NAND_ECC_CORR_EXT_ADDR 0x010c // ECC Correctable Error Extended Address 988 1.14 matt #define NAND_ECC_CORR_ADDR 0x0110 // ECC Correctable Error Address 989 1.14 matt #define NAND_ECC_UNC_EXT_ADDR 0x0114 // ECC Uncorrectable Error Extended Address 990 1.14 matt #define NAND_ECC_UNC_ADDR 0x0118 // ECC Uncorrectable Error Address 991 1.14 matt #define NAND_FLASH_READ_EXT_ADDR 0x011c // Flash Read Data Extended Address 992 1.14 matt #define NAND_FLASH_READ_ADDR 0x0120 // Flash Read Data Address 993 1.14 matt #define NAND_PROGRAM_PAGE_EXT_ADDR 0x0124 // Page Program Extended Address 994 1.14 matt #define NAND_PROGRAM_PAGE_ADDR 0x0128 // Page Program Address 995 1.14 matt #define NAND_COPY_BACK_EXT_ADDR 0x012c // Copy Back Extended Address 996 1.14 matt #define NAND_COPY_BACK_ADDR 0x0130 // Copy Back Address 997 1.14 matt #define NAND_BLOCK_ERASE_EXT_ADDR 0x0134 // Block Erase Extended Address 998 1.14 matt #define NAND_BLOCK_ERASE_ADDR 0x0138 // Block Erase Address 999 1.14 matt #define NAND_INV_READ_EXT_ADDR 0x013c // Flash Invalid Data Extended Address 1000 1.14 matt #define NAND_INV_READ_ADDR 0x0140 // Flash Invalid Data Address 1001 1.14 matt #define NAND_INIT_STATUS 0x0144 // Initialization status 1002 1.14 matt #define NAND_ONFI_STATUS 0x0148 // ONFI Status 1003 1.14 matt #define NAND_ONFI_DEBUG_DATA 0x014c // ONFI Debug Data 1004 1.14 matt #define NAND_SEMAPHORE 0x0150 // Semaphore 1005 1.14 matt #define NAND_FLASH_DEVICE_ID 0x0194 // Nand Flash Device ID 1006 1.14 matt #define NAND_FLASH_DEVICE_ID_EXT 0x0198 // Nand Flash Extended Device ID 1007 1.14 matt #define NAND_LL_RDDATA 0x019c // Nand Flash Low Level Read Data 1008 1.14 matt 1009 1.14 matt #define NAND_SPARE_AREA_READ_OFSn(n) (0x0200+4*(n)) // Nand Flash Spare Area Read Bytes 1010 1.14 matt #define NAND_SPARE_AREA_WRITE_OFSn(n) (0x0280+4*(n)) // Nand Flash Spare Area Write Bytes 8-11 1011 1.14 matt #define NAND_FLASH_CACHEn(n) (0x0400+4*(n)) // Flash Cache Buffer Read Access 1012 1.14 matt 1013 1.14 matt #define NAND_DIRECT_READ_RD_MISS 0x0f00 // Interrupt from Nand indicating a read miss on internal memory 1014 1.14 matt #define NAND_BLOCK_ERASE_COMPLETE 0x0f04 // Interrupt from Nand indicating block erase 1015 1.14 matt #define NAND_COPY_BACK_COMPLETE 0x0f08 // Interrupt from Nand indicating Copy-Back complete. 1016 1.14 matt #define NAND_PROGRAM_PAGE_COMPLETE 0x0f0c // Interrupt from nand indicating page program is complete. 1017 1.14 matt #define NAND_RO_CTLR_READY 0x0f10 // Interrupt from nand indicating controller ready 1018 1.14 matt #define NAND_NAND_RB_B 0x0f14 // Interrupt from nand indicating status of Nand Flash ready_bus pin 1019 1.14 matt #define NAND_ECC_MIPS_UNCORR 0x0f18 // Interrupt from Nand indicating Uncorrectable error 1020 1.14 matt #define NAND_ECC_MIPS_CORR 0x0f1c // Interrupt from Nand indicating correctable error 1021 1.14 matt 1022 1.15 matt #define NAND_CMD_START_OPCODE __BITS(28,24) 1023 1.14 matt #define NAND_CMD_START_OPCODE_DEFAULT 0 1024 1.14 matt #define NAND_CMD_START_OPCODE_NULL 0 1025 1.14 matt #define NAND_CMD_START_OPCODE_PAGE_READ 1 1026 1.14 matt #define NAND_CMD_START_OPCODE_SPARE_AREA_READ 2 1027 1.14 matt #define NAND_CMD_START_OPCODE_STATUS_READ 3 1028 1.14 matt #define NAND_CMD_START_OPCODE_PROGRAM_PAGE 4 1029 1.14 matt #define NAND_CMD_START_OPCODE_PROGRAM_SPARE_AREA 5 1030 1.14 matt #define NAND_CMD_START_OPCODE_COPY_BACK 6 1031 1.14 matt #define NAND_CMD_START_OPCODE_DEVICE_ID_READ 7 1032 1.14 matt #define NAND_CMD_START_OPCODE_BLOCK_ERASE 8 1033 1.14 matt #define NAND_CMD_START_OPCODE_FLASH_RESET 9 1034 1.14 matt #define NAND_CMD_START_OPCODE_BLOCKS_LOCK 10 1035 1.14 matt #define NAND_CMD_START_OPCODE_BLOCKS_LOCK_DOWN 11 1036 1.14 matt #define NAND_CMD_START_OPCODE_BLOCKS_UNLOCK 12 1037 1.14 matt #define NAND_CMD_START_OPCODE_READ_BLOCKS_LOCK_STATUS 13 1038 1.14 matt #define NAND_CMD_START_OPCODE_PARAMETER_READ 14 1039 1.14 matt #define NAND_CMD_START_OPCODE_PARAMETER_CHANGE_COL 15 1040 1.14 matt #define NAND_CMD_START_OPCODE_LOW_LEVEL_OP 16 1041 1.14 matt #define NAND_CMD_START_OPCODE_PAGE_READ_MULTI 17 1042 1.14 matt #define NAND_CMD_START_OPCODE_STATUS_READ_MULTI 18 1043 1.14 matt #define NAND_CMD_START_OPCODE_PROGRAM_PAGE_MULTI 19 1044 1.14 matt #define NAND_CMD_START_OPCODE_PROGRAM_PAGE_MULTI_CACHE 20 1045 1.14 matt #define NAND_CMD_START_OPCODE_BLOCK_ERASE_MULTI 21 1046 1.15 matt #define NAND_CMD_START_CSEL __BITS(18,16) 1047 1.15 matt #define NAND_CMD_EXT_ADDRESS __BITS(15,0) 1048 1.14 matt 1049 1.16 matt #define BCM_NAND_IDM_IO_CONTROL_APB_LE_MODE_BIT __BIT(24) 1050 1.16 matt 1051 1.16 matt 1052 1.14 matt #endif /* NAND_PRIVATE */ 1053 1.14 matt 1054 1.1 matt #endif /* _ARM_BROADCOM_BCM53XX_REG_H_ */ 1055