Home | History | Annotate | Line # | Download | only in ralink
ralink_reg.h revision 1.3.2.1
      1  1.3.2.1  yamt /*	$NetBSD: ralink_reg.h,v 1.3.2.1 2012/04/17 00:06:40 yamt Exp $	*/
      2      1.2  matt /*-
      3      1.2  matt  * Copyright (c) 2011 CradlePoint Technology, Inc.
      4      1.2  matt  * All rights reserved.
      5      1.2  matt  *
      6      1.2  matt  *
      7      1.2  matt  * Redistribution and use in source and binary forms, with or without
      8      1.2  matt  * modification, are permitted provided that the following conditions
      9      1.2  matt  * are met:
     10      1.2  matt  * 1. Redistributions of source code must retain the above copyright
     11      1.2  matt  *    notice, this list of conditions and the following disclaimer.
     12      1.2  matt  * 2. Redistributions in binary form must reproduce the above copyright
     13      1.2  matt  *    notice, this list of conditions and the following disclaimer in the
     14      1.2  matt  *    documentation and/or other materials provided with the distribution.
     15      1.2  matt  *
     16      1.2  matt  * THIS SOFTWARE IS PROVIDED BY CRADLEPOINT TECHNOLOGY, INC. AND CONTRIBUTORS
     17      1.2  matt  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     18      1.2  matt  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     19      1.2  matt  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
     20      1.2  matt  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     21      1.2  matt  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     22      1.2  matt  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     23      1.2  matt  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     24      1.2  matt  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     25      1.2  matt  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     26      1.2  matt  * POSSIBILITY OF SUCH DAMAGE.
     27      1.2  matt  */
     28      1.2  matt 
     29      1.2  matt /*
     30      1.2  matt  * This file contains the configuration parameters for the RT3052 board.
     31      1.2  matt  */
     32      1.2  matt 
     33      1.2  matt #ifndef _RALINK_REG_H_
     34      1.2  matt #define _RALINK_REG_H_
     35      1.2  matt 
     36      1.2  matt #include <mips/cpuregs.h>
     37      1.2  matt 
     38      1.2  matt #if defined(RT3050)
     39      1.2  matt #define RA_CLOCK_RATE          320000000
     40      1.2  matt #define RA_BUS_FREQ            (RA_CLOCK_RATE / 3)
     41      1.2  matt #define RA_UART_FREQ           RA_BUS_FREQ
     42      1.2  matt #elif defined(RT3052)
     43      1.2  matt #define RA_CLOCK_RATE          384000000
     44      1.2  matt #define RA_BUS_FREQ            (RA_CLOCK_RATE / 3)
     45      1.2  matt #define RA_UART_FREQ           RA_BUS_FREQ
     46      1.2  matt #elif defined(RT3883)
     47      1.2  matt #if 0
     48      1.2  matt #define RA_CLOCK_RATE          480000000
     49      1.2  matt #else
     50      1.2  matt #define RA_CLOCK_RATE          500000000
     51      1.2  matt #endif
     52      1.2  matt #define RA_BUS_FREQ            166000000 /* DDR speed */
     53      1.2  matt #define RA_UART_FREQ           40000000
     54      1.2  matt #else
     55      1.2  matt /* Ralink dev board */
     56      1.2  matt #define RA_CLOCK_RATE          384000000
     57      1.2  matt #define RA_BUS_FREQ            (RA_CLOCK_RATE / 3)
     58      1.2  matt #define RA_UART_FREQ           RA_BUS_FREQ
     59      1.2  matt #endif
     60      1.2  matt 
     61      1.2  matt #define RA_BAUDRATE            CONSPEED
     62      1.2  matt #define RA_SERIAL_CLKDIV       16
     63      1.2  matt 
     64      1.2  matt #define RA_SRAM_BASE           0x00000000
     65      1.2  matt #define RA_SRAM_END            0x0FFFFFFF
     66      1.2  matt #define RA_SYSCTL_BASE         0x10000000
     67      1.2  matt #define RA_TIMER_BASE          0x10000100
     68      1.2  matt #define RA_INTCTL_BASE         0x10000200
     69      1.2  matt #define RA_MEMCTL_BASE         0x10000300
     70      1.2  matt #if defined(RT3052) || defined(RT3050)
     71      1.2  matt #define RA_PCM_BASE            0x10000400
     72      1.2  matt #endif
     73      1.2  matt #define RA_UART_BASE           0x10000500
     74      1.2  matt #define RA_PIO_BASE            0x10000600
     75      1.2  matt #if defined(RT3052) || defined(RT3050)
     76      1.2  matt #define RA_GDMA_BASE           0x10000700
     77      1.2  matt #elif defined(RT3883)
     78      1.2  matt #define RA_FLASHCTL_BASE       0x10000700
     79      1.2  matt #endif
     80      1.2  matt #define RA_NANDCTL_BASE        0x10000800
     81      1.2  matt #define RA_I2C_BASE            0x10000900
     82      1.2  matt #define RA_I2S_BASE            0x10000A00
     83      1.2  matt #define RA_SPI_BASE            0x10000B00
     84      1.2  matt #define RA_UART_LITE_BASE      0x10000C00
     85      1.2  matt #if defined(RT3883)
     86      1.2  matt #define RA_PCM_BASE            0x10002000
     87      1.2  matt #define RA_GDMA_BASE           0x10002800
     88      1.2  matt #define RA_CODEC1_BASE         0x10003000
     89      1.2  matt #define RA_CODEC2_BASE         0x10003800
     90      1.2  matt #endif
     91      1.2  matt #define RA_FRAME_ENGINE_BASE   0x10100000
     92      1.2  matt #define RA_ETH_SW_BASE         0x10110000
     93      1.2  matt #define RA_ROM_BASE            0x10118000
     94      1.2  matt #if defined(RT3883)
     95      1.2  matt #define RA_USB_DEVICE_BASE     0x10120000
     96      1.2  matt #define RA_PCI_BASE            0x10140000
     97      1.2  matt #endif
     98      1.2  matt #define RA_11N_MAC_BASE        0x10180000
     99      1.2  matt #define RA_USB_OTG_BASE        0x101C0000
    100      1.2  matt #if defined(RT3883)
    101      1.2  matt #define RA_USB_HOST_BASE       0x101C0000
    102      1.2  matt #endif
    103      1.2  matt #if defined(RT3052) || defined(RT3050)
    104      1.2  matt #define RA_FLASH_BASE          0x1F000000
    105      1.2  matt #define RA_FLASH_END           0x1F7FFFFF
    106      1.2  matt #elif defined(RT3883)
    107      1.2  matt #define RA_FLASH_BASE          0x1C000000
    108      1.2  matt #define RA_FLASH_END           0x1DFFFFFF
    109      1.2  matt #endif
    110      1.2  matt 
    111      1.2  matt #define RA_IOREG_VADDR(base, offset)	\
    112      1.2  matt 	(volatile uint32_t *)MIPS_PHYS_TO_KSEG1((base) + (offset))
    113      1.2  matt 
    114      1.2  matt #define FLD_GET(val,pos,mask)      (((val) >> (pos)) & (mask))
    115      1.2  matt #define FLD_SET(val,pos,mask)      (((val) & (mask)) << (pos))
    116      1.2  matt 
    117      1.2  matt /*
    118      1.2  matt  * System Control Registers
    119      1.2  matt  */
    120      1.2  matt #define RA_SYSCTL_ID0          0x00
    121      1.2  matt #define RA_SYSCTL_ID1          0x04
    122      1.2  matt #define RA_SYSCTL_CFG0         0x10
    123      1.2  matt #define RA_SYSCTL_CFG1         0x14
    124      1.2  matt #define RA_SYSCTL_CLKCFG0      0x2C
    125      1.2  matt #define RA_SYSCTL_CLKCFG1      0x30
    126      1.2  matt #define RA_SYSCTL_RST          0x34
    127      1.2  matt #define RA_SYSCTL_RSTSTAT      0x38
    128      1.2  matt #define RA_SYSCTL_GPIOMODE     0x60
    129      1.2  matt 
    130  1.3.2.1  yamt #if defined(RT3050) || defined(RT3052)
    131  1.3.2.1  yamt #define	SYSCTL_CFG0_INIC_EE_SDRAM 	__BIT(29)
    132  1.3.2.1  yamt #define	SYSCTL_CFG0_INIC_8MB_SDRAM 	__BIT(28)
    133  1.3.2.1  yamt #define	SYSCTL_CFG0_GE0_MODE		__BITS(24,25)
    134  1.3.2.1  yamt #define	SYSCTL_CFG0_BYPASS_PLL		__BIT(21)
    135  1.3.2.1  yamt #define	SYSCTL_CFG0_BE			__BIT(20)
    136  1.3.2.1  yamt #define	SYSCTL_CFG0_CPU_CLK_SEL 	__BIT(18)
    137  1.3.2.1  yamt #define	SYSCTL_CFG0_BOOT_FROM		__BITS(16,17)
    138  1.3.2.1  yamt #define	SYSCTL_CFG0_TEST_CODE		__BITS(8,15)
    139  1.3.2.1  yamt #define	SYSCTL_CFG0_SRAM_CS_MODE	__BITS(2,3)
    140  1.3.2.1  yamt #define	SYSCTL_CFG0_SDRAM_CLK_DRV	__BIT(0)
    141  1.3.2.1  yamt #else
    142      1.3  matt #define	SYSCTL_CFG0_BE		__BIT(19)
    143      1.3  matt #define SYSCTL_CFG0_DRAM_SIZE	__BITS(12,14)
    144      1.3  matt #define	SYSCTL_CFG0_DRAM_2MB	0
    145      1.3  matt #define	SYSCTL_CFG0_DRAM_8MB	1
    146      1.3  matt #define	SYSCTL_CFG0_DRAM_16MB	2
    147      1.3  matt #define	SYSCTL_CFG0_DRAM_32MB	3
    148      1.3  matt #define	SYSCTL_CFG0_DRAM_64MB	4
    149      1.3  matt #define	SYSCTL_CFG0_DRAM_128MB	5
    150      1.3  matt #define	SYSCTL_CFG0_DRAM_256MB	6
    151  1.3.2.1  yamt #endif
    152      1.3  matt 
    153      1.2  matt #if defined(RT3883)
    154      1.2  matt /* 3883 doesn't have memo regs, use teststat instead */
    155      1.2  matt #define RA_SYSCTL_MEMO0        0x18
    156      1.2  matt #define RA_SYSCTL_MEMO1        0x1C
    157      1.2  matt #else
    158      1.2  matt #define RA_SYSCTL_MEMO0        0x68
    159      1.2  matt #define RA_SYSCTL_MEMO1        0x6C
    160      1.2  matt #endif
    161      1.2  matt 
    162      1.2  matt #define  RST_SW        (1 << 23)
    163      1.2  matt #define  RST_OTG       (1 << 22)
    164      1.2  matt #define  RST_FE        (1 << 21)
    165      1.2  matt #define  RST_WLAN      (1 << 20)
    166      1.2  matt #define  RST_UARTL     (1 << 19)
    167      1.2  matt #define  RST_SPI       (1 << 18)
    168      1.2  matt #define  RST_I2S       (1 << 17)
    169      1.2  matt #define  RST_I2C       (1 << 16)
    170      1.2  matt #define  RST_NAND      (1 << 15)
    171      1.2  matt #define  RST_DMA       (1 << 14)
    172      1.2  matt #define  RST_PIO       (1 << 13)
    173      1.2  matt #define  RST_UART      (1 << 12)
    174      1.2  matt #define  RST_PCM       (1 << 11)
    175      1.2  matt #define  RST_MC        (1 << 10)
    176      1.2  matt #define  RST_INTC      (1 << 9)
    177      1.2  matt #define  RST_TIMER     (1 << 8)
    178      1.2  matt #define  RST_SYS       (1 << 0)
    179      1.2  matt #define  GPIOMODE_RGMII  (1 << 9)
    180      1.2  matt #define  GPIOMODE_SDRAM  (1 << 8)
    181      1.2  matt #define  GPIOMODE_MDIO   (1 << 7)
    182      1.2  matt #define  GPIOMODE_JTAG   (1 << 6)
    183      1.2  matt #define  GPIOMODE_UARTL  (1 << 5)
    184      1.2  matt #define  GPIOMODE_UARTF2 (1 << 4)
    185      1.2  matt #define  GPIOMODE_UARTF1 (1 << 3)
    186      1.2  matt #define  GPIOMODE_UARTF0 (1 << 2)
    187      1.2  matt #define  GPIOMODE_UARTF_0_2	\
    188      1.2  matt 			 (GPIOMODE_UARTF0|GPIOMODE_UARTF1|GPIOMODE_UARTF2)
    189      1.2  matt #define  GPIOMODE_SPI    (1 << 1)
    190      1.2  matt #define  GPIOMODE_I2C    (1 << 0)
    191      1.2  matt 
    192      1.2  matt /*
    193      1.2  matt  * Timer Registers
    194      1.2  matt  */
    195      1.2  matt #define RA_TIMER_STAT          0x00
    196      1.2  matt #define RA_TIMER_0_LOAD        0x10
    197      1.2  matt #define RA_TIMER_0_VALUE       0x14
    198      1.2  matt #define RA_TIMER_0_CNTRL       0x18
    199      1.2  matt #define RA_TIMER_1_LOAD        0x20
    200      1.2  matt #define RA_TIMER_1_VALUE       0x24
    201      1.2  matt #define RA_TIMER_1_CNTRL       0x28
    202      1.2  matt 
    203      1.2  matt #define  TIMER_1_RESET         (1 << 5)
    204      1.2  matt #define  TIMER_0_RESET         (1 << 4)
    205      1.2  matt #define  TIMER_1_INT_STATUS    (1 << 1)
    206      1.2  matt #define  TIMER_0_INT_STATUS    (1 << 0)
    207      1.2  matt #define  TIMER_TEST_EN         (1 << 15)
    208      1.2  matt #define  TIMER_EN              (1 << 7)
    209      1.2  matt #define  TIMER_MODE(x)         (((x) & 0x3) << 4)
    210      1.2  matt #define   TIMER_MODE_FREE       0
    211      1.2  matt #define   TIMER_MODE_PERIODIC   1
    212      1.2  matt #define   TIMER_MODE_TIMEOUT    2
    213      1.2  matt #define   TIMER_MODE_WDOG       3	/* only valid for TIMER_1 */
    214      1.2  matt #define  TIMER_PRESCALE(x)     (((x) & 0xf) << 0)
    215      1.2  matt #define   TIMER_PRESCALE_DIV_1     0
    216      1.2  matt #define   TIMER_PRESCALE_DIV_4     1
    217      1.2  matt #define   TIMER_PRESCALE_DIV_8     2
    218      1.2  matt #define   TIMER_PRESCALE_DIV_16    3
    219      1.2  matt #define   TIMER_PRESCALE_DIV_32    4
    220      1.2  matt #define   TIMER_PRESCALE_DIV_64    5
    221      1.2  matt #define   TIMER_PRESCALE_DIV_128   6
    222      1.2  matt #define   TIMER_PRESCALE_DIV_256   7
    223      1.2  matt #define   TIMER_PRESCALE_DIV_512   8
    224      1.2  matt #define   TIMER_PRESCALE_DIV_1024  9
    225      1.2  matt #define   TIMER_PRESCALE_DIV_2048  10
    226      1.2  matt #define   TIMER_PRESCALE_DIV_4096  11
    227      1.2  matt #define   TIMER_PRESCALE_DIV_8192  12
    228      1.2  matt #define   TIMER_PRESCALE_DIV_16384 13
    229      1.2  matt #define   TIMER_PRESCALE_DIV_32768 14
    230      1.2  matt #define   TIMER_PRESCALE_DIV_65536 15
    231      1.2  matt 
    232      1.2  matt /*
    233      1.2  matt  * Interrupt Controller Registers
    234      1.2  matt  */
    235      1.2  matt #define RA_INTCTL_IRQ0STAT     0x00
    236      1.2  matt #define RA_INTCTL_IRQ1STAT     0x04
    237      1.2  matt #define RA_INTCTL_TYPE         0x20
    238      1.2  matt #define RA_INTCTL_RAW          0x30
    239      1.2  matt #define RA_INTCTL_ENABLE       0x34
    240      1.2  matt #define RA_INTCTL_DISABLE      0x38
    241      1.2  matt 
    242      1.2  matt 
    243      1.2  matt #define INT_GLOBAL    (1 << 31)
    244      1.2  matt #define INT_USB       (1 << 18)
    245      1.2  matt #define INT_ETHSW     (1 << 17)
    246      1.2  matt #define INT_UARTL     (1 << 12)
    247      1.2  matt #define INT_I2S       (1 << 10)
    248      1.2  matt #define INT_PERF      (1 << 9)
    249      1.2  matt #define INT_NAND      (1 << 8)
    250      1.2  matt #define INT_DMA       (1 << 7)
    251      1.2  matt #define INT_PIO       (1 << 6)
    252      1.2  matt #define INT_UARTF     (1 << 5)
    253      1.2  matt #define INT_PCM       (1 << 4)
    254      1.2  matt #define INT_ILLACC    (1 << 3)
    255      1.2  matt #define INT_WDOG      (1 << 2)
    256      1.2  matt #define INT_TIMER0    (1 << 1)
    257      1.2  matt #define INT_SYSCTL    (1 << 0)
    258      1.2  matt 
    259      1.2  matt /*
    260      1.2  matt  * Ralink Linear CPU Interrupt Mapping For Lists
    261      1.2  matt  */
    262      1.2  matt #define RA_IRQ_LOW        0
    263      1.2  matt #define RA_IRQ_HIGH       1
    264      1.2  matt #define RA_IRQ_PCI        2
    265      1.2  matt #define RA_IRQ_FENGINE    3
    266      1.2  matt #define RA_IRQ_WLAN       4
    267      1.2  matt #define RA_IRQ_TIMER      5
    268      1.2  matt #define RA_IRQ_SYSCTL     6
    269      1.2  matt #define RA_IRQ_TIMER0     7
    270      1.2  matt #define RA_IRQ_WDOG       8
    271      1.2  matt #define RA_IRQ_ILLACC     9
    272      1.2  matt #define RA_IRQ_PCM        10
    273      1.2  matt #define RA_IRQ_UARTF      11
    274      1.2  matt #define RA_IRQ_PIO        12
    275      1.2  matt #define RA_IRQ_DMA        13
    276      1.2  matt #define RA_IRQ_NAND       14
    277      1.2  matt #define RA_IRQ_PERF       15
    278      1.2  matt #define RA_IRQ_I2S        16
    279      1.2  matt #define RA_IRQ_UARTL      17
    280      1.2  matt #define RA_IRQ_ETHSW      18
    281      1.2  matt #define RA_IRQ_USB        19
    282      1.2  matt #define RA_IRQ_MAX        20
    283      1.2  matt 
    284      1.2  matt /*
    285      1.2  matt  * General Purpose I/O
    286      1.2  matt  */
    287      1.2  matt #define RA_PIO_00_23_INT         0x00
    288      1.2  matt #define RA_PIO_00_23_EDGE_INT    0x04
    289      1.2  matt #define RA_PIO_00_23_INT_RISE_EN 0x08
    290      1.2  matt #define RA_PIO_00_23_INT_FALL_EN 0x0C
    291      1.2  matt #define RA_PIO_00_23_DATA        0x20
    292      1.2  matt #define RA_PIO_00_23_DIR         0x24
    293      1.2  matt #define RA_PIO_00_23_POLARITY    0x28
    294      1.2  matt #define RA_PIO_00_23_SET_BIT     0x2C
    295      1.2  matt #define RA_PIO_00_23_CLR_BIT     0x30
    296      1.2  matt #define RA_PIO_00_23_TGL_BIT     0x34
    297      1.2  matt #define RA_PIO_24_39_INT         0x38
    298      1.2  matt #define RA_PIO_24_39_EDGE_INT    0x3C
    299      1.2  matt #define RA_PIO_24_39_INT_RISE_EN 0x40
    300      1.2  matt #define RA_PIO_24_39_INT_FALL_EN 0x44
    301      1.2  matt #define RA_PIO_24_39_DATA        0x48
    302      1.2  matt #define RA_PIO_24_39_DIR         0x4C
    303      1.2  matt #define RA_PIO_24_39_POLARITY    0x50
    304      1.2  matt #define RA_PIO_24_39_SET_BIT     0x54
    305      1.2  matt #define RA_PIO_24_39_CLR_BIT     0x58
    306      1.2  matt #define RA_PIO_24_39_TGL_BIT     0x5C
    307      1.2  matt #define RA_PIO_40_51_INT         0x60
    308      1.2  matt #define RA_PIO_40_51_EDGE_INT    0x64
    309      1.2  matt #define RA_PIO_40_51_INT_RISE_EN 0x68
    310      1.2  matt #define RA_PIO_40_51_INT_FALL_EN 0x6C
    311      1.2  matt #define RA_PIO_40_51_DATA        0x70
    312      1.2  matt #define RA_PIO_40_51_DIR         0x74
    313      1.2  matt #define RA_PIO_40_51_POLARITY    0x78
    314      1.2  matt #define RA_PIO_40_51_SET_BIT     0x7C
    315      1.2  matt #define RA_PIO_40_51_CLR_BIT     0x80
    316      1.2  matt #define RA_PIO_40_51_TGL_BIT     0x84
    317      1.2  matt #define RA_PIO_72_95_INT         0x88
    318      1.2  matt #define RA_PIO_72_95_EDGE_INT    0x8c
    319      1.2  matt #define RA_PIO_72_95_INT_RISE_EN 0x90
    320      1.2  matt #define RA_PIO_72_95_INT_FALL_EN 0x94
    321      1.2  matt #define RA_PIO_72_95_DATA        0x98
    322      1.2  matt #define RA_PIO_72_95_DIR         0x9c
    323      1.2  matt #define RA_PIO_72_95_POLARITY    0xa0
    324      1.2  matt #define RA_PIO_72_95_SET_BIT     0xa4
    325      1.2  matt #define RA_PIO_72_95_CLR_BIT     0xa8
    326      1.2  matt #define RA_PIO_72_95_TGL_BIT     0xac
    327      1.2  matt 
    328      1.2  matt 
    329      1.2  matt /*
    330      1.2  matt  * UART registers
    331      1.2  matt  */
    332      1.2  matt 
    333      1.2  matt #define RA_UART_RBR    0x00
    334      1.2  matt #define RA_UART_TBR    0x04
    335      1.2  matt #define RA_UART_IER    0x08
    336      1.2  matt #define RA_UART_IIR    0x0C
    337      1.2  matt #define RA_UART_FCR    0x10
    338      1.2  matt #define RA_UART_LCR    0x14
    339      1.2  matt #define RA_UART_MCR    0x18
    340      1.2  matt #define RA_UART_LSR    0x1C
    341      1.2  matt #define RA_UART_MSR    0x20
    342      1.2  matt #define RA_UART_DLL    0x28
    343      1.2  matt 
    344      1.2  matt 
    345      1.2  matt #define UART_IER_ELSI      (1 << 2)
    346      1.2  matt 		/* Receiver Line Status Interrupt Enable */
    347      1.2  matt #define UART_IER_ETBEI     (1 << 1)
    348      1.2  matt 		/* Transmit Buffer Empty Interrupt Enable */
    349      1.2  matt #define UART_IER_ERBFI     (1 << 0)
    350      1.2  matt 		/* Data Ready or Character Time-Out Interrupt Enable */
    351      1.2  matt 
    352      1.2  matt #define UART_IIR_FIFOES1   (1 << 7)    /* FIFO Mode Enable Status */
    353      1.2  matt #define UART_IIR_FIFOES0   (1 << 6)    /* FIFO Mode Enable Status */
    354      1.2  matt #define UART_IIR_IID3      (1 << 3)    /* Interrupt Source Encoded */
    355      1.2  matt #define UART_IIR_IID2      (1 << 2)    /* Interrupt Source Encoded */
    356      1.2  matt #define UART_IIR_IID1      (1 << 1)    /* Interrupt Source Encoded */
    357      1.2  matt #define UART_IIR_IP        (1 << 0)    /* Interrupt Pending (active low) */
    358      1.2  matt 
    359      1.2  matt #define UART_FCR_RXTRIG1   (1 << 7)    /* Receiver Interrupt Trigger Level */
    360      1.2  matt #define UART_FCR_RXTRIG0   (1 << 6)    /* Receiver Interrupt Trigger Level */
    361      1.2  matt #define UART_FCR_TXTRIG1   (1 << 5)    /* Transmitter Interrupt Trigger Level */
    362      1.2  matt #define UART_FCR_TXTRIG0   (1 << 4)    /* Transmitter Interrupt Trigger Level */
    363      1.2  matt #define UART_FCR_DMAMODE   (1 << 3)    /* Enable DMA transfers */
    364      1.2  matt #define UART_FCR_TXRST     (1 << 2)    /* Reset Transmitter FIFO */
    365      1.2  matt #define UART_FCR_RXRST     (1 << 1)    /* Reset Receiver FIFO */
    366      1.2  matt #define UART_FCR_FIFOE     (1 << 0)    /* Transmit and Receive FIFO Enable */
    367      1.2  matt 
    368      1.2  matt #define UART_LCR_DLAB      (1 << 7)    /* Divisor Latch Access Bit */
    369      1.2  matt #define UART_LCR_SB        (1 << 6)    /* Set Break */
    370      1.2  matt #define UART_LCR_STKYP     (1 << 5)    /* Sticky Parity */
    371      1.2  matt #define UART_LCR_EPS       (1 << 4)    /* Even Parity Select */
    372      1.2  matt #define UART_LCR_PEN       (1 << 3)    /* Parity Enable */
    373      1.2  matt #define UART_LCR_STB       (1 << 2)    /* Stop Bit */
    374      1.2  matt #define UART_LCR_WLS1      (1 << 1)    /* Word Length Select */
    375      1.2  matt #define UART_LCR_WLS0      (1 << 0)    /* Word Length Select */
    376      1.2  matt 
    377      1.2  matt #define UART_MCR_LOOP      (1 << 4)    /* Loop-back Mode Enable */
    378      1.2  matt 
    379      1.2  matt #define UART_MSR_DCD       (1 << 7)    /* Data Carrier Detect */
    380      1.2  matt #define UART_MSR_RI        (1 << 6)    /* Ring Indicator */
    381      1.2  matt #define UART_MSR_DSR       (1 << 5)    /* Data Set Ready */
    382      1.2  matt #define UART_MSR_CTS       (1 << 4)    /* Clear To Send */
    383      1.2  matt #define UART_MSR_DDCD      (1 << 3)    /* Delta Data Carrier Detect */
    384      1.2  matt #define UART_MSR_TERI      (1 << 2)    /* Trailing Edge Ring Indicator */
    385      1.2  matt #define UART_MSR_DDSR      (1 << 1)    /* Delta Data Set Ready */
    386      1.2  matt #define UART_MSR_DCTS      (1 << 0)    /* Delta Clear To Send */
    387      1.2  matt 
    388      1.2  matt #define UART_LSR_FIFOE     (1 << 7)    /* FIFO Error Status */
    389      1.2  matt #define UART_LSR_TEMT      (1 << 6)    /* Transmitter Empty */
    390      1.2  matt #define UART_LSR_TDRQ      (1 << 5)    /* Transmit Data Request */
    391      1.2  matt #define UART_LSR_BI        (1 << 4)    /* Break Interrupt */
    392      1.2  matt #define UART_LSR_FE        (1 << 3)    /* Framing Error */
    393      1.2  matt #define UART_LSR_PE        (1 << 2)    /* Parity Error */
    394      1.2  matt #define UART_LSR_OE        (1 << 1)    /* Overrun Error */
    395      1.2  matt #define UART_LSR_DR        (1 << 0)    /* Data Ready */
    396      1.2  matt 
    397      1.2  matt /*
    398      1.2  matt  * I2C registers
    399      1.2  matt  */
    400      1.2  matt #define RA_I2C_CONFIG          0x00
    401      1.2  matt #define RA_I2C_CLKDIV          0x04
    402      1.2  matt #define RA_I2C_DEVADDR         0x08
    403      1.2  matt #define RA_I2C_ADDR            0x0C
    404      1.2  matt #define RA_I2C_DATAOUT         0x10
    405      1.2  matt #define RA_I2C_DATAIN          0x14
    406      1.2  matt #define RA_I2C_STATUS          0x18
    407      1.2  matt #define RA_I2C_STARTXFR        0x1C
    408      1.2  matt #define RA_I2C_BYTECNT         0x20
    409      1.2  matt 
    410      1.2  matt #define  I2C_CONFIG_ADDRLEN(x)     (((x) & 0x7) << 5)
    411      1.2  matt #define   I2C_CONFIG_ADDRLEN_7     6
    412      1.2  matt #define   I2C_CONFIG_ADDRLEN_8     7
    413      1.2  matt #define  I2C_CONFIG_DEVADLEN(x)    (((x) & 0x7) << 2)
    414      1.2  matt #define   I2C_CONFIG_DEVADLEN_6    5
    415      1.2  matt #define   I2C_CONFIG_DEVADLEN_7    6
    416      1.2  matt #define  I2C_CONFIG_ADDRDIS        (1 << 1)
    417      1.2  matt #define  I2C_CONFIG_DEVDIS         (1 << 0)
    418      1.2  matt #define  I2C_STATUS_STARTERR       (1 << 4)
    419      1.2  matt #define  I2C_STATUS_ACKERR         (1 << 3)
    420      1.2  matt #define  I2C_STATUS_DATARDY        (1 << 2)
    421      1.2  matt #define  I2C_STATUS_SDOEMPTY       (1 << 1)
    422      1.2  matt #define  I2C_STATUS_BUSY           (1 << 0)
    423      1.2  matt 
    424      1.2  matt /*
    425      1.2  matt  * SPI registers
    426      1.2  matt  */
    427      1.2  matt #define RA_SPI_STATUS          0x00
    428      1.2  matt #define RA_SPI_CONFIG          0x10
    429      1.2  matt #define RA_SPI_CONTROL         0x14
    430      1.2  matt #define RA_SPI_DATA            0x20
    431      1.2  matt 
    432      1.2  matt #define  SPI_STATUS_BUSY            (1 << 0)
    433      1.2  matt #define  SPI_CONFIG_MSBFIRST        (1 << 8)
    434      1.2  matt #define  SPI_CONFIG_CLK             (1 << 6)
    435      1.2  matt #define  SPI_CONFIG_RXCLKEDGE_FALL  (1 << 5)
    436      1.2  matt #define  SPI_CONFIG_TXCLKEDGE_FALL  (1 << 4)
    437      1.2  matt #define  SPI_CONFIG_TRISTATE        (1 << 3)
    438      1.2  matt #define  SPI_CONFIG_RATE(x)         ((x) & 0x7)
    439      1.2  matt #define   SPI_CONFIG_RATE_DIV_2     0
    440      1.2  matt #define   SPI_CONFIG_RATE_DIV_4     1
    441      1.2  matt #define   SPI_CONFIG_RATE_DIV_8     2
    442      1.2  matt #define   SPI_CONFIG_RATE_DIV_16    3
    443      1.2  matt #define   SPI_CONFIG_RATE_DIV_32    4
    444      1.2  matt #define   SPI_CONFIG_RATE_DIV_64    5
    445      1.2  matt #define   SPI_CONFIG_RATE_DIV_128   6
    446      1.2  matt #define   SPI_CONFIG_RATE_DIV_NONE  7
    447      1.2  matt #define  SPI_CONTROL_TRISTATE       (1 << 3)
    448      1.2  matt #define  SPI_CONTROL_STARTWR        (1 << 2)
    449      1.2  matt #define  SPI_CONTROL_STARTRD        (1 << 1)
    450      1.2  matt #define  SPI_CONTROL_ENABLE_LOW     (0 << 0)
    451      1.2  matt #define  SPI_CONTROL_ENABLE_HIGH    (1 << 0)
    452      1.2  matt #define  SPI_DATA_VAL(x)            ((x) & 0xff)
    453      1.2  matt 
    454      1.2  matt /*
    455      1.2  matt  * Frame Engine registers
    456      1.2  matt  */
    457      1.2  matt #define RA_FE_MDIO_ACCESS      0x000
    458      1.2  matt #define RA_FE_MDIO_CFG1        0x004
    459      1.2  matt #define RA_FE_GLOBAL_CFG       0x008
    460      1.2  matt #define RA_FE_GLOBAL_RESET     0x00C
    461      1.2  matt #define RA_FE_INT_STATUS       0x010
    462      1.2  matt #define RA_FE_INT_ENABLE       0x014
    463      1.2  matt #define RA_FE_MDIO_CFG2        0x018
    464      1.2  matt #define RA_FE_TIME_STAMP       0x01C
    465      1.2  matt #define RA_FE_GDMA1_FWD_CFG    0x020
    466      1.2  matt #define RA_FE_GDMA1_SCHED_CFG  0x024
    467      1.2  matt #define RA_FE_GDMA1_SHAPE_CFG  0x028
    468      1.2  matt #define RA_FE_GDMA1_MAC_LSB    0x02C
    469      1.2  matt #define RA_FE_GDMA1_MAC_MSB    0x030
    470      1.2  matt #define RA_FE_PSE_FQ_CFG       0x040
    471      1.2  matt #define RA_FE_CDMA_FC_CFG      0x044
    472      1.2  matt #define RA_FE_GDMA1_FC_CFG     0x048
    473      1.2  matt #define RA_FE_GDMA2_FC_CFG     0x04C
    474      1.2  matt #define RA_FE_CDMA_OQ_STA      0x050
    475      1.2  matt #define RA_FE_GDMA1_OQ_STA     0x054
    476      1.2  matt #define RA_FE_GDMA2_OQ_STA     0x058
    477      1.2  matt #define RA_FE_PSE_IQ_STA       0x05C
    478      1.2  matt #define RA_FE_GDMA2_FWD_CFG    0x060
    479      1.2  matt #define RA_FE_GDMA2_SCHED_CFG  0x064
    480      1.2  matt #define RA_FE_GDMA2_SHAPE_CFG  0x068
    481      1.2  matt #define RA_FE_GDMA2_MAC_LSB    0x06C
    482      1.2  matt #define RA_FE_GDMA2_MAC_MSB    0x070
    483      1.2  matt #define RA_FE_CDMA_CSG_CFG     0x080
    484      1.2  matt #define RA_FE_CDMA_SCHED_CFG   0x084
    485      1.2  matt #define RA_FE_PPPOE_SID_0001   0x088
    486      1.2  matt #define RA_FE_PPPOE_SID_0203   0x08C
    487      1.2  matt #define RA_FE_PPPOE_SID_0405   0x090
    488      1.2  matt #define RA_FE_PPPOE_SID_0607   0x094
    489      1.2  matt #define RA_FE_PPPOE_SID_0809   0x098
    490      1.2  matt #define RA_FE_PPPOE_SID_1011   0x09C
    491      1.2  matt #define RA_FE_PPPOE_SID_1213   0x0A0
    492      1.2  matt #define RA_FE_PPPOE_SID_1415   0x0A4
    493      1.2  matt #define RA_FE_VLAN_ID_0001     0x0A8
    494      1.2  matt #define RA_FE_VLAN_ID_0203     0x0AC
    495      1.2  matt #define RA_FE_VLAN_ID_0405     0x0B0
    496      1.2  matt #define RA_FE_VLAN_ID_0607     0x0B4
    497      1.2  matt #define RA_FE_VLAN_ID_0809     0x0B8
    498      1.2  matt #define RA_FE_VLAN_ID_1011     0x0BC
    499      1.2  matt #define RA_FE_VLAN_ID_1213     0x0C0
    500      1.2  matt #define RA_FE_VLAN_ID_1415     0x0C4
    501      1.2  matt #define RA_FE_PDMA_GLOBAL_CFG  0x100
    502      1.2  matt #define RA_FE_PDMA_RESET_IDX   0x104
    503      1.2  matt #define RA_FE_PDMA_SCHED_CFG   0x108
    504      1.2  matt #define RA_FE_PDMA_DLY_INT_CFG 0x10C
    505      1.2  matt #define RA_FE_PDMA_TX0_PTR     0x110
    506      1.2  matt #define RA_FE_PDMA_TX0_COUNT   0x114
    507      1.2  matt #define RA_FE_PDMA_TX0_CPU_IDX 0x118
    508      1.2  matt #define RA_FE_PDMA_TX0_DMA_IDX 0x11C
    509      1.2  matt #define RA_FE_PDMA_TX1_PTR     0x120
    510      1.2  matt #define RA_FE_PDMA_TX1_COUNT   0x124
    511      1.2  matt #define RA_FE_PDMA_TX1_CPU_IDX 0x128
    512      1.2  matt #define RA_FE_PDMA_TX1_DMA_IDX 0x12C
    513      1.2  matt #define RA_FE_PDMA_RX0_PTR     0x130
    514      1.2  matt #define RA_FE_PDMA_RX0_COUNT   0x134
    515      1.2  matt #define RA_FE_PDMA_RX0_CPU_IDX 0x138
    516      1.2  matt #define RA_FE_PDMA_RX0_DMA_IDX 0x13C
    517      1.2  matt #define RA_FE_PDMA_TX2_PTR     0x140
    518      1.2  matt #define RA_FE_PDMA_TX2_COUNT   0x144
    519      1.2  matt #define RA_FE_PDMA_TX2_CPU_IDX 0x148
    520      1.2  matt #define RA_FE_PDMA_TX2_DMA_IDX 0x14C
    521      1.2  matt #define RA_FE_PDMA_TX3_PTR     0x150
    522      1.2  matt #define RA_FE_PDMA_TX3_COUNT   0x154
    523      1.2  matt #define RA_FE_PDMA_TX3_CPU_IDX 0x158
    524      1.2  matt #define RA_FE_PDMA_TX3_DMA_IDX 0x15C
    525      1.2  matt #define RA_FE_PDMA_FC_CFG      0x1F0
    526      1.2  matt /* TODO: FE_COUNTERS */
    527      1.2  matt 
    528      1.2  matt #define  MDIO_ACCESS_TRG         (1 << 31)
    529      1.2  matt #define  MDIO_ACCESS_WR          (1 << 30)
    530      1.2  matt #define  MDIO_ACCESS_PHY_ADDR(x) (((x) & 0x1f) << 24)
    531      1.2  matt #define  MDIO_ACCESS_REG(x)      (((x) & 0x1f) << 16)
    532      1.2  matt #define  MDIO_ACCESS_DATA(x)     ((x) & 0xffff)
    533      1.2  matt #define  MDIO_CFG_AUTO_POLL      (1 << 29)
    534      1.2  matt #define  MDIO_CFG_PHY_ADDR(x)    (((x) & 0x1f) << 24)
    535      1.2  matt #define  MDIO_CFG_BP_EN          (1 << 16)
    536      1.2  matt #define  MDIO_CFG_FORCE_CFG      (1 << 15)
    537      1.2  matt #define  MDIO_CFG_SPEED(x)       (((x) & 0x3) << 13)
    538      1.2  matt #define   MDIO_CFG_SPEED_1000M   2
    539      1.2  matt #define   MDIO_CFG_SPEED_100M    1
    540      1.2  matt #define   MDIO_CFG_SPEED_10M     0
    541      1.2  matt #define  MDIO_CFG_FULL_DUPLEX    (1 << 12)
    542      1.2  matt #define  MDIO_CFG_FC_TX          (1 << 11)
    543      1.2  matt #define  MDIO_CFG_FC_RX          (1 << 10)
    544      1.2  matt #define  MDIO_CFG_LINK_DOWN      (1 << 9)
    545      1.2  matt #define  MDIO_CFG_AUTO_DONE      (1 << 8)
    546      1.2  matt #define  MDIO_CFG_MDC_CLKDIV(x)  (((x) & 0x3) << 6)
    547      1.2  matt #define   MDIO_CFG_MDC_512KHZ    3
    548      1.2  matt #define   MDIO_CFG_MDC_1MHZ      2
    549      1.2  matt #define   MDIO_CFG_MDC_2MHZ      1
    550      1.2  matt #define   MDIO_CFG_MDC_4MHZ      0
    551      1.2  matt #define  MDIO_CFG_TURBO_50MHZ   (1 << 5)
    552      1.2  matt #define  MDIO_CFG_TURBO_EN      (1 << 4)
    553      1.2  matt #define  MDIO_CFG_RX_CLK_SKEW   (((x) & 0x3) << 2)
    554      1.2  matt #define   MDIO_CFG_RX_SKEW_INV   3
    555      1.2  matt #define   MDIO_CFG_RX_SKEW_400PS 2
    556      1.2  matt #define   MDIO_CFG_RX_SKEW_200PS 1
    557      1.2  matt #define   MDIO_CFG_RX_SKEW_ZERO  0
    558      1.2  matt #define  MDIO_CFG_TX_CLK_MODE(x) (((x) & 0x1) << 0)
    559      1.2  matt #define   MDIO_CFG_TX_CLK_MODE_3COM  1
    560      1.2  matt #define   MDIO_CFG_TX_CLK_MODE_HP    0
    561      1.2  matt #define  FE_GLOBAL_CFG_EXT_VLAN(x) (((x) & 0xffff) << 16)
    562      1.2  matt #define  FE_GLOBAL_CFG_US_CLK(x)   (((x) & 0xff) << 8)
    563      1.2  matt #define  FE_GLOBAL_CFG_L2_SPACE(x) (((x) & 0xf) << 4)
    564      1.2  matt #define  FE_GLOBAL_RESET_PSE       (1 << 0)
    565      1.2  matt #define  FE_INT_PPE_COUNT_HIGH     (1 << 31)
    566      1.2  matt #define  FE_INT_DMA_COUNT_HIGH     (1 << 29)
    567      1.2  matt #define  FE_INT_PSE_P2_FC_ASSERT   (1 << 26)
    568      1.2  matt #define  FE_INT_PSE_FC_DROP        (1 << 24)
    569      1.2  matt #define  FE_INT_GDMA_DROP_OTHER    (1 << 23)
    570      1.2  matt #define  FE_INT_PSE_P1_FC_ASSERT   (1 << 22)
    571      1.2  matt #define  FE_INT_PSE_P0_FC_ASSERT   (1 << 21)
    572      1.2  matt #define  FE_INT_PSE_FQ_EMPTY       (1 << 20)
    573      1.2  matt #define  FE_INT_TX_COHERENT        (1 << 17)
    574      1.2  matt #define  FE_INT_RX_COHERENT        (1 << 16)
    575      1.2  matt #define  FE_INT_TX3                (1 << 11)
    576      1.2  matt #define  FE_INT_TX2                (1 << 10)
    577      1.2  matt #define  FE_INT_TX1                (1 << 9)
    578      1.2  matt #define  FE_INT_TX0                (1 << 8)
    579      1.2  matt #define  FE_INT_RX                 (1 << 2)
    580      1.2  matt #define  FE_INT_TX_DELAY           (1 << 1)
    581      1.2  matt #define  FE_INT_RX_DELAY           (1 << 0)
    582      1.2  matt #define  FE_GDMA_FWD_CFG_JUMBO_LEN(x)  (((x) & 0xf) << 28)
    583      1.2  matt #define  FE_GDMA_FWD_CFG_DROP_256B     (1 << 23)
    584      1.2  matt #define  FE_GDMA_FWD_CFG_IP4_CRC_EN    (1 << 22)
    585      1.2  matt #define  FE_GDMA_FWD_CFG_TCP_CRC_EN    (1 << 21)
    586      1.2  matt #define  FE_GDMA_FWD_CFG_UDP_CRC_EN    (1 << 20)
    587      1.2  matt #define  FE_GDMA_FWD_CFG_JUMBO_EN      (1 << 19)
    588      1.2  matt #define  FE_GDMA_FWD_CFG_DIS_TX_PAD    (1 << 18)
    589      1.2  matt #define  FE_GDMA_FWD_CFG_DIS_TX_CRC    (1 << 17)
    590      1.2  matt #define  FE_GDMA_FWD_CFG_STRIP_RX_CRC  (1 << 16)
    591      1.2  matt #define  FE_GDMA_FWD_CFG_UNICA_PORT(x) (((x) & 0x3) << 12)
    592      1.2  matt #define  FE_GDMA_FWD_CFG_BROAD_PORT(x) (((x) & 0x3) << 8)
    593      1.2  matt #define  FE_GDMA_FWD_CFG_MULTI_PORT(x) (((x) & 0x3) << 6)
    594      1.2  matt #define  FE_GDMA_FWD_CFG_OTHER_PORT(x) (((x) & 0x3) << 0)
    595      1.2  matt #define   FE_GDMA_FWD_CFG_PORT_DROP  7
    596      1.2  matt #define   FE_GDMA_FWD_CFG_PORT_PPE   6
    597      1.2  matt #define   FE_GDMA_FWD_CFG_PORT_GDMA2 2
    598      1.2  matt #define   FE_GDMA_FWD_CFG_PORT_GDMA1 1
    599      1.2  matt #define   FE_GDMA_FWD_CFG_PORT_CPU   0
    600      1.2  matt #define  FE_PSE_FQ_MAX_COUNT(x)  (((x) & 0xff) << 24)
    601      1.2  matt #define  FE_PSE_FQ_FC_RELEASE(x) (((x) & 0xff) << 16)
    602      1.2  matt #define  FE_PSE_FQ_FC_ASSERT(x)  (((x) & 0xff) << 8)
    603      1.2  matt #define  FE_PSE_FQ_FC_DROP(x)    (((x) & 0xff) << 0)
    604      1.2  matt #define  FE_CDMA_CSG_CFG_VLAN_TAG(x) (((x) & 0xffff) << 16)
    605      1.2  matt #define  FE_CDMA_CSG_CFG_IP4_CRC_EN  (1 << 2)
    606      1.2  matt #define  FE_CDMA_CSG_CFG_UDP_CRC_EN  (1 << 1)
    607      1.2  matt #define  FE_CDMA_CSG_CFG_TCP_CRC_EN  (1 << 0)
    608      1.2  matt #define  FE_PDMA_GLOBAL_CFG_HDR_SEG_LEN  (1 << 16)
    609      1.2  matt #define  FE_PDMA_GLOBAL_CFG_TX_WB_DDONE  (1 << 6)
    610      1.2  matt #define  FE_PDMA_GLOBAL_CFG_BURST_SZ(x)  (((x) & 0x3) << 4)
    611      1.2  matt #define   FE_PDMA_GLOBAL_CFG_BURST_SZ_4  (0 << 4)
    612      1.2  matt #define   FE_PDMA_GLOBAL_CFG_BURST_SZ_8  (1 << 4)
    613      1.2  matt #define   FE_PDMA_GLOBAL_CFG_BURST_SZ_16 (2 << 4)
    614      1.2  matt #define  FE_PDMA_GLOBAL_CFG_RX_DMA_BUSY  (1 << 3)
    615      1.2  matt #define  FE_PDMA_GLOBAL_CFG_RX_DMA_EN    (1 << 2)
    616      1.2  matt #define  FE_PDMA_GLOBAL_CFG_TX_DMA_BUSY  (1 << 1)
    617      1.2  matt #define  FE_PDMA_GLOBAL_CFG_TX_DMA_EN    (1 << 0)
    618      1.2  matt #define  PDMA_RST_RX0          (1 << 16)
    619      1.2  matt #define  PDMA_RST_TX3          (1 << 3)
    620      1.2  matt #define  PDMA_RST_TX2          (1 << 2)
    621      1.2  matt #define  PDMA_RST_TX1          (1 << 1)
    622      1.2  matt #define  PDMA_RST_TX0          (1 << 0)
    623      1.2  matt 
    624      1.2  matt /*
    625      1.2  matt  * 10/100 Switch registers
    626      1.2  matt  */
    627      1.2  matt 
    628      1.2  matt #define RA_ETH_SW_ISR    0x00
    629      1.2  matt #define RA_ETH_SW_IMR    0x04
    630      1.2  matt #define RA_ETH_SW_FCT0   0x08
    631      1.2  matt #define RA_ETH_SW_FCT1   0x0C
    632      1.2  matt #define RA_ETH_SW_PFC0   0x10
    633      1.2  matt #define RA_ETH_SW_PFC1   0x14
    634      1.2  matt #define RA_ETH_SW_PFC2   0x18
    635      1.2  matt #define RA_ETH_SW_QCS0   0x1C
    636      1.2  matt #define RA_ETH_SW_QCS1   0x20
    637      1.2  matt #define RA_ETH_SW_ATS    0x24
    638      1.2  matt #define RA_ETH_SW_ATS0   0x28
    639      1.2  matt #define RA_ETH_SW_ATS1   0x2C
    640      1.2  matt #define RA_ETH_SW_ATS2   0x30
    641      1.2  matt #define RA_ETH_SW_WMAD0  0x34
    642      1.2  matt #define RA_ETH_SW_WMAD1  0x38
    643      1.2  matt #define RA_ETH_SW_WMAD2  0x3C
    644      1.2  matt #define RA_ETH_SW_PVIDC0 0x40
    645      1.2  matt #define RA_ETH_SW_PVIDC1 0x44
    646      1.2  matt #define RA_ETH_SW_PVIDC2 0x48
    647      1.2  matt #define RA_ETH_SW_PVIDC3 0x4C
    648      1.2  matt #define RA_ETH_SW_VLANI0 0x50
    649      1.2  matt #define RA_ETH_SW_VLANI1 0x54
    650      1.2  matt #define RA_ETH_SW_VLANI2 0x58
    651      1.2  matt #define RA_ETH_SW_VLANI3 0x5C
    652      1.2  matt #define RA_ETH_SW_VLANI4 0x60
    653      1.2  matt #define RA_ETH_SW_VLANI5 0x64
    654      1.2  matt #define RA_ETH_SW_VLANI6 0x68
    655      1.2  matt #define RA_ETH_SW_VLANI7 0x6C
    656      1.2  matt #define RA_ETH_SW_VMSC0  0x70
    657      1.2  matt #define RA_ETH_SW_VMSC1  0x74
    658      1.2  matt #define RA_ETH_SW_VMSC2  0x78
    659      1.2  matt #define RA_ETH_SW_VMSC3  0x7C
    660      1.2  matt #define RA_ETH_SW_POA    0x80
    661      1.2  matt #define RA_ETH_SW_FPA    0x84
    662      1.2  matt #define RA_ETH_SW_PTS    0x88
    663      1.2  matt #define RA_ETH_SW_SOCPC  0x8C
    664      1.2  matt #define RA_ETH_SW_POC0   0x90
    665      1.2  matt #define RA_ETH_SW_POC1   0x94
    666      1.2  matt #define RA_ETH_SW_POC2   0x98
    667      1.2  matt #define RA_ETH_SW_SWGC   0x9C
    668      1.2  matt #define RA_ETH_SW_RST    0xA0
    669      1.2  matt #define RA_ETH_SW_LEDP0  0xA4
    670      1.2  matt #define RA_ETH_SW_LEDP1  0xA8
    671      1.2  matt #define RA_ETH_SW_LEDP2  0xAC
    672      1.2  matt #define RA_ETH_SW_LEDP3  0xB0
    673      1.2  matt #define RA_ETH_SW_LEDP4  0xB4
    674      1.2  matt #define RA_ETH_SW_WDOG   0xB8
    675      1.2  matt #define RA_ETH_SW_DBG    0xBC
    676      1.2  matt #define RA_ETH_SW_PCTL0  0xC0
    677      1.2  matt #define RA_ETH_SW_PCTL1  0xC4
    678      1.2  matt #define RA_ETH_SW_FPORT  0xC8
    679      1.2  matt #define RA_ETH_SW_FTC2   0xCC
    680      1.2  matt #define RA_ETH_SW_QSS0   0xD0
    681      1.2  matt #define RA_ETH_SW_QSS1   0xD4
    682      1.2  matt #define RA_ETH_SW_DBGC   0xD8
    683      1.2  matt #define RA_ETH_SW_MTI1   0xDC
    684      1.2  matt #define RA_ETH_SW_PPC    0xE0
    685      1.2  matt #define RA_ETH_SW_SGC2   0xE4
    686      1.2  matt #define RA_ETH_SW_PCNT0  0xE8
    687      1.2  matt #define RA_ETH_SW_PCNT1  0xEC
    688      1.2  matt #define RA_ETH_SW_PCNT2  0xF0
    689      1.2  matt #define RA_ETH_SW_PCNT3  0xF4
    690      1.2  matt #define RA_ETH_SW_PCNT4  0xF8
    691      1.2  matt #define RA_ETH_SW_PCNT5  0xFC
    692      1.2  matt 
    693      1.2  matt #define  ISR_WDOG1_EXPIRED    (1 << 29)
    694      1.2  matt #define  ISR_WDOG0_EXPIRED    (1 << 28)
    695      1.2  matt #define  ISR_HAS_INTRUDER     (1 << 27)
    696      1.2  matt #define  ISR_PORT_STS_CHNG    (1 << 26)
    697      1.2  matt #define  ISR_BRDCAST_STORM    (1 << 25)
    698      1.2  matt #define  ISR_MUST_DROP_LAN    (1 << 24)
    699      1.2  matt #define  ISR_GLOB_QUE_FULL    (1 << 23)
    700      1.2  matt #define  ISR_LAN_QUE6_FULL    (1 << 20)
    701      1.2  matt #define  ISR_LAN_QUE5_FULL    (1 << 19)
    702      1.2  matt #define  ISR_LAN_QUE4_FULL    (1 << 18)
    703      1.2  matt #define  ISR_LAN_QUE3_FULL    (1 << 17)
    704      1.2  matt #define  ISR_LAN_QUE2_FULL    (1 << 16)
    705      1.2  matt #define  ISR_LAN_QUE1_FULL    (1 << 15)
    706      1.2  matt #define  ISR_LAN_QUE0_FULL    (1 << 14)
    707      1.2  matt #define  FTC0_REL_THR          24
    708      1.2  matt #define  FTC0_SET_THR          16
    709      1.2  matt #define  FTC0_DROP_REL_THR     8
    710      1.2  matt #define  FTC0_DROP_SET_THR     0
    711      1.2  matt #define  FTC1_PER_PORT_THR     0
    712      1.2  matt #define  PCTL0_WR_VAL(x) (((x) & 0xffff) << 16)
    713      1.2  matt #define  PCTL0_RD_CMD    (1 << 14)
    714      1.2  matt #define  PCTL0_WR_CMD    (1 << 13)
    715      1.2  matt #define  PCTL0_REG(x)    (((x) & 0x1f) << 8)
    716      1.2  matt #define  PCTL0_ADDR(x)   (((x) & 0x1f) << 0)
    717      1.2  matt #define  PCTL1_RD_VAL(x) (((x) >> 16) & 0xffff)
    718      1.2  matt #define  PCTL1_RD_DONE   (1 << 1)	/* read clear */
    719      1.2  matt #define  PCTL1_WR_DONE   (1 << 0)	/* read clear */
    720      1.2  matt #define  SGC2_WL_FC_EN       (1 << 30)
    721      1.2  matt #define  SGC2_PORT5_IS_LAN   (1 << 29)
    722      1.2  matt #define  SGC2_PORT4_IS_LAN   (1 << 28)
    723      1.2  matt #define  SGC2_PORT3_IS_LAN   (1 << 27)
    724      1.2  matt #define  SGC2_PORT2_IS_LAN   (1 << 26)
    725      1.2  matt #define  SGC2_PORT1_IS_LAN   (1 << 25)
    726      1.2  matt #define  SGC2_PORT0_IS_LAN   (1 << 24)
    727      1.2  matt #define  SGC2_TX_CPU_TPID(x) ((x) << 16)
    728      1.2  matt #define  SGC2_ARBITER_LAN_EN (1 << 11)
    729      1.2  matt #define  SGC2_CPU_TPID_EN    (1 << 10)
    730      1.2  matt #define  SGC2_DBL_TAG_EN5    (1 << 5)
    731      1.2  matt #define  SGC2_DBL_TAG_EN4    (1 << 4)
    732      1.2  matt #define  SGC2_DBL_TAG_EN3    (1 << 3)
    733      1.2  matt #define  SGC2_DBL_TAG_EN2    (1 << 2)
    734      1.2  matt #define  SGC2_DBL_TAG_EN1    (1 << 1)
    735      1.2  matt #define  SGC2_DBL_TAG_EN0    (1 << 0)
    736      1.2  matt 
    737      1.2  matt 
    738      1.2  matt #define FTC_THR_MSK           0xff
    739      1.2  matt 
    740      1.2  matt #define PFC0_MTCC_LIMIT       24
    741      1.2  matt #define PFC0_TURN_OFF_CF      16
    742      1.2  matt #define PFC0_TURN_OFF_CF_MSK  0xff
    743      1.2  matt #define PFC0_VO_NUM           12
    744      1.2  matt #define PFC0_CL_NUM           8
    745      1.2  matt #define PFC0_BE_NUM           4
    746      1.2  matt #define PFC0_BK_NUM           0
    747      1.2  matt #define PFC0_NUM_MSK          0xf
    748      1.2  matt 
    749      1.2  matt #define PFC1_P6_Q1_EN        (1 << 31)
    750      1.2  matt #define PFC1_P6_TOS_EN       (1 << 30)
    751      1.2  matt #define PFC1_P5_TOS_EN       (1 << 29)
    752      1.2  matt #define PFC1_P4_TOS_EN       (1 << 28)
    753      1.2  matt #define PFC1_P3_TOS_EN       (1 << 27)
    754      1.2  matt 
    755      1.2  matt #define PFC1_P1_TOS_EN       (1 << 25)
    756      1.2  matt #define PFC1_P0_TOS_EN       (1 << 24)
    757      1.2  matt #define PFC1_PORT_PRI6        12
    758      1.2  matt #define PFC1_PORT_PRI5        10
    759      1.2  matt #define PFC1_PORT_PRI4        8
    760      1.2  matt #define PFC1_PORT_PRI3        6
    761      1.2  matt #define PFC1_PORT_PRI2        4
    762      1.2  matt #define PFC1_PORT_PRI1        2
    763      1.2  matt #define PFC1_PORT_PRI0        0
    764      1.2  matt #define PFC1_PORT_MSK         0x3
    765      1.2  matt 
    766      1.2  matt #define PFC2_PRI_THR_VO       24
    767      1.2  matt #define PFC2_PRI_THR_CL       16
    768      1.2  matt #define PFC2_PRI_THR_BE       8
    769      1.2  matt #define PFC2_PRI_THR_BK       0
    770      1.2  matt #define PFC2_PRI_THR_MSK      0xff
    771      1.2  matt 
    772      1.2  matt #define GQC0_EMPTY_BLOCKS      0
    773      1.2  matt #define GQC0_EMPTY_BLOCKS_MSK  0xff
    774      1.2  matt 
    775      1.2  matt /*
    776      1.2  matt  * USB OTG Registers
    777      1.2  matt  */
    778      1.2  matt #define RA_USB_OTG_OTG_CNTRL       0x000
    779      1.2  matt #define RA_USB_OTG_OTG_INT         0x004
    780      1.2  matt #define RA_USB_OTG_AHB_CFG         0x008
    781      1.2  matt #define RA_USB_OTG_CFG             0x00C
    782      1.2  matt #define RA_USB_OTG_RESET           0x010
    783      1.2  matt #define RA_USB_OTG_INT             0x014
    784      1.2  matt #define RA_USB_OTG_INT_MASK        0x018
    785      1.2  matt #define RA_USB_OTG_RX_STAT         0x01C
    786      1.2  matt #define RA_USB_OTG_RX_POP_STAT     0x020
    787      1.2  matt #define RA_USB_OTG_RX_FIFO_SZ      0x024
    788      1.2  matt #define RA_USB_OTG_TX_FIFO_SZ      0x028
    789      1.2  matt #define RA_USB_OTG_TX_FIFO_STAT    0x02C
    790      1.2  matt #define RA_USB_OTG_I2C_ACCESS      0x030
    791      1.2  matt #define RA_USB_OTG_PHY_CTL         0x034
    792      1.2  matt #define RA_USB_OTG_GPIO            0x038
    793      1.2  matt #define RA_USB_OTG_GUID            0x03C
    794      1.2  matt #define RA_USB_OTG_SNPSID          0x040
    795      1.2  matt #define RA_USB_OTG_HWCFG1          0x044
    796      1.2  matt #define RA_USB_OTG_HWCFG2          0x048
    797      1.2  matt #define RA_USB_OTG_HWCFG3          0x04C
    798      1.2  matt #define RA_USB_OTG_HWCFG4          0x050
    799      1.2  matt #define RA_USB_OTG_HC_TX_FIFO_SZ   0x100
    800      1.2  matt #define RA_USB_OTG_DV_TX_FIFO_SZ   0x104
    801      1.2  matt #define RA_USB_OTG_HC_CFG          0x400
    802      1.2  matt #define RA_USB_OTG_HC_FRM_INTRVL   0x404
    803      1.2  matt #define RA_USB_OTG_HC_FRM_NUM      0x408
    804      1.2  matt #define RA_USB_OTG_HC_TX_STAT      0x410
    805      1.2  matt #define RA_USB_OTG_HC_INT          0x414
    806      1.2  matt #define RA_USB_OTG_HC_INT_MASK     0x418
    807      1.2  matt #define RA_USB_OTG_HC_PORT         0x440
    808      1.2  matt #define RA_USB_OTG_HC_CH_CFG       0x500
    809      1.2  matt #define RA_USB_OTG_HC_CH_SPLT      0x504
    810      1.2  matt #define RA_USB_OTG_HC_CH_INT       0x508
    811      1.2  matt #define RA_USB_OTG_HC_CH_INT_MASK  0x50C
    812      1.2  matt #define RA_USB_OTG_HC_CH_XFER      0x510
    813      1.2  matt #define RA_USB_OTG_HC_CH_DMA_ADDR  0x514
    814      1.2  matt #define RA_USB_OTG_DV_CFG          0x800
    815      1.2  matt #define RA_USB_OTG_DV_CTL          0x804
    816      1.2  matt #define RA_USB_OTG_DV_STAT         0x808
    817      1.2  matt #define RA_USB_OTG_DV_IN_INT_MASK  0x810
    818      1.2  matt #define RA_USB_OTG_DV_OUT_INT_MASK 0x814
    819      1.2  matt #define RA_USB_OTG_DV_ALL_INT      0x818
    820      1.2  matt #define RA_USB_OTG_DV_EP_INT_MASK  0x81c
    821      1.2  matt #define RA_USB_OTG_DV_IN_SEQ_RQ1   0x820
    822      1.2  matt #define RA_USB_OTG_DV_IN_SEQ_RQ2   0x824
    823      1.2  matt #define RA_USB_OTG_DV_IN_SEQ_RQ3   0x830
    824      1.2  matt #define RA_USB_OTG_DV_IN_SEQ_RQ4   0x834
    825      1.2  matt #define RA_USB_OTG_DV_VBUS_DISCH   0x828
    826      1.2  matt #define RA_USB_OTG_DV_VBUS_PULSE   0x82c
    827      1.2  matt #define RA_USB_OTG_DV_THRESH_CTL   0x830
    828      1.2  matt #define RA_USB_OTG_DV_IN_FIFO_INT  0x834
    829      1.2  matt #define RA_USB_OTG_DV_IN0_CTL      0x900
    830      1.2  matt 
    831      1.2  matt #define  OTG_OTG_CNTRL_B_SESS_VALID      (1 << 19)
    832      1.2  matt #define  OTG_OTG_CNTRL_A_SESS_VALID      (1 << 18)
    833      1.2  matt #define  OTG_OTG_CNTRL_DEBOUNCE_SHORT    (1 << 17)
    834      1.2  matt #define  OTG_OTG_CNTRL_CONNID_STATUS     (1 << 16)
    835      1.2  matt #define  OTG_OTG_CNTRL_DV_HNP_EN         (1 << 11)
    836      1.2  matt #define  OTG_OTG_CNTRL_HC_SET_HNP_EN     (1 << 10)
    837      1.2  matt #define  OTG_OTG_CNTRL_HNP_REQ           (1 << 9)
    838      1.2  matt #define  OTG_OTG_CNTRL_HNP_SUCCESS       (1 << 8)
    839      1.2  matt #define  OTG_OTG_CNTRL_SESS_REQ          (1 << 1)
    840      1.2  matt #define  OTG_OTG_CNTRL_SESS_REQ_SUCCESS  (1 << 0)
    841      1.2  matt #define  OTG_OTG_INT_DEBOUNCE_DONE       (1 << 19)
    842      1.2  matt #define  OTG_OTG_INT_ADEV_TIMEOUT        (1 << 18)
    843      1.2  matt #define  OTG_OTG_INT_HOST_NEG_DETECT     (1 << 17)
    844      1.2  matt #define  OTG_OTG_INT_HOST_NEG_STATUS     (1 << 9)
    845      1.2  matt #define  OTG_OTG_INT_SESSION_REQ_STATUS  (1 << 8)
    846      1.2  matt #define  OTG_OTG_INT_SESSION_END_STATUS  (1 << 2)
    847      1.2  matt #define  OTG_AHB_CFG_TX_PFIFO_EMPTY_INT_EN  (1 << 8)
    848      1.2  matt #define  OTG_AHB_CFG_TX_NPFIFO_EMPTY_INT_EN (1 << 7)
    849      1.2  matt #define  OTG_AHB_CFG_DMA_EN                 (1 << 5)
    850      1.2  matt #define  OTG_AHB_CFG_BURST(x)               (((x) & 0xf) << 1)
    851      1.2  matt #define   OTG_AHB_CFG_BURST_SINGLE	     0
    852      1.2  matt #define   OTG_AHB_CFG_BURST_INCR  	     1
    853      1.2  matt #define   OTG_AHB_CFG_BURST_INCR4 	     3
    854      1.2  matt #define   OTG_AHB_CFG_BURST_INCR8 	     5
    855      1.2  matt #define   OTG_AHB_CFG_BURST_INCR16	     7
    856      1.2  matt #define  OTG_AHB_CFG_GLOBAL_INT_EN          (1 << 0)
    857      1.2  matt #define  OTG_CFG_CORRUPT_TX              (1 << 31)
    858      1.2  matt #define  OTG_CFG_FORCE_DEVICE            (1 << 30)
    859      1.2  matt #define  OTG_CFG_FORCE_HOST              (1 << 29)
    860      1.2  matt #define  OTG_CFG_ULPI_EXT_VBUS_IND_SEL   (1 << 22)
    861      1.2  matt #define  OTG_CFG_ULPI_EXT_VBUS_IND       (1 << 21)
    862      1.2  matt #define  OTG_CFG_ULPI_EXT_VBUS_DRV       (1 << 20)
    863      1.2  matt #define  OTG_CFG_ULPI_CLOCK_SUSPEND      (1 << 19)
    864      1.2  matt #define  OTG_CFG_ULPI_AUTO_RESUME        (1 << 18)
    865      1.2  matt #define  OTG_CFG_ULPI_FS_LS_SEL          (1 << 17)
    866      1.2  matt #define  OTG_CFG_UTMI_I2C_SEL            (1 << 16)
    867      1.2  matt #define  OTG_CFG_TURNAROUND_TIME(x)      (((x) & 0xf) << 10)
    868      1.2  matt #define  OTG_CFG_HNP_CAP                 (1 << 9)
    869      1.2  matt #define  OTG_CFG_SRP_CAP                 (1 << 8)
    870      1.2  matt #define  OTG_CFG_ULPI_DDR_SEL            (1 << 7)
    871      1.2  matt #define  OTG_CFG_HS_PHY_SEL              (1 << 6)
    872      1.2  matt #define  OTG_CFG_FS_IF_SEL               (1 << 5)
    873      1.2  matt #define  OTG_CFG_ULPI_UTMI_SEL           (1 << 4)
    874      1.2  matt #define  OTG_CFG_PHY_IF                  (1 << 3)
    875      1.2  matt #define  OTG_CFG_TIMEOUT(x)              (((x) & 0x7) << 0)
    876      1.2  matt #define  OTG_RST_AHB_IDLE                (1 << 31)
    877      1.2  matt #define  OTG_RST_DMA_ACTIVE              (1 << 30)
    878      1.2  matt #define  OTG_RST_TXQ_TO_FLUSH(x)         (((x) & 0x1f) << 6)
    879      1.2  matt #define   OTG_RST_TXQ_FLUSH_ALL          0x10
    880      1.2  matt #define  OTG_RST_TXQ_FLUSH               (1 << 5)
    881      1.2  matt #define  OTG_RST_RXQ_FLUSH               (1 << 4)
    882      1.2  matt #define  OTG_RST_INQ_FLUSH               (1 << 3)
    883      1.2  matt #define  OTG_RST_HC_FRAME                (1 << 2)
    884      1.2  matt #define  OTG_RST_AHB                     (1 << 1)
    885      1.2  matt #define  OTG_RST_CORE                    (1 << 0)
    886      1.2  matt #define  OTG_INT_RESUME                  (1 << 31)
    887      1.2  matt #define  OTG_INT_SESSION_REQ             (1 << 30)
    888      1.2  matt #define  OTG_INT_DISCONNECT              (1 << 29)
    889      1.2  matt #define  OTG_INT_CONNID_STATUS           (1 << 28)
    890      1.2  matt #define  OTG_INT_PTX_EMPTY               (1 << 26)
    891      1.2  matt #define  OTG_INT_HOST_CHANNEL            (1 << 25)
    892      1.2  matt #define  OTG_INT_PORT_STATUS             (1 << 24)
    893      1.2  matt #define  OTG_INT_DMA_FETCH_SUSPEND       (1 << 22)
    894      1.2  matt #define  OTG_INT_INCOMPLETE_PERIODIC     (1 << 21)
    895      1.2  matt #define  OTG_INT_INCOMPLETE_ISOC         (1 << 20)
    896      1.2  matt #define  OTG_INT_DV_OUT_EP               (1 << 19)
    897      1.2  matt #define  OTG_INT_DV_IN_EP                (1 << 18)
    898      1.2  matt #define  OTG_INT_DV_EP_MISMATCH          (1 << 17)
    899      1.2  matt #define  OTG_INT_DV_PERIODIC_END         (1 << 15)
    900      1.2  matt #define  OTG_INT_DV_ISOC_OUT_DROP        (1 << 14)
    901      1.2  matt #define  OTG_INT_DV_ENUM_COMPLETE        (1 << 13)
    902      1.2  matt #define  OTG_INT_DV_USB_RESET            (1 << 12)
    903      1.2  matt #define  OTG_INT_DV_USB_SUSPEND          (1 << 11)
    904      1.2  matt #define  OTG_INT_DV_USB_EARLY_SUSPEND    (1 << 10)
    905      1.2  matt #define  OTG_INT_I2C                     (1 << 9)
    906      1.2  matt #define  OTG_INT_ULPI_CARKIT             (1 << 8)
    907      1.2  matt #define  OTG_INT_DV_OUT_NAK_EFFECTIVE    (1 << 7)
    908      1.2  matt #define  OTG_INT_DV_IN_NAK_EFFECTIVE     (1 << 6)
    909      1.2  matt #define  OTG_INT_NPTX_EMPTY              (1 << 5)
    910      1.2  matt #define  OTG_INT_RX_FIFO                 (1 << 4)
    911      1.2  matt #define  OTG_INT_SOF                     (1 << 3)
    912      1.2  matt #define  OTG_INT_OTG                     (1 << 2)
    913      1.2  matt #define  OTG_INT_MODE_MISMATCH           (1 << 1)
    914      1.2  matt #define  OTG_INT_MODE                    (1 << 0)
    915      1.2  matt #define  USB_OTG_SNPSID_CORE_REV_2_00  0x4F542000
    916      1.2  matt #define  OTG_HC_CFG_FORCE_NO_HS          (1 << 2)
    917      1.2  matt #define  OTG_HC_CFG_FSLS_CLK_SEL(x)      (((x) & 0x3) << 0)
    918      1.2  matt #define   OTG_HC_CFG_FS_CLK_3060         0
    919      1.2  matt #define   OTG_HC_CFG_FS_CLK_48           1
    920      1.2  matt #define   OTG_HC_CFG_LS_CLK_3060         0
    921      1.2  matt #define   OTG_HC_CFG_LS_CLK_48           1
    922      1.2  matt #define   OTG_HC_CFG_LS_CLK_6            2
    923      1.2  matt #define  USB_OTG_HC_FRM_NUM(x)            (x & 0x3fff)
    924      1.2  matt #define  USB_OTG_HC_FRM_REM(x)            (x >> 16)
    925      1.2  matt #define  USB_OTG_HC_PORT_SPEED(x)         (((x) >> 17) & 0x3)
    926      1.2  matt #define   USB_OTG_HC_PORT_SPEED_HS        0
    927      1.2  matt #define   USB_OTG_HC_PORT_SPEED_FS        1
    928      1.2  matt #define   USB_OTG_HC_PORT_SPEED_LS        2
    929      1.2  matt #define  USB_OTG_HC_PORT_TEST(x)          (((x) & 0xf) << 13)
    930      1.2  matt #define   USB_OTG_HC_PORT_TEST_DISABLED   0
    931      1.2  matt #define   USB_OTG_HC_PORT_TEST_J_MODE     1
    932      1.2  matt #define   USB_OTG_HC_PORT_TEST_K_MODE     2
    933      1.2  matt #define   USB_OTG_HC_PORT_TEST_NAK_MODE   3
    934      1.2  matt #define   USB_OTG_HC_PORT_TEST_PKT_MODE   4
    935      1.2  matt #define   USB_OTG_HC_PORT_TEST_FORCE_MODE 5
    936      1.2  matt #define  USB_OTG_HC_PORT_POWER            (1 << 12)
    937      1.2  matt #define  USB_OTG_HC_PORT_LINE_STAT        (((x) >> 10) & 0x3)
    938      1.2  matt #define   USB_OTG_HC_PORT_LINE_STAT_DP    1
    939      1.2  matt #define   USB_OTG_HC_PORT_LINE_STAT_DM    3
    940      1.2  matt #define  USB_OTG_HC_PORT_RESET            (1 << 8)
    941      1.2  matt #define  USB_OTG_HC_PORT_SUSPEND          (1 << 7)
    942      1.2  matt #define  USB_OTG_HC_PORT_RESUME           (1 << 6)
    943      1.2  matt #define  USB_OTG_HC_PORT_OVCURR_CHANGE    (1 << 5)
    944      1.2  matt #define  USB_OTG_HC_PORT_OVCURR           (1 << 4)
    945      1.2  matt #define  USB_OTG_HC_PORT_ENABLE_CHANGE    (1 << 3)
    946      1.2  matt #define  USB_OTG_HC_PORT_ENABLE           (1 << 2)
    947      1.2  matt #define  USB_OTG_HC_PORT_CONNECT_CHANGE   (1 << 1)
    948      1.2  matt #define  USB_OTG_HC_PORT_STATUS           (1 << 0)
    949      1.2  matt #define  USB_OTG_HC_CH_CFG_ENABLE         (1 << 31)
    950      1.2  matt #define  USB_OTG_HC_CH_CFG_DISABLE        (1 << 30)
    951      1.2  matt #define  USB_OTG_HC_CH_CFG_ODD_FRAME      (1 << 29)
    952      1.2  matt #define  USB_OTG_HC_CH_CFG_DEV_ADDR(x)    (((x) & 0x7f) << 22)
    953      1.2  matt #define  USB_OTG_HC_CH_CFG_MULTI_CNT(x)   (((x) & 0x3) << 20)
    954      1.2  matt #define  USB_OTG_HC_CH_CFG_EP_TYPE(x)     (((x) & 0x3) << 18)
    955      1.2  matt #define   USB_OTG_HC_CH_CFG_EP_TYPE_CTRL   0
    956      1.2  matt #define   USB_OTG_HC_CH_CFG_EP_TYPE_ISOC   1
    957      1.2  matt #define   USB_OTG_HC_CH_CFG_EP_TYPE_BULK   2
    958      1.2  matt #define   USB_OTG_HC_CH_CFG_EP_TYPE_INTR   3
    959      1.2  matt #define  USB_OTG_HC_CH_CFG_LS             (1 << 17)
    960      1.2  matt #define  USB_OTG_HC_CH_CFG_EP_DIR(x)      (((x) & 0x1) << 15)
    961      1.2  matt #define   USB_OTG_HC_CH_CFG_EP_DIR_OUT     0
    962      1.2  matt #define   USB_OTG_HC_CH_CFG_EP_DIR_IN      1
    963      1.2  matt #define  USB_OTG_HC_CH_CFG_EP_NUM(x)      (((x) & 0xf) << 11)
    964      1.2  matt #define  USB_OTG_HC_CH_CFG_MAX_PKT_SZ(x)  (((x) & 0x7ff) << 0)
    965      1.2  matt #define  USB_OTG_HC_CH_SPLT_EN           (1 << 31)
    966      1.2  matt #define  USB_OTG_HC_CH_SPLT_COMPLETE     (1 << 16)
    967      1.2  matt #define  USB_OTG_HC_CH_SPLT_POS(x)       (((x) & 0x3) << 14)
    968      1.2  matt #define   USB_OTG_HC_CH_SPLT_POS_MID      0
    969      1.2  matt #define   USB_OTG_HC_CH_SPLT_POS_END      1
    970      1.2  matt #define   USB_OTG_HC_CH_SPLT_POS_BEGIN    2
    971      1.2  matt #define   USB_OTG_HC_CH_SPLT_POS_ALL      3
    972      1.2  matt #define  USB_OTG_HC_CH_SPLT_HUB_ADDR(x)  (((x) & 0x7f) << 7)
    973      1.2  matt #define  USB_OTG_HC_CH_SPLT_PORT_ADDR(x) (((x) & 0x7f) << 0)
    974      1.2  matt #define  USB_OTG_HC_CH_INT_ALL            0x7ff
    975      1.2  matt #define  USB_OTG_HC_CH_INT_TOGGLE_ERROR   (1 << 10)
    976      1.2  matt #define  USB_OTG_HC_CH_INT_FRAME_OVERRUN  (1 << 9)
    977      1.2  matt #define  USB_OTG_HC_CH_INT_BABBLE_ERROR   (1 << 8)
    978      1.2  matt #define  USB_OTG_HC_CH_INT_XACT_ERROR     (1 << 7)
    979      1.2  matt #define  USB_OTG_HC_CH_INT_NYET           (1 << 6)
    980      1.2  matt #define  USB_OTG_HC_CH_INT_ACK            (1 << 5)
    981      1.2  matt #define  USB_OTG_HC_CH_INT_NAK            (1 << 4)
    982      1.2  matt #define  USB_OTG_HC_CH_INT_STALL          (1 << 3)
    983      1.2  matt #define  USB_OTG_HC_CH_INT_DMA_ERROR      (1 << 2)
    984      1.2  matt #define  USB_OTG_HC_CH_INT_HALTED         (1 << 1)
    985      1.2  matt #define  USB_OTG_HC_CH_INT_XFER_COMPLETE  (1 << 0)
    986      1.2  matt #define  USB_OTG_HC_CH_XFER_DO_PING      (1 << 31)
    987      1.2  matt #define  USB_OTG_HC_CH_WR_XFER_PID(x)       (((x) & 0x3) << 29)
    988      1.2  matt #define  USB_OTG_HC_CH_RD_XFER_PID(x)       (((x) >> 29) & 0x3)
    989      1.2  matt #define  USB_OTG_HC_CH_XFER_PID_DATA0    0
    990      1.2  matt #define  USB_OTG_HC_CH_XFER_PID_DATA2    1
    991      1.2  matt #define  USB_OTG_HC_CH_XFER_PID_DATA1    2
    992      1.2  matt #define  USB_OTG_HC_CH_XFER_PID_SETUP    3
    993      1.2  matt #define  USB_OTG_HC_CH_XFER_PID_MDATA    3
    994      1.2  matt #define  USB_OTG_HC_CH_XFER_SET_PKT_CNT(x)   (((x) & 0x3ff) << 19)
    995      1.2  matt #define  USB_OTG_HC_CH_XFER_SET_BYTES(x)     ((x) & 0x7ffff)
    996      1.2  matt #define  USB_OTG_HC_CH_XFER_GET_PKT_CNT(x)   (((x) >> 19) & 0x3ff)
    997      1.2  matt #define  USB_OTG_HC_CH_XFER_GET_BYTES(x)     ((x) & 0x7ffff)
    998      1.2  matt 
    999      1.2  matt #endif /* _RALINK_REG_H_ */
   1000