The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/mips/rt305x/rt305xreg.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright (c) 2015 Stanislav Galabov.
    3  * Copyright (c) 2010 Aleksandr Rybalko.
    4  * All rights reserved.
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions
    8  * are met:
    9  * 1. Redistributions of source code must retain the above copyright
   10  *    notice, this list of conditions and the following disclaimer.
   11  * 2. Redistributions in binary form must reproduce the above copyright
   12  *    notice, this list of conditions and the following disclaimer in the
   13  *    documentation and/or other materials provided with the distribution.
   14  *
   15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   25  * SUCH DAMAGE.
   26  *
   27  * $FreeBSD$
   28  */
   29 
   30 #ifndef _RT305XREG_H_
   31 #define _RT305XREG_H_
   32 
   33 #include "opt_rt305x.h"
   34 
   35 #ifdef RT3052F
   36 #define PLATFORM_COUNTER_FREQ   (384 * 1000 * 1000)
   37 #endif
   38 #ifdef RT3050F
   39 #define PLATFORM_COUNTER_FREQ   (320 * 1000 * 1000)
   40 #endif
   41 #ifdef MT7620
   42 #define PLATFORM_COUNTER_FREQ   (580 * 1000 * 1000)
   43 #endif
   44 #ifdef RT5350
   45 #define PLATFORM_COUNTER_FREQ   (360 * 1000 * 1000)
   46 #endif
   47 #ifndef PLATFORM_COUNTER_FREQ
   48 #error "No platform selected"
   49 #endif
   50 
   51 #ifndef MT7620
   52 
   53 #define SYSTEM_CLOCK    (PLATFORM_COUNTER_FREQ/3)
   54 
   55 #define SDRAM_BASE      0x00000000
   56 #define SDRAM_END       0x03FFFFFF
   57 
   58 #define SYSCTL_BASE     0x10000000
   59 #define SYSCTL_END      0x100000FF
   60 #define TIMER_BASE      0x10000100
   61 #define TIMER_END       0x100001FF
   62 #define INTCTL_BASE     0x10000200
   63 #define INTCTL_END      0x100002FF
   64 #define MEMCTRL_BASE    0x10000300
   65 #define MEMCTRL_END     0x100003FF /* SDRAM & Flash/SRAM */
   66 #ifndef RT5350
   67 #define PCM_BASE        0x10000400
   68 #define PCM_END         0x100004FF
   69 #else
   70 #define PCM_BASE        0x10002000
   71 #define PCM_END         0x100027FF
   72 #endif
   73 #define UART_BASE       0x10000500
   74 #define UART_END        0x100005FF
   75 #define PIO_BASE        0x10000600
   76 #define PIO_END         0x100006FF
   77 #ifndef RT5350
   78 #define GDMA_BASE       0x10000700
   79 #define GDMA_END        0x100007FF /* Generic DMA */
   80 #define NANDFC_BASE     0x10000800
   81 #define NANDFC_END      0x100008FF /* NAND Flash Controller */
   82 #else
   83 #define GDMA_BASE       0x10002800
   84 #define GDMA_END        0x10002FFF
   85 #endif
   86 #define I2C_BASE        0x10000900
   87 #define I2C_END         0x100009FF
   88 #define I2S_BASE        0x10000A00
   89 #define I2S_END         0x10000AFF
   90 #define SPI_BASE        0x10000B00
   91 #define SPI_END         0x10000BFF
   92 #define UARTLITE_BASE   0x10000C00
   93 #define UARTLITE_END    0x10000CFF
   94 
   95 #define FRENG_BASE      0x10100000
   96 #define FRENG_END       0x1010FFFF /* Frame Engine */
   97 #define ETHSW_BASE      0x10110000
   98 #define ETHSW_END       0x10117FFF /* Ethernet Switch */
   99 #define ROM_BASE        0x10118000
  100 #define ROM_END         0x10119FFF
  101 #define WLAN_BASE       0x10180000
  102 #define WLAN_END        0x101BFFFF /* 802.11n MAC/BBP */
  103 #ifndef RT5350
  104 #define USB_OTG_BASE    0x101C0000
  105 #define USB_OTG_END     0x101FFFFF
  106 #else
  107 #define USB_OTG_BASE    0x101C0000
  108 #define USB_OTG_END     0x101C0FFF
  109 #define USB_OHCI_BASE   0x101C1000
  110 #define USB_OHCI_END    0x101C1FFF
  111 #endif
  112 #define EMEM_BASE       0x1B000000
  113 #define EMEM_END        0x1BFFFFFF /* External SRAM/Flash */
  114 #ifdef RT5350
  115 #define BOOT_ROM_BASE   0x1C000000
  116 #define BOOT_ROM_END    0x1C003FFF
  117 #endif
  118 #ifndef RT5350
  119 #define FLASH_BASE      0x1F000000
  120 #define FLASH_END       0x1FFFFFFF /* Flash window */
  121 #endif
  122 
  123 #define OBIO_MEM_BASE   SYSCTL_BASE
  124 #define OBIO_MEM_START  OBIO_MEM_BASE
  125 #ifndef RT5350
  126 #define OBIO_MEM_END    FLASH_END
  127 #else
  128 #define OBIO_MEM_END    BOOT_ROM_END
  129 #endif
  130 
  131 #else /* MT7620 */
  132 
  133 #define SYSTEM_CLOCK    (40 * 1000 * 1000)
  134 
  135 #define SDRAM_BASE      0x00000000
  136 #define SDRAM_END       0x0FFFFFFF
  137 
  138 #define SYSCTL_BASE     0x10000000
  139 #define SYSCTL_END      0x100000FF
  140 #define TIMER_BASE      0x10000100
  141 #define TIMER_END       0x100001FF
  142 #define INTCTL_BASE     0x10000200
  143 #define INTCTL_END      0x100002FF
  144 #define MEMCTRL_BASE    0x10000300
  145 #define MEMCTRL_END     0x100003FF /* SDRAM & Flash/SRAM */
  146 #define PCM_BASE        0x10002000
  147 #define PCM_END         0x100027FF
  148 #define UART_BASE       0x10000500
  149 #define UART_END        0x100005FF
  150 #define PIO_BASE        0x10000600
  151 #define PIO_END         0x100006FF
  152 #define GDMA_BASE       0x10002800
  153 #define GDMA_END        0x10002FFF /* Generic DMA */
  154 #define NANDFC_BASE     0x10000800
  155 #define NANDFC_END      0x100008FF /* NAND Flash Controller */
  156 #define I2C_BASE        0x10000900
  157 #define I2C_END         0x100009FF
  158 #define I2S_BASE        0x10000A00
  159 #define I2S_END         0x10000AFF
  160 #define SPI_BASE        0x10000B00
  161 #define SPI_END         0x10000BFF
  162 #define UARTLITE_BASE   0x10000C00
  163 #define UARTLITE_END    0x10000CFF
  164 
  165 #define FRENG_BASE      0x10100000
  166 #define FRENG_END       0x1010FFFF /* Frame Engine */
  167 #define ETHSW_BASE      0x10110000
  168 #define ETHSW_END       0x10117FFF /* Ethernet Switch */
  169 #define ROM_BASE        0x10118000
  170 #define ROM_END         0x1011FFFF
  171 #define WLAN_BASE       0x10180000
  172 #define WLAN_END        0x101BFFFF /* 802.11n MAC/BBP */
  173 #define USB_OTG_BASE    0x101C0000
  174 #define USB_OTG_END     0x101C0FFF
  175 #define USB_OHCI_BASE   0x101C1000
  176 #define USB_OHCI_END    0x101C1FFF
  177 #define PCIE_BASE       0x10140000
  178 #define PCIE_END        0x1017FFFF
  179 #define SDHC_BASE       0x10130000
  180 #define SDHC_END        0x10133FFF
  181 
  182 #define PCIE_IO_BASE    0x10160000
  183 #define PCIE_IO_END     0x1016FFFF
  184 #define PCIE_MEM_BASE   0x20000000
  185 #define PCIE_MEM_END    0x2FFFFFFF
  186 
  187 // TODO: fix below mappings?
  188 #define EMEM_BASE       0x1B000000
  189 #define EMEM_END        0x1BFFFFFF /* External SRAM/Flash */
  190 #define FLASH_BASE      0x1F000000
  191 #define FLASH_END       0x1FFFFFFF /* Flash window */
  192 
  193 #define OBIO_MEM_BASE   SYSCTL_BASE
  194 #define OBIO_MEM_START  OBIO_MEM_BASE
  195 #define OBIO_MEM_END    FLASH_END
  196 #endif
  197 
  198 /* System Control */
  199 #define SYSCTL_CHIPID0_3        0x00
  200 #define SYSCTL_CHIPID4_7        0x04
  201 #ifdef RT5350
  202 #define SYSCTL_REVID            0x0C
  203 #endif
  204 
  205 #define SYSCTL_SYSCFG           0x10
  206 #if !defined(RT5350) && !defined(MT7620)
  207 #define SYSCTL_SYSCFG_INIC_EE_SDRAM             (1<<29)
  208 #define SYSCTL_SYSCFG_INIC_8MB_SDRAM            (1<<28) 
  209 #define SYSCTL_SYSCFG_GE0_MODE_MASK             0x03000000
  210 #define SYSCTL_SYSCFG_GE0_MODE_SHIFT            24
  211 #define SYSCTL_SYSCFG_GE0_MODE_RGMII            0 /* RGMII Mode */
  212 #define SYSCTL_SYSCFG_GE0_MODE_MII              1 /* MII Mode */
  213 #define SYSCTL_SYSCFG_GE0_MODE_REV_MII          2 /*Reversed MII Mode*/
  214 #define SYSCTL_SYSCFG_BOOT_ADDR_1F00            (1<<22)
  215 #define SYSCTL_SYSCFG_BYPASS_PLL                (1<<21)
  216 #define SYSCTL_SYSCFG_BIG_ENDIAN                (1<<20)
  217 #define SYSCTL_SYSCFG_CPU_CLK_SEL_384MHZ        (1<<18)
  218 #define SYSCTL_SYSCFG_BOOT_FROM_MASK            0x00030000
  219 #define SYSCTL_SYSCFG_BOOT_FROM_SHIFT           16
  220 #define SYSCTL_SYSCFG_BOOT_FROM_FLASH16         0
  221 #define SYSCTL_SYSCFG_BOOT_FROM_FLASH8          1
  222 #define SYSCTL_SYSCFG_BOOT_FROM_NANDFLASH       2
  223 #define SYSCTL_SYSCFG_BOOT_FROM_ROM             3
  224 #define SYSCTL_SYSCFG_TEST_CODE_MASK            0x0000ff00
  225 #define SYSCTL_SYSCFG_TEST_CODE_SHIFT           8
  226 #define SYSCTL_SYSCFG_SRAM_CS_MODE_MASK         0x0000000c
  227 #define SYSCTL_SYSCFG_SRAM_CS_MODE_SHIFT        2
  228 #define SYSCTL_SYSCFG_SRAM_CS_MODE_SRAM         0
  229 #define SYSCTL_SYSCFG_SRAM_CS_MODE_WDOG_RST     1
  230 #define SYSCTL_SYSCFG_SRAM_CS_MODE_BT_COEX      2
  231 #define SYSCTL_SYSCFG_SDRAM_CLK_DRV             (1<<0) /* 8mA/12mA */
  232 #endif
  233 #ifdef RT5350
  234 #define SYSCTL1_SYSCFG_PULL_EN                  (1<<26)
  235 #define SYSCTL1_SYSCFG_SDR_PAD_DRV_MASK         0x0700000
  236 #define SYSCTL1_SYSCFG_SDR_PAD_DRV_SHIFT        20
  237 #define SYSCTL1_SYSCFG_SDR_PAD_DRV_0            0
  238 #define SYSCTL1_SYSCFG_SDR_PAD_DRV_1            1
  239 #define SYSCTL1_SYSCFG_SDR_PAD_DRV_2            2
  240 #endif
  241 
  242 #define SYSCTL_SYSCFG1          0x14
  243 #define SYSCTL_SYSCFG1_USB0_HOST_MODE           (1 << 10)
  244 
  245 #define SYSCTL_TESTSTAT         0x18
  246 #define SYSCTL_TESTSTAT2        0x1C
  247 
  248 #define SYSCTL_CLKCFG0          0x2C
  249 #define SYSCTL_CLKCFG0_SDRAM_CLK_SKEW_MASK              0xc0000000
  250 #define SYSCTL_CLKCFG0_SDRAM_CLK_SKEW_SHIFT             30
  251 #define SYSCTL_CLKCFG0_SDRAM_CLK_SKEW_ZERO_DELAY        0
  252 #define SYSCTL_CLKCFG0_SDRAM_CLK_SKEW_1NS_DELAY         1
  253 #define SYSCTL_CLKCFG0_SDRAM_CLK_SKEW_2NS_DELAY         2
  254 #define SYSCTL_CLKCFG0_SDRAM_CLK_SKEW_3NS_DELAY         3
  255 
  256 #define SYSCTL_CLKCFG1          0x30
  257 #if !defined(RT5350)
  258 #define SYSCTL_CLKCFG1_PBUS_DIV_CLK_BY2         (1<<30)
  259 #define SYSCTL_CLKCFG1_UPHY0_CLK_EN             (1<<25)
  260 #define SYSCTL_CLKCFG1_UPHY1_CLK_EN             (1<<22)
  261 #define SYSCTL_CLKCFG1_OTG_CLK_EN               (1<<18)
  262 #define SYSCTL_CLKCFG1_I2S_CLK_EN               (1<<15)
  263 #define SYSCTL_CLKCFG1_I2S_CLK_SEL_EXT          (1<<14)
  264 #define SYSCTL_CLKCFG1_I2S_CLK_DIV_MASK                 0x00003f00
  265 #define SYSCTL_CLKCFG1_I2S_CLK_DIV_SHIFT        8
  266 #define SYSCTL_CLKCFG1_PCM_CLK_EN               (1<<7)
  267 #define SYSCTL_CLKCFG1_PCM_CLK_SEL_EXT          (1<<6)
  268 #define SYSCTL_CLKCFG1_PCM_CLK_DIV_MASK                 0x0000003f
  269 #define SYSCTL_CLKCFG1_PCM_CLK_DIV_SHIFT        0
  270 #endif
  271 #ifdef RT5350
  272 #define SYSCTL_CLKCFG1_SYSTICK_EN               (1<<29)
  273 #define SYSCTL_CLKCFG1_PDMA_CSR_CLK_GATE_BYP    (1<<23)
  274 #define SYSCTL_CLKCFG1_UPHY0_CLK_EN             (1<<18)
  275 #endif
  276 
  277 #define SYSCTL_RSTCTRL          0x34
  278 #define SYSCTL_RSTCTRL_ETHSW            (1<<23)
  279 #if !defined(MT7620) && !defined(RT5350)
  280 #define SYSCTL_RSTCTRL_OTG              (1<<22)
  281 #else
  282 #define SYSCTL_RSTCTRL_UPHY0            (1<<25)
  283 #define SYSCTL_RSTCTRL_UPHY1            (1<<22)
  284 #endif
  285 #define SYSCTL_RSTCTRL_FRENG            (1<<21)
  286 #define SYSCTL_RSTCTRL_WLAN             (1<<20)
  287 #define SYSCTL_RSTCTRL_UARTL            (1<<19)
  288 #define SYSCTL_RSTCTRL_SPI              (1<<18)
  289 #define SYSCTL_RSTCTRL_I2S              (1<<17)
  290 #define SYSCTL_RSTCTRL_I2C              (1<<16)
  291 #define SYSCTL_RSTCTRL_DMA              (1<<14)
  292 #define SYSCTL_RSTCTRL_PIO              (1<<13)
  293 #define SYSCTL_RSTCTRL_UART             (1<<12)
  294 #define SYSCTL_RSTCTRL_PCM              (1<<11)
  295 #define SYSCTL_RSTCTRL_MC               (1<<10)
  296 #define SYSCTL_RSTCTRL_INTC             (1<<9)
  297 #define SYSCTL_RSTCTRL_TIMER            (1<<8)
  298 #define SYSCTL_RSTCTRL_SYS              (1<<0)
  299 
  300 #define SYSCTL_RSTSTAT          0x38
  301 #define SYSCTL_RSTSTAT_SWCPURST         (1<<3)
  302 #define SYSCTL_RSTSTAT_SWSYSRST         (1<<2)
  303 #define SYSCTL_RSTSTAT_WDRST            (1<<1)
  304 
  305 #define SYSCTL_GPIOMODE         0x60
  306 #define SYSCTL_GPIOMODE_RGMII_GPIO_MODE         (1<<9)
  307 #define SYSCTL_GPIOMODE_SDRAM_GPIO_MODE         (1<<8)
  308 #define SYSCTL_GPIOMODE_MDIO_GPIO_MODE          (1<<7)
  309 #define SYSCTL_GPIOMODE_JTAG_GPIO_MODE          (1<<6)
  310 #define SYSCTL_GPIOMODE_UARTL_GPIO_MODE         (1<<5)
  311 #define SYSCTL_GPIOMODE_UARTF_SHARE_MODE_UARTF          (0<<2)
  312 #define SYSCTL_GPIOMODE_UARTF_SHARE_MODE_PCM_UARTF      (1<<2)
  313 #define SYSCTL_GPIOMODE_UARTF_SHARE_MODE_PCM_I2S        (2<<2)
  314 #define SYSCTL_GPIOMODE_UARTF_SHARE_MODE_I2S_UARTF      (3<<2)
  315 #define SYSCTL_GPIOMODE_UARTF_SHARE_MODE_PCM_GPIO       (4<<2)
  316 #define SYSCTL_GPIOMODE_UARTF_SHARE_MODE_GPIO_UARTF     (5<<2)
  317 #define SYSCTL_GPIOMODE_UARTF_SHARE_MODE_GPIO_I2S       (6<<2)
  318 #define SYSCTL_GPIOMODE_UARTF_SHARE_MODE_GPIO           (7<<2)
  319 #define SYSCTL_GPIOMODE_SPI_GPIO_MODE           (1<<1)
  320 #define SYSCTL_GPIOMODE_I2C_GPIO_MODE           (1<<0)
  321 
  322 #define SYSCTL_MEMO0            0x68
  323 #define SYSCTL_MEMO1            0x6C
  324 
  325 #define SYSCTL_PPLL_CFG1        0x9C
  326 #define SYSCTL_PPLL_DRV         0xA0
  327 
  328 /* Timer */
  329 #define TIMER_TMRSTAT           0x00
  330 #define TIMER_TMRSTAT_TMR1RST   (1<<5)
  331 #define TIMER_TMRSTAT_TMR0RST   (1<<4)
  332 #define TIMER_TMRSTAT_TMR1INT   (1<<1)
  333 #define TIMER_TMRSTAT_TMR0INT   (1<<0)
  334 #define TIMER_TMR0LOAD          0x10
  335 #define TIMER_TMR0VAL           0x14
  336 #define TIMER_TMR0CTL           0x18
  337 #define TIMER_TMR1LOAD          0x20
  338 #define TIMER_TMR1VAL           0x24
  339 #define TIMER_TMR1CTL           0x28
  340 
  341 #define TIMER_TMRLOAD_TMR0LOAD_MASK     0xffff
  342 
  343 #define TIMER_TMRVAL_TMR0VAL_MASK       0xffff
  344 
  345 #define TIMER_TMRCTL_ENABLE             (1<<7)
  346 #define TIMER_TMRCTL_MODE_MASK          0x00000030
  347 #define TIMER_TMRCTL_MODE_SHIFT         4
  348 #define TIMER_TMRCTL_MODE_FREE          0
  349 #define TIMER_TMRCTL_MODE_PERIODIC      1
  350 #define TIMER_TMRCTL_MODE_TIMOUT        2
  351 #define TIMER_TMRCTL_MODE_TIMOUT3       3
  352 #define TIMER_TMRCTL_PRESCALE_MASK      0x0000000f
  353 #define TIMER_TMRCTL_PRESCALE_SHIFT     0
  354 #define TIMER_TMRCTL_PRESCALE_NONE      0
  355 #define TIMER_TMRCTL_PRESCALE_BY_4      1
  356 #define TIMER_TMRCTL_PRESCALE_BY_8      2
  357 #define TIMER_TMRCTL_PRESCALE_BY_16     3
  358 #define TIMER_TMRCTL_PRESCALE_BY_32     4
  359 #define TIMER_TMRCTL_PRESCALE_BY_64     5
  360 #define TIMER_TMRCTL_PRESCALE_BY_128    6
  361 #define TIMER_TMRCTL_PRESCALE_BY_256    7
  362 #define TIMER_TMRCTL_PRESCALE_BY_512    8
  363 #define TIMER_TMRCTL_PRESCALE_BY_1K     9
  364 #define TIMER_TMRCTL_PRESCALE_BY_2K     10
  365 #define TIMER_TMRCTL_PRESCALE_BY_4K     11
  366 #define TIMER_TMRCTL_PRESCALE_BY_8K     12
  367 #define TIMER_TMRCTL_PRESCALE_BY_16K    13
  368 #define TIMER_TMRCTL_PRESCALE_BY_32K    14
  369 #define TIMER_TMRCTL_PRESCALE_BY_64K    15
  370 
  371 /* Interrupt Controller */
  372 #define IC_IRQ0STAT             0x00
  373 #define IC_IRQ1STAT             0x04
  374 #define IC_INTTYPE              0x20
  375 #define IC_INTRAW               0x30
  376 #define IC_INT_ENA              0x34
  377 #define IC_INT_DIS              0x38
  378 
  379 #define IC_OTG          18
  380 #define IC_ETHSW        17
  381 #define IC_R2P          15
  382 #define IC_SDHC         14
  383 #define IC_UARTLITE     12
  384 #define IC_SPI          11
  385 #define IC_I2S          10
  386 #define IC_PERFC        9
  387 #define IC_NAND         8
  388 #define IC_DMA          7
  389 #define IC_PIO          6
  390 #define IC_UART         5
  391 #define IC_PCM          4
  392 #define IC_ILL_ACCESS   3
  393 #define IC_WDTIMER      2
  394 #define IC_TIMER0       1
  395 #define IC_SYSCTL       0
  396 
  397 #define IC_LINE_GLOBAL          (1<<31) /* Only for DIS/ENA regs */
  398 #define IC_LINE_OTG             (1<<18)
  399 #define IC_LINE_ETHSW           (1<<17)
  400 #define IC_LINE_UARTLITE        (1<<12)
  401 #define IC_LINE_I2S             (1<<10)
  402 #define IC_LINE_PERFC           (1<<9)
  403 #define IC_LINE_NAND            (1<<8)
  404 #define IC_LINE_DMA             (1<<7)
  405 #define IC_LINE_PIO             (1<<6)
  406 #define IC_LINE_UART            (1<<5)
  407 #define IC_LINE_PCM             (1<<4)
  408 #define IC_LINE_ILL_ACCESS      (1<<3)
  409 #define IC_LINE_WDTIMER         (1<<2)
  410 #define IC_LINE_TIMER0          (1<<1)
  411 #define IC_LINE_SYSCTL          (1<<0)
  412 
  413 #define IC_INT_MASK             0x000617ff
  414 
  415 /* GPIO */
  416 
  417 #define GPIO23_00_INT           0x00 /* Programmed I/O Int Status */
  418 #define GPIO23_00_EDGE          0x04 /* Programmed I/O Edge Status */
  419 #define GPIO23_00_RENA          0x08 /* Programmed I/O Int on Rising */
  420 #define GPIO23_00_FENA          0x0C /* Programmed I/O Int on Falling */
  421 #define GPIO23_00_DATA          0x20 /* Programmed I/O Data */
  422 #define GPIO23_00_DIR           0x24 /* Programmed I/O Direction */
  423 #define GPIO23_00_POL           0x28 /* Programmed I/O Pin Polarity */
  424 #define GPIO23_00_SET           0x2C /* Set PIO Data Bit */
  425 #define GPIO23_00_RESET         0x30 /* Clear PIO Data bit */
  426 #define GPIO23_00_TOG           0x34 /* Toggle PIO Data bit */
  427 
  428 #define GPIO39_24_INT           0x38
  429 #define GPIO39_24_EDGE          0x3c
  430 #define GPIO39_24_RENA          0x40
  431 #define GPIO39_24_FENA          0x44
  432 #define GPIO39_24_DATA          0x48
  433 #define GPIO39_24_DIR           0x4c
  434 #define GPIO39_24_POL           0x50
  435 #define GPIO39_24_SET           0x54
  436 #define GPIO39_24_RESET         0x58
  437 #define GPIO39_24_TOG           0x5c
  438 
  439 #define GPIO51_40_INT           0x60
  440 #define GPIO51_40_EDGE          0x64
  441 #define GPIO51_40_RENA          0x68
  442 #define GPIO51_40_FENA          0x6C
  443 #define GPIO51_40_DATA          0x70
  444 #define GPIO51_40_DIR           0x74
  445 #define GPIO51_40_POL           0x78
  446 #define GPIO51_40_SET           0x7C
  447 #define GPIO51_40_RESET         0x80
  448 #define GPIO51_40_TOG           0x84
  449 
  450 
  451 
  452 
  453 #define GDMA_CHANNEL_REQ0       0
  454 #define GDMA_CHANNEL_REQ1       1 /* (NAND-flash) */
  455 #define GDMA_CHANNEL_REQ2       2 /* (I2S) */
  456 #define GDMA_CHANNEL_REQ3       3 /* (PCM0-RX) */
  457 #define GDMA_CHANNEL_REQ4       4 /* (PCM1-RX) */
  458 #define GDMA_CHANNEL_REQ5       5 /* (PCM0-TX) */
  459 #define GDMA_CHANNEL_REQ6       6 /* (PCM1-TX) */
  460 #define GDMA_CHANNEL_REQ7       7
  461 #define GDMA_CHANNEL_MEM        8
  462 
  463 /* Generic DMA Controller */
  464 /* GDMA Channel n Source Address */
  465 #define GDMASA(n)               (0x00 + 0x10*n)
  466  /* GDMA Channel n Destination Address */
  467 #define GDMADA(n)               (0x04 + 0x10*n)
  468  /* GDMA Channel n Control Register 0 */
  469 #define GDMACT0(n)              (0x08 + 0x10*n)
  470 
  471 #define GDMACT0_TR_COUNT_MASK           0x0fff0000
  472 #define GDMACT0_TR_COUNT_SHIFT          16
  473 #define GDMACT0_SRC_CHAN_SHIFT          12
  474 #define GDMACT0_SRC_CHAN_MASK           0x0000f000
  475 #define GDMACT0_DST_CHAN_SHIFT          8
  476 #define GDMACT0_DST_CHAN_MASK           0x00000f00
  477 #define GDMACT0_SRC_BURST_MODE          (1<<7)
  478 #define GDMACT0_DST_BURST_MODE          (1<<6)
  479 #define GDMACT0_BURST_SIZE_SHIFT        3
  480 #define GDMACT0_BURST_SIZE_MASK         0x00000038
  481 #define GDMACT0_BURST_SIZE_1            0
  482 #define GDMACT0_BURST_SIZE_2            1
  483 #define GDMACT0_BURST_SIZE_4            2
  484 #define GDMACT0_BURST_SIZE_8            3
  485 #define GDMACT0_BURST_SIZE_16           4
  486 
  487 #define GDMACT0_DONE_INT_EN             (1<<2)
  488 #define GDMACT0_CHAN_EN                 (1<<1)
  489 /*
  490  * In software mode, the data transfer will start when the Channel Enable bit
  491  * is set.
  492  * In hardware mode, the data transfer will start when the DMA Request is
  493  * asserted.
  494 */
  495 #define GDMACT0_SWMODE                  (1<<0)
  496 
  497 /* SPI controller interface */
  498  
  499 #define RT305X_SPISTAT          0x00
  500 /* SPIBUSY is alias for SPIBUSY, because SPISTAT have only BUSY bit*/
  501 #define RT305X_SPIBUSY          RT305X_SPISTAT
  502  
  503 #define RT305X_SPICFG           0x10
  504 #define         MSBFIRST                (1<<8)
  505 #define         SPICLKPOL               (1<<6)
  506 #define         CAPT_ON_CLK_FALL        (1<<5)
  507 #define         TX_ON_CLK_FALL          (1<<4)
  508 #define         HIZSPI                  (1<<3) /* Set SPI pins to Tri-state */
  509 #define         SPI_CLK_SHIFT           0       /* SPI clock divide control */
  510 #define         SPI_CLK_MASK            0x00000007
  511 #define         SPI_CLK_DIV2            0
  512 #define         SPI_CLK_DIV4            1
  513 #define         SPI_CLK_DIV8            2
  514 #define         SPI_CLK_DIV16           3
  515 #define         SPI_CLK_DIV32           4
  516 #define         SPI_CLK_DIV64           5
  517 #define         SPI_CLK_DIV128          6
  518 #define         SPI_CLK_DISABLED        7
  519  
  520 #define RT305X_SPICTL           0x14
  521 #define         HIZSMOSI                (1<<3)
  522 #define         START_WRITE             (1<<2)
  523 #define         START_READ              (1<<1)
  524 #define         CS_HIGH                 (1<<0)
  525 
  526 #define RT305X_SPIDATA          0x20
  527 #define         SPIDATA_MASK            0x000000ff
  528 
  529 #define RT305X_SPI_WRITE        1
  530 #define RT305X_SPI_READ         0
  531 
  532 #endif /* _RT305XREG_H_ */

Cache object: 6da74f7674a4394532ac4ef3f3ad374c


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.