Home | History | Annotate | Line # | Download | only in ralink
ralink_reg.h revision 1.4
      1  1.4   oki /*	$NetBSD: ralink_reg.h,v 1.4 2012/02/12 01:51:52 oki 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.4   oki #if defined(RT3050) || defined(RT3052)
    131  1.4   oki #define	SYSCTL_CFG0_INIC_EE_SDRAM 	__BIT(29)
    132  1.4   oki #define	SYSCTL_CFG0_INIC_8MB_SDRAM 	__BIT(28)
    133  1.4   oki #define	SYSCTL_CFG0_GE0_MODE		__BITS(24,25)
    134  1.4   oki #define	SYSCTL_CFG0_BYPASS_PLL		__BIT(21)
    135  1.4   oki #define	SYSCTL_CFG0_BE			__BIT(20)
    136  1.4   oki #define	SYSCTL_CFG0_CPU_CLK_SEL 	__BIT(18)
    137  1.4   oki #define	SYSCTL_CFG0_BOOT_FROM		__BITS(16,17)
    138  1.4   oki #define	SYSCTL_CFG0_TEST_CODE		__BITS(8,15)
    139  1.4   oki #define	SYSCTL_CFG0_SRAM_CS_MODE	__BITS(2,3)
    140  1.4   oki #define	SYSCTL_CFG0_SDRAM_CLK_DRV	__BIT(0)
    141  1.4   oki #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.4   oki #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