Home | History | Annotate | Line # | Download | only in broadcom
bcm53xx_reg.h revision 1.2
      1  1.1  matt /*-
      2  1.1  matt  * Copyright (c) 2012 The NetBSD Foundation, Inc.
      3  1.1  matt  * All rights reserved.
      4  1.1  matt  *
      5  1.1  matt  * This code is derived from software contributed to The NetBSD Foundation
      6  1.1  matt  * by Matt Thomas of 3am Software Foundry.
      7  1.1  matt  *
      8  1.1  matt  * Redistribution and use in source and binary forms, with or without
      9  1.1  matt  * modification, are permitted provided that the following conditions
     10  1.1  matt  * are met:
     11  1.1  matt  * 1. Redistributions of source code must retain the above copyright
     12  1.1  matt  *    notice, this list of conditions and the following disclaimer.
     13  1.1  matt  * 2. Redistributions in binary form must reproduce the above copyright
     14  1.1  matt  *    notice, this list of conditions and the following disclaimer in the
     15  1.1  matt  *    documentation and/or other materials provided with the distribution.
     16  1.1  matt  *
     17  1.1  matt  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     18  1.1  matt  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     19  1.1  matt  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     20  1.1  matt  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     21  1.1  matt  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     22  1.1  matt  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     23  1.1  matt  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     24  1.1  matt  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     25  1.1  matt  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     26  1.1  matt  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     27  1.1  matt  * POSSIBILITY OF SUCH DAMAGE.
     28  1.1  matt  */
     29  1.1  matt 
     30  1.1  matt #ifndef _ARM_BROADCOM_BCM53XX_REG_H_
     31  1.1  matt #define _ARM_BROADCOM_BCM53XX_REG_H_
     32  1.1  matt 
     33  1.1  matt /*
     34  1.1  matt  * 0x0000_0000..0x07ff_ffff	 128MB	DDR2/3 DRAM Memory Region (dual map)
     35  1.1  matt  * 0x0800_0000..0x0fff_ffff	 128MB	PCIe 0 Address Match Region
     36  1.1  matt  * 0x1800_0000..0x180f_ffff	   1MB	Core Register Region
     37  1.1  matt  * 0x1810_0000..0x181f_ffff	   1MB	IDM Register Region
     38  1.1  matt  * 0x1900_0000..0x190f_ffff	   1MB	ARMcore (CORTEX-A9) Register Region
     39  1.1  matt  * 0x1c00_0000..0x1dff_ffff	   1MB	NAND Flash Region
     40  1.1  matt  * 0x1e00_0000..0x1dff_ffff	   1MB	Serial Flash Region
     41  1.1  matt  * 0x4000_0000..0x47ff_ffff	 128MB	PCIe 1 Address Match Region
     42  1.1  matt  * 0x4800_0000..0x4fff_ffff	 128MB	PCIe 2 Address Match Region
     43  1.1  matt  * 0x8000_0000..0xbfff_ffff	1024MB	DDR2/3 DRAM Memory Region
     44  1.1  matt  * 0xfffd_0000..0xfffe_ffff	 128KB	Internal Boot ROM Region
     45  1.1  matt  * 0xffff_0000..0xffff_043f	1088B	Internal SKU ROM Region
     46  1.1  matt  * 0xffff_1000..0xffff_1fff	   4KB	Enumeration ROM Register Region
     47  1.1  matt  */
     48  1.1  matt #define	BCM53XX_IOREG_PBASE	0x18000000
     49  1.1  matt #define	BCM53XX_IOREG_SIZE	0x00200000
     50  1.1  matt 
     51  1.1  matt #define	BCM53XX_ARMCORE_PBASE	0x19000000
     52  1.1  matt #define	BCM53XX_ARMCORE_SIZE	0x00100000
     53  1.1  matt 
     54  1.1  matt #define	BCM53XX_NAND_PBASE	0x1c000000
     55  1.1  matt #define	BCM53XX_NAND_SIZE	0x01000000
     56  1.1  matt 
     57  1.1  matt #define	BCM53XX_SPIFLASH_PBASE	0x1d000000
     58  1.1  matt #define	BCM53XX_SPIFLASH_SIZE	0x01000000
     59  1.1  matt 
     60  1.1  matt #define	BCM53XX_IO_SIZE		(BCM53XX_IOREG_SIZE + BCM53XX_ARMCORE_SIZE)
     61  1.1  matt 
     62  1.1  matt #define	BCM53XX_REF_CLK		(25*1000*1000)
     63  1.1  matt 
     64  1.1  matt #define	CCA_UART_FREQ		BCM53XX_REF_CLK
     65  1.1  matt 
     66  1.1  matt /* Chip Common A */
     67  1.1  matt #define	CCA_MISC_BASE		0x000000
     68  1.1  matt #define	CCA_MISC_SIZE		0x001000
     69  1.1  matt #define	CCA_UART0_BASE		0x000300
     70  1.1  matt #define	CCA_UART1_BASE		0x000400
     71  1.1  matt 
     72  1.1  matt /* Chip Common B */
     73  1.1  matt #define	CCB_BASE		0x000000
     74  1.1  matt #define	CCB_SIZE		0x030000
     75  1.1  matt #define	PWM_BASE		0x002000
     76  1.1  matt #define	MII_BASE		0x003000
     77  1.1  matt #define	RNG_BASE		0x004000
     78  1.1  matt #define	TIMER0_BASE		0x005000
     79  1.1  matt #define	TIMER1_BASE		0x006000
     80  1.1  matt #define	SRAB_BASE		0x007000
     81  1.1  matt #define	UART2_BASE		0x008000
     82  1.1  matt #define	SMBUS_BASE		0x009000
     83  1.1  matt 
     84  1.1  matt #define	CRU_BASE		0x00b000
     85  1.1  matt #define	DMU_BASE		0x00c000
     86  1.1  matt 
     87  1.1  matt #define	DDR_BASE		0x010000
     88  1.1  matt 
     89  1.1  matt #define	PCIE0_BASE		0x012000
     90  1.1  matt #define	PCIE1_BASE		0x013000
     91  1.1  matt #define	PCIE2_BASE		0x014000
     92  1.1  matt 
     93  1.1  matt #define SDIO_BASE		0x020000
     94  1.1  matt #define	EHCI_BASE		0x021000
     95  1.1  matt #define	OHCI_BASE		0x022000
     96  1.1  matt 
     97  1.1  matt #define	GMAC0_BASE		0x024000
     98  1.1  matt #define	GMAC1_BASE		0x025000
     99  1.1  matt #define	GMAC2_BASE		0x026000
    100  1.1  matt #define	GMAC3_BASE		0x027000
    101  1.1  matt 
    102  1.1  matt #define	IDM_BASE		0x100000
    103  1.1  matt #define	IDM_SIZE		0x100000
    104  1.1  matt 
    105  1.1  matt /* Chip Common A */
    106  1.1  matt 
    107  1.1  matt #ifdef CCA_PRIVATE
    108  1.1  matt 
    109  1.1  matt #define	MISC_CHIPID			0x000
    110  1.1  matt #define	CHIPID_REV			__BITS(19,16)
    111  1.1  matt #define	CHIPID_ID			__BITS(15,0)
    112  1.1  matt #define	ID_BCM53010			0xcf12	// 53010
    113  1.1  matt #define	ID_BCM53011			0xcf13	// 53011
    114  1.1  matt #define	ID_BCM53012			0xcf14	// 53012
    115  1.1  matt #define	ID_BCM53013			0xcf15	// 53013
    116  1.1  matt 
    117  1.1  matt #define	MISC_CAPABILITY			0x004
    118  1.1  matt #define	CAPABILITY_JTAG_PRESENT		__BIT(22)
    119  1.1  matt #define	CAPABILITY_UART_CLKSEL		__BITS(4,3)
    120  1.1  matt #define	UART_CLKSEL_REFCLK		0
    121  1.1  matt #define	UART_CLKSEL_INTCLK		1
    122  1.1  matt 					/* 2 & 3 are reserved */
    123  1.1  matt #define	CAPABILITY_BIG_ENDIAN		__BIT(2)
    124  1.1  matt #define	CAPABILITY_UART_COUNT		__BITS(1,0)
    125  1.1  matt 
    126  1.1  matt #define	MISC_CORECTL			0x008
    127  1.1  matt #define	CORECTL_UART_CLK_EN		__BIT(3)
    128  1.1  matt #define	CORECTL_GPIO_ASYNC_INT_EN	__BIT(2)
    129  1.1  matt #define	CORECTL_UART_CLK_OVERRIDE	__BIT(0)
    130  1.1  matt 
    131  1.1  matt #define	MISC_INTSTATUS			0x020
    132  1.1  matt #define	INTSTATUS_WDRESET		__BIT(31)	// WO2C
    133  1.1  matt #define	INTSTATUS_UARTINT		__BIT(6)	// RO
    134  1.1  matt #define	INTSTATUS_GPIOINT		__BIT(0)	// RO
    135  1.1  matt 
    136  1.1  matt #define	MISC_INTMASK			0x024
    137  1.1  matt #define	INTMASK_UARTINT			__BIT(6)	// 1 = enabled
    138  1.1  matt #define	INTMASK_GPIOINT			__BIT(0)	// 1 = enabled
    139  1.1  matt 
    140  1.1  matt /* Only bits [23:0] are used in the GPIO registers */
    141  1.1  matt #define	GPIO_INPUT			0x060		// RO
    142  1.1  matt #define	GPIO_OUT			0x064
    143  1.1  matt #define	GPIO_OUTEN			0x068
    144  1.1  matt #define	GPIO_INTPOLARITY		0x070		// 1 = active low
    145  1.1  matt #define	GPIO_INTMASK			0x074		// 1 = enabled (level)
    146  1.1  matt #define	GPIO_EVENT			0x078		// W1C, 1 = edge seen
    147  1.1  matt #define	GPIO_EVENT_INTMASK		0x07c		// 1 = enabled (edge)
    148  1.1  matt #define	GPIO_EVENT_INTPOLARITY		0x084		// 1 = falling
    149  1.1  matt #define	GPIO_TIMER_VAL			0x088
    150  1.1  matt #define	TIMERVAL_ONCOUNT		__BITS(31,16)
    151  1.1  matt #define	TIMERVAL_OFFCOUNT		__BITS(15,0)
    152  1.1  matt #define GPIO_TIMER_OUTMASK		0x08c
    153  1.1  matt #define GPIO_DEBUG_SEL			0x0a8
    154  1.1  matt 
    155  1.1  matt #define	MISC_WATCHDOG			0x080		// 0 disables, 1 resets
    156  1.1  matt 
    157  1.1  matt #define	MISC_CLKDIV			0x0a4
    158  1.1  matt #define	CLKDIV_JTAG_MASTER_CLKDIV	__BITS(13,9)
    159  1.1  matt #define	CLKDIV_UART_CLKDIV		__BITS(7,1)
    160  1.1  matt 
    161  1.1  matt #define	MISC_CAPABILITY2		0x0ac
    162  1.1  matt #define CAPABILITY2_GSIO_PRESENT	__BIT(1)	// SPI exists
    163  1.1  matt 
    164  1.1  matt #define	MISC_GSIOCTL			0x0e4
    165  1.1  matt #define	GSIOCTL_STARTBUSY		__BIT(31)
    166  1.1  matt #define	GSIOCTL_GSIOMODE		__BIT(30)	// 0 = SPI
    167  1.1  matt #define	GSIOCTL_ERROR			__BIT(23)
    168  1.1  matt #define	GSIOCTL_BIGENDIAN		__BIT(22)
    169  1.1  matt #define	GSIOCTL_GSIOGO			__BIT(21)
    170  1.1  matt #define	GSIOCTL_NUM_DATABYTES		__BITS(17,16)	// actual is + 1
    171  1.1  matt #define	GSIOCTL_NUM_WAITCYCLES		__BITS(15,14)	// actual is + 1
    172  1.1  matt #define	GSIOCTL_NUM_ADDRESSBYTES	__BITS(13,12)	// actual is + 1
    173  1.1  matt #define	GSIOCTL_GSIOCODE		__BITS(10,8)
    174  1.1  matt #define	GSIOCODE_OP_RD1DATA		0
    175  1.1  matt #define	GSIOCODE_OP_WRADDR_RDADDR	1
    176  1.1  matt #define	GSIOCODE_OP_WRADDR_XFRDATA	2
    177  1.1  matt #define	GSIOCODE_OP_WRADDR_WAIT_XFRDATA	3
    178  1.1  matt #define	GSIOCODE_XFRDATA		4
    179  1.1  matt #define	GSIOCTL_GSIOOP			__BITS(7,0)
    180  1.1  matt 
    181  1.1  matt #define	MISC_GSIOADDRESS		0x0e8
    182  1.1  matt #define	MISC_GSIODATA			0x0ec
    183  1.1  matt 
    184  1.1  matt #define	MISC_CLKDIV2			0x0f0
    185  1.1  matt #define	CLKDIV2_GSIODIV			__BITS(20,5)
    186  1.1  matt 
    187  1.1  matt #define	MISC_EROM_PTR_OFFSET		0x0fc
    188  1.1  matt 
    189  1.1  matt #endif /* CCA_PRIVATE */
    190  1.1  matt 
    191  1.1  matt /*
    192  1.1  matt  * UART0 & 1 use the standard 16550 register layout (normal 1 byte stride)
    193  1.1  matt  * and have 64-byte FIFOs
    194  1.1  matt  */
    195  1.1  matt 
    196  1.1  matt /* TIMER0 & 1 are implemented by the dtimer driver */
    197  1.1  matt 
    198  1.1  matt #define	TIMER_FREQ		BCM53XX_REF_CLK
    199  1.1  matt 
    200  1.1  matt #ifdef MII_PRIVATE
    201  1.1  matt #define	MII_INTERNAL		0x0038003	/* internal phy bitmask */
    202  1.1  matt #define	MIIMGT			0x000
    203  1.1  matt #define	 MIIMGT_BYP		__BIT(10)
    204  1.1  matt #define	 MIIMGT_EXT		__BIT(9)
    205  1.1  matt #define	 MIIMGT_BSY		__BIT(8)
    206  1.1  matt #define	 MIIMGT_PRE		__BIT(7)
    207  1.1  matt #define	 MIIMGT_MDCDIV		__BITS(6,0)
    208  1.1  matt #define	MIICMD			0x004
    209  1.1  matt #define  MIICMD_SB		__BITS(31,30)
    210  1.1  matt #define	  MIICMD_SB_DEF		__SHIFTIN(1, MIICMD_OP)
    211  1.1  matt #define  MIICMD_OP		__BITS(29,28)
    212  1.1  matt #define	  MIICMD_OP_RD		__SHIFTIN(2, MIICMD_OP)
    213  1.1  matt #define	  MIICMD_OP_WR		__SHIFTIN(1, MIICMD_OP)
    214  1.1  matt #define  MIICMD_PHY		__BITS(27,23)
    215  1.1  matt #define  MIICMD_REG		__BITS(22,18)
    216  1.1  matt #define  MIICMD_TA		__BITS(17,16)
    217  1.1  matt #define	  MIICMD_TA_DEF		__SHIFTIN(2, MIICMD_OP)
    218  1.1  matt #define  MIICMD_DATA		__BITS(15,0)
    219  1.1  matt 
    220  1.1  matt #define	 MIICMD_RD_DEF		(MIICMD_SB_DEF|MIICMD_OP_RD|MIICMD_TA_DEF)
    221  1.1  matt #define	 MIICMD_WR_DEF		(MIICMD_SB_DEF|MIICMD_OP_WR|MIICMD_TA_DEF)
    222  1.1  matt #define	 MIICMD__PHYREG(p,r)	(__SHIFTIN(p,MIICMD_PHY)|__SHIFTIN(r,MIICMD_REG))
    223  1.1  matt #define	 MIICMD_RD(p,r)		(MIICMD_RD_DEF|MIICMD__PHYREG((p),(r)))
    224  1.1  matt #define	 MIICMD_WR(p,r,v)	(MIICMD_WR_DEF|MIICMD__PHYREG((p),(r))|(v))
    225  1.1  matt #endif /* MII_PRIVATE */
    226  1.1  matt 
    227  1.1  matt #ifdef RNG_PRIVATE
    228  1.1  matt #define	RNG_CTRL		0x000
    229  1.1  matt #define  RNG_COMBLK2_OSC_DIS	__BITS(27,22)
    230  1.1  matt #define  RNG_COMBLK1_OSC_DIS	__BITS(21,16)
    231  1.1  matt #define  RNG_ICLK_BYP_DIV_CNT	__BITS(15,8)
    232  1.1  matt #define  RNG_JCLK_BYP_SRC	__BIT(5)
    233  1.1  matt #define  RNG_JCLK_BYP_SEL	__BIT(4)
    234  1.1  matt #define  RNG_RBG2X		__BIT(1)
    235  1.1  matt #define  RNG_RBGEN		__BIT(0)
    236  1.1  matt #define	RNG_STATUS		0x004
    237  1.1  matt #define	 RNG_VAL		__BITS(31,24)
    238  1.1  matt #define	 RNG_WARM_CNT		__BITS(19,0)
    239  1.1  matt 
    240  1.1  matt #define	RNG_DATA		0x008
    241  1.1  matt #define	RNG_FF_THRESHOLD	0x00c
    242  1.1  matt #define	RNG_INT_MASK		0x010
    243  1.1  matt #define	 RNG_INT_OFF		__BIT(0)
    244  1.1  matt #endif /* RNG_PRIVATE */
    245  1.1  matt 
    246  1.1  matt #ifdef UART2_PRIVATE
    247  1.1  matt /*
    248  1.1  matt  * UART2 (ChipCommonB) uses a 4-byte stride and 16-byte FIFO.
    249  1.1  matt  * Its frequency is the APB clock.
    250  1.1  matt  */
    251  1.1  matt #define	UART2_LPDLL		0x020
    252  1.1  matt #define	UART2_LPDLH		0x024
    253  1.1  matt #endif
    254  1.1  matt 
    255  1.1  matt #ifdef CRU_PRIVATE
    256  1.1  matt 
    257  1.1  matt #define	CRU_CONTROL		0x000
    258  1.1  matt #define	CRUCTL_QSPI_CLK_SEL	__BITS(2,1)
    259  1.1  matt #define	QSPI_CLK_25MHZ		0	// iproc_ref_clk
    260  1.1  matt #define	QSPI_CLK_50MHZ		1	// iproc_sdio_clk / 4
    261  1.1  matt #define	QSPI_CLK_31dot25MHZ	2	// iproc_clk250 / 8
    262  1.1  matt #define	QSPI_CLK_62dot5MHZ	3	// iproc_clk250 / 4
    263  1.1  matt #define	CRUCTL_SW_RESET		__BIT(0)
    264  1.1  matt 
    265  1.1  matt #define	CRU_GENPLL_CONTROL5		0x1154
    266  1.1  matt #define	GENPLL_CONTROL5_NDIV_INT	__BITS(29,20)	// = (n ? n : 1024)
    267  1.1  matt #define	GENPLL_CONTROL5_NDIV_FRAC	__BITS(19,0)	// = 1 / n
    268  1.1  matt #define	CRU_GENPLL_CONTROL6		0x1158
    269  1.1  matt #define	GENPLL_CONTROL6_PDIV		__BITS(26,24)	// = (n ? n : 8)
    270  1.1  matt #define	GENPLL_CONTROL6_CH0_MDIV	__BITS(23,16)	// = (n ? n : 256), clk_mac
    271  1.1  matt #define	GENPLL_CONTROL6_CH1_MDIV	__BITS(15,8)	// = (n ? n : 256), clk_robo
    272  1.1  matt #define	GENPLL_CONTROL6_CH2_MDIV	__BITS(7,0)	// = (n ? n : 256), clf_usb2
    273  1.1  matt #define	CRU_GENPLL_CONTROL7		0x115c
    274  1.1  matt #define	GENPLL_CONTROL7_CH3_MDIV	__BITS(23,16)	// = (n ? n : 256), clk_iproc
    275  1.1  matt 
    276  1.1  matt #define	USB2_REF_CLK			(1920*1000*1000)
    277  1.1  matt #define	CRU_USB2_CONTROL		0x1164
    278  1.1  matt #define	USB2_CONTROL_KA			__BITS(24,22)
    279  1.1  matt #define	USB2_CONTROL_KI			__BITS(31,19)
    280  1.1  matt #define	USB2_CONTROL_KP			__BITS(18,15)
    281  1.1  matt #define	USB2_CONTROL_PDIV		__BITS(14,12)	// = (n ? n : 8)
    282  1.1  matt #define	USB2_CONTROL_NDIV_INT		__BITS(11,2)	// = (n ? n : 1024)
    283  1.1  matt #define	USB2_CONTROL_PLL_PCIEUSB3_RESET	__BIT(1)	// inverted 1=normal
    284  1.1  matt #define	USB2_CONTROL_PLL_USB2_RESET	__BIT(0)	// inverted 1=normal
    285  1.1  matt 
    286  1.1  matt #define	CRU_CLKSET_KEY			0x1180
    287  1.1  matt #define	CRU_CLKSET_KEY_MAGIC		0xea68
    288  1.1  matt 
    289  1.1  matt #define	CRU_GPIO_SELECT		0x11c0 	// CRU GPIO Select
    290  1.1  matt #define CRU_GPIO_DRIVE_SEL2	0x11c4
    291  1.1  matt #define CRU_GPIO_DRIVE_SEL1	0x11c8
    292  1.1  matt #define CRU_GPIO_DRIVE_SEL0	0x11cc
    293  1.1  matt #define CRU_GPIO_INPUT_DISABLE	0x11d0
    294  1.1  matt #define CRU_GPIO_HYSTERESIS	0x11d4
    295  1.1  matt #define CRU_GPIO_SLEW_RATE	0x11d8
    296  1.1  matt #define CRU_GPIO_PULL_UP	0x11dc
    297  1.1  matt #define CRU_GPIO_PULL_DOWN	0x11e0
    298  1.1  matt 
    299  1.1  matt #define CRU_STRAPS_CONTROL	0x12a0
    300  1.1  matt #define  STRAP_BOOT_DEV		 __BITS(17,16)
    301  1.1  matt #define  STRAP_NAND_TYPE	 __BITS(15,12)
    302  1.1  matt #define  STRAP_NAND_PAGE	 __BITS(11,10)
    303  1.1  matt #define  STRAP_DDR3		 __BIT(9)
    304  1.1  matt #define  STRAP_P5_VOLT_15	 __BIT(8)
    305  1.1  matt #define  STRAP_P5_MODE		 __BITS(7,6)
    306  1.1  matt #define  STRAP_PCIE0_MODE	 __BIT(5)
    307  1.1  matt #define  STRAP_USB3_SEL		 __BIT(4)
    308  1.1  matt #define  STRAP_EX_EXTCLK	 __BIT(3)
    309  1.1  matt #define  STRAP_HW_FWDG_EN	 __BIT(2)
    310  1.1  matt #define  STRAP_LED_SERIAL_MODE	 __BIT(1)
    311  1.1  matt #define  STRAP_BISR_BYPASS_AUTOLOAD	 __BIT(0)
    312  1.1  matt 
    313  1.1  matt #endif /* CRU_PRIVATE */
    314  1.1  matt 
    315  1.1  matt #ifdef DMU_PRIVATE
    316  1.1  matt 
    317  1.1  matt #define	DMU_LCPLL_CONTROL0	0x100
    318  1.1  matt #define	DMU_LCPLL_CONTROL1	0x104
    319  1.1  matt #define	LCPLL_CONTROL1_PDIV	__BITS(30,28)	// = (n ? n : 8)
    320  1.1  matt #define	LCPLL_CONTROL1_NDIV_INT	__BITS(27,20)	// = (n ? n : 256)
    321  1.1  matt #define	LCPLL_CONTROL1_NDIV_FRAC __BITS(19,0)	// = 1 / n
    322  1.1  matt /*
    323  1.1  matt  * SYS_CLK = (1 / pdiv) * (ndiv_int + (ndiv_frac / 0x40000000)) x F(ref)
    324  1.1  matt  */
    325  1.1  matt #define	DMU_LCPLL_CONTROL2	0x108
    326  1.1  matt #define	LCPLL_CONTROL2_CH0_MDIV	__BITS(31,24)	// = (n ? n : 256), clk_pcie_ref
    327  1.1  matt #define	LCPLL_CONTROL2_CH1_MDIV	__BITS(23,16)	// = (n ? n : 256), clk_sdio
    328  1.1  matt #define	LCPLL_CONTROL2_CH2_MDIV	__BITS(15,8)	// = (n ? n : 256), clk_ddr
    329  1.1  matt #define	LCPLL_CONTROL2_CH3_MDIV	__BITS(7,0)	// = (n ? n : 256), clf_dft
    330  1.1  matt 
    331  1.1  matt #endif /* DMU_PRIVATE */
    332  1.1  matt 
    333  1.1  matt #ifdef DDR_PRIVATE
    334  1.1  matt /*
    335  1.1  matt  * DDR CTL register has such inspired names.
    336  1.1  matt  */
    337  1.1  matt #define	DDR_CTL_01		0x004
    338  1.1  matt #define	CTL_01_MAX_CHIP_SEL	__BITS(18,16)	// not documented as such
    339  1.1  matt #define	CTL_01_MAX_COL		__BITS(11,8)
    340  1.1  matt #define	CTL_01_MAX_ROW		__BITS(4,0)
    341  1.1  matt 
    342  1.1  matt #define	DDR_CTL_82		0x148
    343  1.1  matt #define	CTL_82_COL_DIFF		__BITS(26,24)
    344  1.1  matt #define	CTL_82_ROW_DIFF		__BITS(18,16)
    345  1.1  matt #define	CTL_82_BANK_DIFF	__BITS(9,8)
    346  1.1  matt #define	CTL_82_ZQCS_ROTATE	__BIT(0)
    347  1.1  matt 
    348  1.1  matt #define	DDR_CTL_86		0x158
    349  1.1  matt #define	CTL_86_CS_MAP		__BITS(27,24)
    350  1.1  matt #define	CTL_86_INHIBIT_DRAM_CMD	__BIT(16)
    351  1.1  matt #define	CTL_86_DIS_RD_INTRLV	__BIT(8)
    352  1.1  matt #define	CTL_86_NUM_QENT_ACT_DIS	__BITS(2,0)
    353  1.1  matt 
    354  1.1  matt #define	DDR_CTL_87		0x15c
    355  1.1  matt #define CTL_87_IN_ORDER_ACCEPT	__BIT(24)
    356  1.1  matt #define CTL_87_Q_FULLNESS	__BITS(18,16)
    357  1.1  matt #define CTL_87_REDUC		__BIT(8)
    358  1.1  matt #define CTL_87_BURST_ON_FLY_BIT	__BITS(3,0)
    359  1.1  matt 
    360  1.1  matt #define	DDR_PHY_CTL_PLL_STATUS	0x810
    361  1.1  matt #define	PLL_STATUS_LOCK_LOST	__BIT(26)
    362  1.1  matt #define	PLL_STATUS_MHZ		__BITS(25,14)
    363  1.1  matt #define	PLL_STATUS_CLOCKING_4X	__BIT(13)
    364  1.1  matt #define	PLL_STATUS_STATUS	__BITS(12,1)
    365  1.1  matt #define	PLL_STATUS_LOCK		__BIT(0)
    366  1.1  matt 
    367  1.1  matt #define	DDR_PHY_CTL_PLL_DIVIDERS	0x81c
    368  1.1  matt #define	PLL_DIVIDERS_POST_DIV	__BITS(13,11)
    369  1.1  matt #define	PLL_DIVIDERS_PDIV	__BITS(10,8) // 4x: (n ? n : 8), n = n - 4, 4x
    370  1.1  matt #define	PLL_DIVIDERS_NDIV	__BITS(7,0)
    371  1.1  matt 
    372  1.1  matt #endif /* DDR_PRIVATE */
    373  1.1  matt 
    374  1.1  matt #ifdef PCIE_PRIVATE
    375  1.1  matt 
    376  1.2  matt #define	PCIE_CLK_CONTROL	0x000
    377  1.2  matt 
    378  1.1  matt #define	PCIE_CFG_IND_ADDR	0x120
    379  1.1  matt #define	 CFG_IND_ADDR_FUNC	__BITS(15,13)
    380  1.1  matt #define  CFG_IND_ADDR_LAYER	__BITS(12,11)
    381  1.2  matt #define	 CFG_IND_ADDR_REG	__BITS(10,2)
    382  1.1  matt #define	PCIE_CFG_IND_DATA	0x124
    383  1.1  matt #define	PCIE_CFG_ADDR		0x1f8
    384  1.1  matt #define	 CFG_ADDR_BUS		__BITS(27,20)
    385  1.1  matt #define	 CFG_ADDR_DEV		__BITS(27,15)
    386  1.1  matt #define	 CFG_ADDR_FUNC		__BITS(14,12)
    387  1.1  matt #define	 CFG_ADDR_REG		__BITS(11,2)
    388  1.1  matt #define	 CFG_ADDR_TYPE		__BITS(1,0)
    389  1.1  matt #define	 CFG_ADDR_TYPE0		__SHIFTIN(0, CFG_ADDR_TYPE)
    390  1.1  matt #define	 CFG_ADDR_TYPE1		__SHIFTIN(1, CFG_ADDR_TYPE)
    391  1.1  matt #define	PCIE_CFG_DATA		0x1fc
    392  1.1  matt #define	PCIE_EQ_PAGE		0x200
    393  1.1  matt #define	PCIE_MSI_PAGE		0x204
    394  1.1  matt #define	PCIE_MSI_INTR_EN	0x208
    395  1.1  matt #define	PCIE_MSI_CTRL_0		0x210
    396  1.1  matt #define	PCIE_MSI_CTRL_1		0x214
    397  1.1  matt #define	PCIE_MSI_CTRL_2		0x218
    398  1.1  matt #define	PCIE_MSI_CTRL_3		0x21c
    399  1.1  matt #define	PCIE_MSI_CTRL_4		0x220
    400  1.1  matt #define	PCIE_MSI_CTRL_5		0x224
    401  1.1  matt #define PCIE_SYS_EQ_HEAD_0	0x250
    402  1.1  matt #define PCIE_SYS_EQ_TAIL_0	0x254
    403  1.1  matt #define PCIE_SYS_EQ_HEAD_1	0x258
    404  1.1  matt #define PCIE_SYS_EQ_TAIL_1	0x25c
    405  1.1  matt #define PCIE_SYS_EQ_HEAD_2	0x260
    406  1.1  matt #define PCIE_SYS_EQ_TAIL_2	0x264
    407  1.1  matt #define PCIE_SYS_EQ_HEAD_3	0x268
    408  1.1  matt #define PCIE_SYS_EQ_TAIL_3	0x26c
    409  1.1  matt #define PCIE_SYS_EQ_HEAD_4	0x270
    410  1.1  matt #define PCIE_SYS_EQ_TAIL_4	0x274
    411  1.1  matt #define PCIE_SYS_EQ_HEAD_5	0x278
    412  1.1  matt #define PCIE_SYS_EQ_TAIL_5	0x27c
    413  1.1  matt #define PCIE_SYS_RC_INTX_EN	0x330
    414  1.1  matt #define PCIE_SYS_RC_INTX_CSR	0x334
    415  1.1  matt 
    416  1.1  matt #define	PCIE_FUNC0_IMAP0_0	0xc00
    417  1.1  matt #define	PCIE_FUNC0_IMAP0_1	0xc04
    418  1.1  matt #define	PCIE_FUNC0_IMAP0_2	0xc08
    419  1.1  matt #define	PCIE_FUNC0_IMAP0_3	0xc0c
    420  1.1  matt #define	PCIE_FUNC0_IMAP0_4	0xc10
    421  1.1  matt #define	PCIE_FUNC0_IMAP0_5	0xc14
    422  1.1  matt #define	PCIE_FUNC0_IMAP0_6	0xc18
    423  1.1  matt #define	PCIE_FUNC0_IMAP0_7	0xc1c
    424  1.1  matt 
    425  1.1  matt #define	PCIE_FUNC0_IMAP1	0xc80
    426  1.1  matt #define	PCIE_FUNC1_IMAP1	0xc88
    427  1.1  matt #define	PCIE_FUNC0_IMAP2	0xcc0
    428  1.1  matt #define	PCIE_FUNC1_IMAP2	0xcc8
    429  1.1  matt 
    430  1.1  matt #define	PCIE_IARR_0_LOWER	0xd00
    431  1.1  matt #define	PCIE_IARR_0_UPPER	0xd04
    432  1.1  matt #define	PCIE_IARR_1_LOWER	0xd08
    433  1.1  matt #define	PCIE_IARR_1_UPPER	0xd0c
    434  1.1  matt #define	PCIE_IARR_2_LOWER	0xd10
    435  1.1  matt #define	PCIE_IARR_2_UPPER	0xd14
    436  1.1  matt 
    437  1.1  matt #define	PCIE_OARR_0		0xd20
    438  1.1  matt #define	PCIE_OARR_1		0xd28
    439  1.1  matt 
    440  1.1  matt #define	PCIE_OMAP_0_LOWER	0xd40
    441  1.1  matt #define	PCIE_OMAP_0_UPPER	0xd44
    442  1.1  matt #define	PCIE_OMAP_1_LOWER	0xd48
    443  1.1  matt #define	PCIE_OMAP_1_UPPER	0xd4c
    444  1.1  matt 
    445  1.1  matt #define	PCIE_FUNC1_IARR_1_SIZE	0xd58
    446  1.1  matt #define	PCIE_FUNC1_IARR_2_SIZE	0xd5c
    447  1.1  matt 
    448  1.1  matt #define PCIE_MEM_CONTROL	0xf00
    449  1.1  matt #define PCIE_MEM_ECC_ERR_LOG_0	0xf04
    450  1.1  matt #define PCIE_MEM_ECC_ERR_LOG_1	0xf08
    451  1.1  matt 
    452  1.1  matt #define	PCIE_LINK_STATUS	0xf0c
    453  1.1  matt #define  PCIE_PHYLINKUP		__BIT(3)
    454  1.1  matt #define  PCIE_DL_ACTIVE		__BIT(2)
    455  1.1  matt #define  PCIE_RX_LOS_TIMEOUT	__BIT(1)
    456  1.1  matt #define  PCIE_LINK_IN_L1	__BIT(0)
    457  1.1  matt #define	PCIE_STRAP_STATUS	0xf10
    458  1.1  matt #define  STRAP_PCIE_REPLAY_BUF_TM	__BITS(8,4)
    459  1.1  matt #define  STRAP_PCIE_USER_FOR_CE_GEN1	__BIT(3)
    460  1.1  matt #define  STRAP_PCIE_USER_FOR_CE_1LANE	__BIT(2)
    461  1.1  matt #define  STRAP_PCIE_IF_ENABLE		__BIT(1)
    462  1.1  matt #define  STRAP_PCIE_USER_RC_MODE	__BIT(0)
    463  1.1  matt #define	PCIE_RESET_STATUS	0xf14
    464  1.1  matt 
    465  1.1  matt #define	PCIE_RESET_ENABLE_IN_PCIE_LINK_DOWN	0xf18
    466  1.1  matt 
    467  1.1  matt #define	PCIE_MISC_INTR_EN	0xf1c
    468  1.1  matt #define PCIE_TX_DEBUG_CFG	0xf20
    469  1.1  matt 
    470  1.1  matt 
    471  1.1  matt // PCIE_SYS_MSI_INTR_EN
    472  1.1  matt #define	MSI_INTR_EN_EQ_5	__BIT(5)
    473  1.1  matt #define	MSI_INTR_EN_EQ_4	__BIT(4)
    474  1.1  matt #define	MSI_INTR_EN_EQ_3	__BIT(3)
    475  1.1  matt #define	MSI_INTR_EN_EQ_2	__BIT(2)
    476  1.1  matt #define	MSI_INTR_EN_EQ_1	__BIT(1)
    477  1.1  matt #define	MSI_INTR_EN_EQ_0	__BIT(0)
    478  1.1  matt 
    479  1.1  matt // PCIE_SYS_MSI_CTRL<n>
    480  1.1  matt #define	INT_N_DELAY		__BITS(9,6)
    481  1.1  matt #define	INT_N_EVENT		__BITS(1,1)
    482  1.1  matt #define	EQ_ENABLE		__BIT(0)
    483  1.1  matt 
    484  1.1  matt // PCIE_SYS_EQ_HEAD<n>
    485  1.1  matt #define	HEAD_PTR		__BITS(5,0)
    486  1.1  matt 
    487  1.1  matt // PCIE_SYS_EQ_TAIL<n>
    488  1.1  matt #define	EQ_OVERFLOW		__BIT(6)
    489  1.1  matt #define	TAIL_PTR		__BITS(5,0)
    490  1.1  matt 
    491  1.1  matt // PCIE_SYS_RC_INTRX_EN
    492  1.1  matt #define	RC_EN_INTD		__BIT(3)
    493  1.1  matt #define	RC_EN_INTC		__BIT(2)
    494  1.1  matt #define	RC_EN_INTB		__BIT(1)
    495  1.1  matt #define	RC_EN_INTA		__BIT(0)
    496  1.1  matt 
    497  1.1  matt // PCIE_SYS_RC_INTRX_CSR
    498  1.1  matt #define	RC_INTD			__BIT(3)
    499  1.1  matt #define	RC_INTC			__BIT(2)
    500  1.1  matt #define	RC_INTB			__BIT(1)
    501  1.1  matt #define	RC_INTA			__BIT(0)
    502  1.1  matt 
    503  1.1  matt // PCIE_IARR_0_LOWER / UPPER
    504  1.1  matt #define	IARR0_ADDR		__BIT(31,15)
    505  1.1  matt #define	IARR0_VALID		__BIT(0)
    506  1.1  matt 
    507  1.1  matt // PCIE_IARR_1_LOWER / UPPER
    508  1.1  matt #define	IARR1_ADDR		__BIT(31,20)
    509  1.1  matt #define	IARR1_SIZE		__BIT(7,0)
    510  1.1  matt #define	IARR0_VALID		__BIT(0)
    511  1.1  matt 
    512  1.1  matt #define	REGS_DEVICE_CAPACITY	0x04d4
    513  1.1  matt #define	REGS_LINK_CAPACITY	0x03dc
    514  1.1  matt #define	REGS_TL_CONTROL_0	0x0800
    515  1.1  matt #define	REGS_DL_STATUS		0x1048
    516  1.1  matt 
    517  1.1  matt #endif /* PCIE_PRIVATE */
    518  1.1  matt 
    519  1.1  matt #define	ARMCORE_SCU_BASE	0x20000		/* CBAR is 19020000 */
    520  1.1  matt 
    521  1.1  matt #ifdef ARMCORE_PRIVATE
    522  1.1  matt 
    523  1.1  matt #define	ARMCORE_CLK_POLICY_FREQ	0x008
    524  1.1  matt #define	CLK_POLICY_FREQ_PRIVED	__BIT(31)
    525  1.1  matt #define	CLK_POLICY_FREQ_POLICY3	__BITS(26,24)
    526  1.1  matt #define	CLK_POLICY_FREQ_POLICY2	__BITS(18,16)
    527  1.1  matt #define	CLK_POLICY_FREQ_POLICY1	__BITS(10,8)
    528  1.1  matt #define	CLK_POLICY_FREQ_POLICY0	__BITS(2,0)
    529  1.1  matt #define	CLK_POLICY_REF_CLK	0	// 25 MHZ
    530  1.1  matt #define	CLK_POLICY_SYS_CLK	1	// sys clk (200MHZ)
    531  1.1  matt #define	CLK_POLICY_ARM_PLL_CH0	6	// slow clock
    532  1.1  matt #define	CLK_POLICY_ARM_PLL_CH1	7	// fast clock
    533  1.1  matt 
    534  1.1  matt #define	ARMCORE_CLK_APB_DIV	0xa10
    535  1.1  matt #define	CLK_APB_DIV_PRIVED	__BIT(31)
    536  1.1  matt #define	CLK_APB_DIV_VALUE	__BITS(1,0)	// n = n + 1
    537  1.1  matt 
    538  1.1  matt #define	ARMCORE_CLK_APB_DIV_TRIGGER	0xa10
    539  1.1  matt #define	CLK_APB_DIV_TRIGGER_PRIVED	__BIT(31)
    540  1.1  matt #define	CLK_APB_DIV_TRIGGER_OVERRIDE	__BIT(0)
    541  1.1  matt 
    542  1.1  matt #define	ARMCORE_CLK_PLLARMA	0xc00
    543  1.1  matt #define	CLK_PLLARMA_PDIV	__BITS(26,24)	// = (n ? n : 16(?))
    544  1.1  matt #define	CLK_PLLARMA_NDIV_INT	__BITS(17,8)	// = (n ? n : 1024)
    545  1.1  matt 
    546  1.1  matt #define	ARMCORE_CLK_PLLARMB	0xc04
    547  1.1  matt #define	CLK_PLLARMB_NDIV_FRAC	__BITS(19,0)	// = 1 / n
    548  1.1  matt 
    549  1.1  matt #endif
    550  1.1  matt 
    551  1.1  matt #ifdef IDM_PRIVATE
    552  1.1  matt 
    553  1.1  matt #define	IDM_ARMCORE_M0_BASE		0x00000
    554  1.1  matt #define	IDM_PCIE_M0_BASE		0x01000
    555  1.1  matt #define	IDM_PCIE_M1_BASE		0x02000
    556  1.1  matt #define	IDM_PCIE_M2_BASE		0x03000
    557  1.1  matt #define	IDM_USB3_BASE			0x05000
    558  1.1  matt #define	IDM_ARMCORE_S1_BASE		0x06000
    559  1.1  matt #define	IDM_ARMCORE_S0_BASE		0x07000
    560  1.1  matt #define	IDM_DDR_S1_BASE			0x08000
    561  1.1  matt #define	IDM_DDR_S2_BASE			0x09000
    562  1.1  matt #define	IDM_ROM_S0_BASE			0x0d000
    563  1.1  matt #define	IDM_AMAC0_BASE			0x10000
    564  1.1  matt #define	IDM_AMAC1_BASE			0x11000
    565  1.1  matt #define	IDM_AMAC2_BASE			0x12000
    566  1.1  matt #define	IDM_AMAC3_BASE			0x13000
    567  1.1  matt #define	IDM_DMAC_M0_BASE		0x14000
    568  1.1  matt #define	IDM_USB2_BASE			0x15000
    569  1.1  matt #define	IDM_SDIO_BASE			0x16000
    570  1.1  matt #define	IDM_I2S_M0_BASE			0x17000
    571  1.1  matt #define	IDM_A9JTAG_M0_BASE		0x18000
    572  1.1  matt #define	IDM_NAND_BASE			0x1a000
    573  1.1  matt #define	IDM_QSPI_BASE			0x1b000
    574  1.1  matt #define IDM_APBX_BASE			0x21000
    575  1.1  matt 
    576  1.1  matt #define	IDM_IO_CONTROL_DIRECT		0x0408
    577  1.1  matt #define	IDM_IO_STATUS			0x0500
    578  1.1  matt #define	IDM_RESET_CONTROL		0x0800
    579  1.1  matt #define	IDM_RESET_STATUS		0x0804
    580  1.1  matt #define	IDM_INTERRUPT_STATUS		0x0a00
    581  1.1  matt 
    582  1.1  matt #define	IO_CONTROL_DIRECT_UARTCLKSEL	__BIT(17)
    583  1.1  matt 
    584  1.1  matt #define	RESET_CONTROL_RESET		__BIT(0)
    585  1.1  matt 
    586  1.1  matt #endif /* IDM_PRIVATE */
    587  1.1  matt 
    588  1.1  matt #ifdef GMAC_PRIVATE
    589  1.1  matt 
    590  1.1  matt struct gmac_txdb {
    591  1.1  matt 	uint32_t txdb_flags;
    592  1.1  matt 	uint16_t txdb_buflen;
    593  1.1  matt 	uint16_t txdb_addrext;
    594  1.1  matt 	uint32_t txdb_addrlo;
    595  1.1  matt 	uint32_t txdb_addrhi;
    596  1.1  matt };
    597  1.1  matt #define	TXDB_FLAG_SF		__BIT(31)	// Start oF Frame
    598  1.1  matt #define	TXDB_FLAG_EF		__BIT(30)	// End oF Frame
    599  1.1  matt #define	TXDB_FLAG_IC		__BIT(29)	// Interupt on Completetion
    600  1.1  matt #define	TXDB_FLAG_ET		__BIT(28)	// End Of Table
    601  1.1  matt 
    602  1.1  matt struct gmac_rxdb {
    603  1.1  matt 	uint32_t rxdb_flags;
    604  1.1  matt 	uint16_t rxdb_buflen;
    605  1.1  matt 	uint16_t rxdb_addrext;
    606  1.1  matt 	uint32_t rxdb_addrlo;
    607  1.1  matt 	uint32_t rxdb_addrhi;
    608  1.1  matt };
    609  1.1  matt #define	RXDB_FLAG_SF		__BIT(31)	// Start oF Frame (ignored)
    610  1.1  matt #define	RXDB_FLAG_EF		__BIT(30)	// End oF Frame (ignored)
    611  1.1  matt #define	RXDB_FLAG_IC		__BIT(29)	// Interupt on Completetion
    612  1.1  matt #define	RXDB_FLAG_ET		__BIT(28)	// End Of Table
    613  1.1  matt 
    614  1.1  matt #define	RXSTS_FRAMELEN		__BITS(15,0)	// # of bytes (including padding)
    615  1.1  matt #define	RXSTS_PKTTYPE		__BITS(17,16)
    616  1.1  matt #define	RXSTS_PKTTYPE_UC	0		// Unicast
    617  1.1  matt #define	RXSTS_PKTTYPE_MC	1		// Multicast
    618  1.1  matt #define	RXSTS_PKTTYPE_BC	2		// Broadcast
    619  1.1  matt #define	RXSTS_VLAN_PRESENT	__BIT(18)
    620  1.1  matt #define	RXSTS_CRC_ERROR		__BIT(19)
    621  1.1  matt #define	RXSTS_OVERSIZED		__BIT(20)
    622  1.1  matt #define	RXSTS_CTF_HIT		__BIT(21)
    623  1.1  matt #define	RXSTS_CTF_ERROR		__BIT(22)
    624  1.1  matt #define	RXSTS_PKT_OVERFLOW	__BIT(23)
    625  1.1  matt #define	RXSTS_DESC_COUNT	__BITS(27,24)	// # of descriptors - 1
    626  1.1  matt 
    627  1.1  matt #define	GMAC_DEVCONTROL		0x000
    628  1.1  matt #define GMAC_DEVSTATUS		0x004
    629  1.1  matt #define GMAC_BISTSTATUS		0x00c
    630  1.1  matt #define GMAC_INTSTATUS		0x020
    631  1.1  matt #define GMAC_INTMASK		0x024
    632  1.1  matt #define GMAC_GPTIMER		0x028
    633  1.1  matt 
    634  1.1  matt #define GMAC_INTRCVLAZY		0x100
    635  1.1  matt #define GMAC_FLOWCNTL_TH	0x104
    636  1.1  matt #define GMAC_TXARB_WRR_TH	0x108
    637  1.1  matt #define GMAC_GMACIDLE_CNT_TH	0x10c
    638  1.1  matt 
    639  1.1  matt #define GMAC_FIFOACCESSADDR	0x120
    640  1.1  matt #define GMAC_FIFOACCESSBYTE	0x124
    641  1.1  matt #define GMAC_FIFOACCESSDATA	0x128
    642  1.1  matt 
    643  1.1  matt #define GMAC_PHYACCESS		0x180
    644  1.1  matt #define GMAC_PHYCONTROL		0x188
    645  1.1  matt #define GMAC_TXQCONTROL		0x18c
    646  1.1  matt #define GMAC_RXQCONTROL		0x190
    647  1.1  matt #define GMAC_GPIOSELECT		0x194
    648  1.1  matt #define GMAC_GPIOOUTPUTEN	0x198
    649  1.1  matt #define GMAC_TXQRXQMEMORYCONTROL	0x1a0
    650  1.1  matt #define GMAC_MEMORYECCSTATUS	0x1a4
    651  1.1  matt 
    652  1.1  matt #define GMAC_CLOCKCONTROLSTATUS	0x1e0
    653  1.1  matt #define GMAC_POWERCONTROL	0x1e8
    654  1.1  matt 
    655  1.1  matt #define GMAC_XMTCONTROL_0	0x200
    656  1.1  matt #define GMAC_XMTPTR_0		0x204
    657  1.1  matt #define GMAC_XMTADDR_LOW_0	0x208
    658  1.1  matt #define GMAC_XMTADDR_HIGH_0	0x20c
    659  1.1  matt #define GMAC_XMTSTATUS0_0	0x210
    660  1.1  matt #define GMAC_XMTSTATUS1_0	0x214
    661  1.1  matt #define GMAC_RCVCONTROL		0x220
    662  1.1  matt #define GMAC_RCVPTR		0x224
    663  1.1  matt #define GMAC_RCVADDR_LOW	0x228
    664  1.1  matt #define GMAC_RCVADDR_HIGH	0x22c
    665  1.1  matt #define GMAC_RCVSTATUS0		0x230
    666  1.1  matt #define GMAC_RCVSTATUS1		0x234
    667  1.1  matt 
    668  1.1  matt #define GMAC_TX_GD_OCTETS_LO	0x300
    669  1.1  matt 
    670  1.1  matt 
    671  1.1  matt #define	UNIMAC_IPG_HD_BPG_CNTL	0x804
    672  1.1  matt #define	UNIMAC_COMMAND_CONFIG	0x808
    673  1.1  matt #define	UNIMAC_MAC_0		0x80c		// bits 16:47 of macaddr
    674  1.1  matt #define	UNIMAC_MAC_1		0x810		// bits 0:15 of macaddr
    675  1.1  matt #define	UNIMAC_FRAME_LEN	0x814
    676  1.1  matt #define	UNIMAC_PAUSE_QUANTA	0x818
    677  1.1  matt #define	UNIMAC_TX_TS_SEQ_ID	0x83c
    678  1.1  matt #define	UNIMAC_MAC_MODE		0x844
    679  1.1  matt #define	UNIMAC_TAG_0		0x848
    680  1.1  matt #define	UNIMAC_TAG_1		0x84c
    681  1.1  matt #define	UNIMAC_RX_PAUSE_QUANTA_SCALE	0x850
    682  1.1  matt #define	UNIMAC_TX_PREAMBLE	0x854
    683  1.1  matt #define	UNIMAC_TX_IPG_LENGTH	0x85c
    684  1.1  matt #define	UNIMAC_PRF_XOFF_TIMER	0x860
    685  1.1  matt #define	UNIMAC_UMAC_EEE_CTRL	0x864
    686  1.1  matt #define	UNIMAC_MII_EEE_DELAY_ENTRY_TIMER	0x868
    687  1.1  matt #define	UNIMAC_GMII_EEE_DELAY_ENTRY_TIMER	0x86c
    688  1.1  matt #define	UNIMAC_UMAC_EEE_REF_COUNT	0x870
    689  1.1  matt #define	UNIMAC_UMAX_RX_PKT_DROP_STATUS	0x878
    690  1.1  matt 
    691  1.1  matt #define UNIMAC_UMAC_SYMMETRIC_IDLE_THRESHOLD	0x87c // RX IDLE threshold for LPI prediction
    692  1.1  matt #define UNIMAC_MII_EEE_WAKE_TIMER	0x880 // MII_EEE Wake timer
    693  1.1  matt #define UNIMAC_GMII_EEE_WAKE_TIMER	0x884 // GMII_EEE Wake timer
    694  1.1  matt #define UNIMAC_UMAC_REV_ID	0x888 // UNIMAC_REV_ID
    695  1.1  matt #define UNIMAC_MAC_PFC_TYPE	0xb00 // Programmable ethertype (GNAT 13440)
    696  1.1  matt #define UNIMAC_MAC_PFC_OPCODE	0xb04 // Programmable opcode (GNAT 13440)
    697  1.1  matt #define UNIMAC_MAC_PFC_DA_0	0xb08 // lower 32 bits of programmable DA for PPP (GNAT 13897)
    698  1.1  matt #define UNIMAC_MAC_PFC_DA_1	0xb0c // upper 16 bits of programmable DA for PPP (GNAT 13897)
    699  1.1  matt #define UNIMAC_MACSEC_CNTRL	0xb14 // Miscellaneous control for MACSEC (GNAT 11599,11600,12078,12198)
    700  1.1  matt #define UNIMAC_TS_STATUS_CNTRL	0xb18 // Timestamp control/status
    701  1.1  matt #define UNIMAC_TX_TS_DATA	0xb1c // Transmit Timestamp data
    702  1.1  matt #define UNIMAC_PAUSE_CONTROL	0xb30 // PAUSE frame timer control register
    703  1.1  matt #define UNIMAC_FLUSH_CONTROL	0xb34 // Flush enable control register
    704  1.1  matt #define UNIMAC_RXFIFO_STAT	0xb38 // RXFIFO status register
    705  1.1  matt #define UNIMAC_TXFIFO_STAT	0xb3c // TXFIFO status register
    706  1.1  matt #define UNIMAC_MAC_PFC_CTRL	0xb40 // PPP control register
    707  1.1  matt #define UNIMAC_MAC_PFC_REFRESH_CTRL	0xb44 // PPP refresh control register
    708  1.1  matt 
    709  1.1  matt #endif /* GMAC_PRIVATE */
    710  1.1  matt 
    711  1.1  matt #endif /* _ARM_BROADCOM_BCM53XX_REG_H_ */
    712