Home | History | Annotate | Line # | Download | only in include
      1  1.2  matt /* $NetBSD: ar9344reg.h,v 1.2 2011/07/10 23:13:23 matt Exp $ */
      2  1.1  matt 
      3  1.1  matt /*-
      4  1.1  matt  * Copyright (c) 2010 The NetBSD Foundation, Inc.
      5  1.1  matt  * All rights reserved.
      6  1.1  matt  *
      7  1.1  matt  * This code is derived from software contributed to The NetBSD Foundation
      8  1.1  matt  * by Matt Thomas of 3am Software Foundry.
      9  1.1  matt  *
     10  1.1  matt  * Redistribution and use in source and binary forms, with or without
     11  1.1  matt  * modification, are permitted provided that the following conditions
     12  1.1  matt  * are met:
     13  1.1  matt  * 1. Redistributions of source code must retain the above copyright
     14  1.1  matt  *    notice, this list of conditions and the following disclaimer.
     15  1.1  matt  * 2. Redistributions in binary form must reproduce the above copyright
     16  1.1  matt  *    notice, this list of conditions and the following disclaimer in the
     17  1.1  matt  *    documentation and/or other materials provided with the distribution.
     18  1.1  matt  *
     19  1.1  matt  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     20  1.1  matt  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     21  1.1  matt  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     22  1.1  matt  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     23  1.1  matt  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     24  1.1  matt  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     25  1.1  matt  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     26  1.1  matt  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     27  1.1  matt  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28  1.1  matt  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29  1.1  matt  * POSSIBILITY OF SUCH DAMAGE.
     30  1.1  matt  */
     31  1.1  matt 
     32  1.1  matt #ifndef	_MIPS_ATHEROS_AR9344REG_H_
     33  1.1  matt #define	_MIPS_ATHEROS_AR9344REG_H_
     34  1.1  matt 
     35  1.1  matt #define	AR9344_MEM0_BASE		0x00000000	/* sdram */
     36  1.1  matt #define	AR9344_MEM1_BASE		0x08000000	/* sdram/flash */
     37  1.1  matt #define	AR9344_MEM3_BASE		0x10000000	/* flash */
     38  1.1  matt #define	AR7100_PCI_BASE			0x17001000
     39  1.1  matt #define	ARCHIP_DDR_BASE			0x18000000
     40  1.1  matt #define	AR9344_UART0_BASE		0x18020000	/* low speed */
     41  1.1  matt #define	AR7100_UART_BASE		0x18020000	/* low speed */
     42  1.1  matt #define	AR9344_USB_CONFIG_BASE		0x18030000
     43  1.1  matt #define	AR9344_GPIO_BASE		0x18040000
     44  1.1  matt #define	ARCHIP_PLL_BASE			0x18050000
     45  1.1  matt #define	ARCHIP_RESET_BASE		0x18060000
     46  1.1  matt #define	AR9344_GMAC_BASE		0x18070000
     47  1.1  matt #define	AR7100_MII_BASE			0x18070000
     48  1.1  matt #define	AR9344_GMAC0_INGRESS_BASE	0x18080000
     49  1.1  matt #define	AR7100_GMAC0_BASE		0x18090000
     50  1.1  matt #define	AR9344_MBOX_BASE		0x180A0000
     51  1.1  matt #define	AR7100_GMAC1_BASE		0x180A0000
     52  1.1  matt #define	AR9344_SLIC_BASE		0x180A9000
     53  1.1  matt #define	AR9344_STEREO_BASE		0x180B0000
     54  1.1  matt #define	AR9344_MDIO_BASE		0x180B8000
     55  1.2  matt #define	AR9344_PCIE_RC_BASE		0x180C0000
     56  1.2  matt #define	AR9344_PCIE_RC_BASE2		0x180F0000
     57  1.1  matt #define	AR9344_WDMA_BASE		0x18100000
     58  1.1  matt #define	AR9344_RTC_BASE			0x18107000
     59  1.1  matt #define	AR9344_UART1_BASE		0x18150000	/* high speed */
     60  1.1  matt #define	AR9344_GMAC0_BASE		0x19000000
     61  1.1  matt #define	AR9344_GMAC1_BASE		0x1A000000
     62  1.1  matt #define	AR9344_USB_BASE			0x1B000000
     63  1.1  matt #define	AR7100_EHCI_BASE		0x1B000000
     64  1.1  matt #define	AR9344_NAND_BASE		0x1B000200
     65  1.1  matt #define	AR7100_OHCI_BASE		0x1C000000
     66  1.1  matt #define	AR7100_SPI_BASE			0x1F000000
     67  1.1  matt #define	AR9344_SPI_BASE			0x1FFF0000
     68  1.1  matt 
     69  1.1  matt /*
     70  1.1  matt  * PLL registers -- offset relative to AR9344_PLL_BASE
     71  1.1  matt  */
     72  1.1  matt #define	ARCHIP_PLL_CPU_PLL_CONFIG		0x0000
     73  1.1  matt #define	ARCHIP_PLL_DDR_PLL_CONFIG		0x0004
     74  1.1  matt #define	ARCHIP_PLL_CPU_DDR_CLOCK_CONTROL	0x0008
     75  1.1  matt 
     76  1.1  matt #define	AR9344_PLL_PCIE_PLL_CONFIG		0x0010
     77  1.1  matt #define	AR9344_PLL_PCIE_PLL_DITHER_DIV_MAX	0x0014
     78  1.1  matt #define	AR9344_PLL_PCIE_PLL_DITHER_DIV_MIN	0x0018
     79  1.1  matt #define	AR9344_PLL_PCIE_PLL_DITHER_STEP		0x001c
     80  1.1  matt #define	AR9344_PLL_SWITCH_CLOCK_SPARE		0x0024
     81  1.1  matt #define	AR9344_PLL_CURRENT_PCIE_PLL_DITHER	0x0028
     82  1.1  matt #define	AR9344_PLL_ETH_XMII_CONTROL		0x002c
     83  1.1  matt #define	AR9344_PLL_AUDIO_PLL_CONFIG		0x0030
     84  1.1  matt #define	AR9344_PLL_AUDIO_PLL_MODULATION		0x0034
     85  1.1  matt #define	AR9344_PLL_AUDIO_PLL_MOD_STEP		0x0038
     86  1.1  matt #define	AR9344_PLL_CURRENT_AUDIO_PLL_MODULATION	0x003c
     87  1.1  matt #define	AR9344_PLL_DDR_PLL_DITHER		0x0044
     88  1.1  matt #define	AR9344_PLL_CPU_PLL_DITHER		0x0048
     89  1.1  matt 
     90  1.1  matt #define	AR9344_CPU_PLL_CONFIG_UPDATING		__BIT(31)
     91  1.1  matt #define	AR9344_CPU_PLL_CONFIG_PLLPWD		__BIT(30)
     92  1.1  matt #define	AR9344_CPU_PLL_CONFIG_OUTDIV		__BITS(19,21)
     93  1.1  matt #define	AR9344_CPU_PLL_CONFIG_RANGE		__BITS(18,17)
     94  1.1  matt #define	AR9344_CPU_PLL_CONFIG_REFDIV		__BITS(12,16)
     95  1.1  matt #define	AR9344_CPU_PLL_CONFIG_NINT		__BITS(6,11)
     96  1.1  matt #define	AR9344_CPU_PLL_CONFIG_NFRAC		__BITS(0,5)
     97  1.1  matt 
     98  1.1  matt #define	AR7100_CPU_PLL_SW_UPDATE		__BIT(31)
     99  1.1  matt #define	AR7100_PLL_LOCKED			__BIT(30)
    100  1.1  matt #define	AR7100_CPU_PLL_AHB_DIV			__BITS(22,20)
    101  1.1  matt #define	AR7100_CPU_PLL_DDR_DIV_SEL		__BITS(19,18)
    102  1.1  matt #define	AR7100_CPU_PLL_CPU_DIV_SEL		__BITS(17,16)
    103  1.1  matt #define	AR7100_PLL_PLL_LOOP_BW			__BITS(15,12)
    104  1.1  matt #define	AR7100_PLL_PLL_DIV_IN			__BITS(11,10)
    105  1.1  matt #define	AR7100_PLL_PLL_DIV_OUT			__BITS(9,8)
    106  1.1  matt #define	AR7100_PLL_PLL_FB			__BITS(7,3)
    107  1.1  matt #define	AR7100_CPU_PLL_PLL_BYPASS		__BIT(1)
    108  1.1  matt #define	AR7100_PLL_PLL_POWER_DOWN		__BIT(0)
    109  1.1  matt 
    110  1.1  matt #define	AR9344_DDR_PLL_CONFIG_UPDATING		__BIT(31)
    111  1.1  matt #define	AR9344_DDR_PLL_CONFIG_PLLPWD		__BIT(30)
    112  1.1  matt #define	AR9344_DDR_PLL_CONFIG_OUTDIV		__BITS(23,25)
    113  1.1  matt #define	AR9344_DDR_PLL_CONFIG_RANGE		__BITS(21,22)
    114  1.1  matt #define	AR9344_DDR_PLL_CONFIG_REFDIV		__BITS(16,20)
    115  1.1  matt #define	AR9344_DDR_PLL_CONFIG_NINT		__BITS(10,15)
    116  1.1  matt #define	AR9344_DDR_PLL_CONFIG_NFRAC		__BITS(0,9)
    117  1.1  matt 
    118  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_AHBCLK_FROM_DDRPLL	__BIT(24)
    119  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_CPU_RESET_EN_BP_DEASRT	__BIT(23)
    120  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_CPU_RESET_EN_BP_ASRT	__BIT(22)
    121  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_DDRCLK_FROM_DDRPLL	__BIT(21)
    122  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_CPUCLK_FROM_CPUPLL	__BIT(20)
    123  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_AHB_POST_DIV	__BITS(15,19)
    124  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_DDR_POST_DIV	__BITS(10,14)
    125  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_CPU_POST_DIV	__BITS(5,9)
    126  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_AHB_PLL_BYPASS	__BIT(4)
    127  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_DDR_PLL_BYPASS	__BIT(3)
    128  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_CPU_PLL_BYPASS	__BIT(2)
    129  1.1  matt #define AR9344_CPU_DDR_CLOCK_CONTROL_RESET_SWITCH	__BIT(1)
    130  1.1  matt 
    131  1.1  matt /*
    132  1.1  matt  * RESET registers  -- offset relative to ARCHIP_RESET_BASE
    133  1.1  matt  */
    134  1.1  matt #define	ARCHIP_RESET_TIMER		0x0000
    135  1.1  matt #define	ARCHIP_RESET_TIMER_RELOAD	0x0004
    136  1.1  matt #define	ARCHIP_RESET_WDOG_CTL		0x0008
    137  1.1  matt #define	ARCHIP_RESET_WDOG_TIMER		0x000c
    138  1.1  matt #define	ARCHIP_RESET_MISC_INTSTAT	0x0010
    139  1.1  matt #define	ARCHIP_RESET_MISC_INTMASK	0x0014
    140  1.1  matt #define	AR9344_RESET_INTSTAT		0x0018
    141  1.1  matt #define	AR7100_RESET_PCI_INTSTAT	0x0018
    142  1.1  matt #define	AR9344_RESET_RESETCTL		0x001c
    143  1.1  matt #define	AR7100_RESET_PCI_INTMASK	0x001c
    144  1.1  matt #define	AR7100_RESET_INTSTAT		0x0020
    145  1.1  matt #define	AR7100_RESET_RESETCTL		0x0024
    146  1.1  matt #define	ARCHIP_RESET_REVISION		0x0090
    147  1.1  matt #define	AR9344_RESET_WMAC_INTSTAT	0x00AC
    148  1.1  matt #define	AR9344_RESET_BOOTSTRAP		0x00B0
    149  1.1  matt #define	AR9344_RESET_MISC2		0x00BC
    150  1.1  matt 
    151  1.1  matt /* WDOG_CTL watchdog control bits */
    152  1.1  matt #define	ARCHIP_WDOG_CTL_LAST			__BIT(31)
    153  1.1  matt #define	ARCHIP_WDOG_CTL_IGNORE			0x00000000
    154  1.1  matt #define	ARCHIP_WDOG_CTL_INT			0x00000001
    155  1.1  matt #define	ARCHIP_WDOG_CTL_NMI			0x00000002
    156  1.1  matt #define	ARCHIP_WDOG_CTL_RESET			0x00000003
    157  1.1  matt 
    158  1.1  matt /* Resets */
    159  1.1  matt #define	AR9344_RESETCTL_I2S_RESET			__BIT(0)
    160  1.1  matt #define	AR7100_RESETCTL_PCI_CORE_RESET			__BIT(0)
    161  1.1  matt #define	AR9344_RESETCTL_MBOX_RESET			__BIT(1)
    162  1.1  matt #define	AR7100_RESETCTL_PCI_BUS_RESET			__BIT(1)
    163  1.1  matt #define	AR9344_RESETCTL_LUT_RESET			__BIT(2)
    164  1.1  matt #define	AR9344_RESETCTL_USB_PHY_SUSPEND_OVERRIDE	__BIT(3)
    165  1.1  matt #define	ARCHIP_RESETCTL_USB_PHY_RESET			__BIT(4)
    166  1.1  matt #define	ARCHIP_RESETCTL_USB_HOST_RESET			__BIT(5)
    167  1.1  matt #define	AR9344_RESETCTL_PCIE_RESET			__BIT(6)
    168  1.1  matt #define	AR7100_RESETCTL_USB_OHCI_DLL_RESET		__BIT(6)
    169  1.1  matt #define	AR9344_RESETCTL_PCIE_PHY_RESET			__BIT(7)
    170  1.1  matt #define	AR9344_RESETCTL_ETH_SWITCH_RESET		__BIT(8)
    171  1.1  matt #define	AR7100_RESETCTL_GMAC0_PHY_RESET			__BIT(8)
    172  1.1  matt #define	ARCHIP_RESETCTL_GMAC0_MAC_RESET			__BIT(9)
    173  1.1  matt #define	AR9344_RESETCTL_HOST_DMA_INT			__BIT(10)
    174  1.1  matt #define	AR9344_RESETCTL_USB_PHY_ARESET			__BIT(11)
    175  1.1  matt #define	AR9344_RESETCTL_ETH_SWITCH_ARESET		__BIT(12)
    176  1.1  matt #define	AR7100_RESETCTL_GMAC1_PHY_RESET			__BIT(12)
    177  1.1  matt #define	ARCHIP_RESETCTL_GMAC1_MAC_RESET			__BIT(13)
    178  1.1  matt #define	AR9344_RESETCTL_NANDF_RESET			__BIT(14)
    179  1.1  matt #define	AR9344_RESETCTL_USB_PHY_PLL_PWD_EXT		__BIT(15)
    180  1.1  matt #define	ARCHIP_RESETCTL_DDR_RESET			__BIT(16)
    181  1.1  matt #define	AR9344_RESETCTL_UART1_RESET			__BIT(17)
    182  1.1  matt #define	AR7100_RESETCTL_I2S_RESET			__BIT(17)
    183  1.1  matt #define	AR9344_RESETCTL_PCIEEP_RESET			__BIT(18)
    184  1.1  matt #define	AR7100_RESETCTL_SLIC_RESET			__BIT(18)
    185  1.1  matt #define	AR9344_RESETCTL_HOST_RESET_INT			__BIT(19)
    186  1.1  matt #define	AR7100_RESETCTL_DMA_RESET			__BIT(19)
    187  1.1  matt #define	ARCHIP_RESETCTL_CPU_COLD_RESET			__BIT(20)
    188  1.1  matt #define	ARCHIP_RESETCTL_CPU_NMI				__BIT(21)
    189  1.1  matt #define	AR9344_RESETCTL_RESET_GMAC0_MDIO		__BIT(22)
    190  1.1  matt #define	AR9344_RESETCTL_RESET_GMAC1_MDIO		__BIT(23)
    191  1.1  matt #define	ARCHIP_RESETCTL_FULL_CHIP_RESET			__BIT(24)
    192  1.1  matt #define	AR9344_RESETCTL_CHKSUM_ACC_RESET		__BIT(25)
    193  1.1  matt #define	AR9344_RESETCTL_PCIEEP_RST_INT			__BIT(26)
    194  1.1  matt #define	AR9344_RESETCTL_RTC_RESET			__BIT(27)
    195  1.1  matt #define	ARCHIP_RESETCTL_EXTERNAL_RESET			__BIT(28)
    196  1.1  matt #define	AR9344_RESETCTL_HDMA_RESET			__BIT(29)
    197  1.1  matt #define	AR9344_RESETCTL_SLIC_RESET			__BIT(30)
    198  1.1  matt #define	AR9344_RESETCTL_HOST_RESET			__BIT(31)
    199  1.1  matt 
    200  1.1  matt /* Revision ids */
    201  1.1  matt #define	AR9344_REVISION_WMAC_MAJOR(x)		(((x) >> 12) & 0xf)
    202  1.1  matt #define	AR9344_REVISION_WMAC_MINOR(x)		(((x) >> 8) & 0xf)
    203  1.1  matt #define	AR9344_REVISION_WMAC(x)			(((x) >> 8) & 0xff)
    204  1.1  matt #define	AR9344_REVISION_MAJOR(x)		(((x) >> 4) & 0xf)
    205  1.1  matt #define	AR9344_REVISION_MINOR(x)		(((x) >> 0) & 0xf)
    206  1.1  matt #define	AR9344_REVISION_CHIPID(x)		(((x) >> 0) & 0xff)
    207  1.1  matt 
    208  1.1  matt #define	AR5311_REVISION_MAJ			0x1
    209  1.1  matt #define	AR7240_REVISION_MAJ			0x4
    210  1.1  matt #define	AR2313_REVISION_MAJ			0x5
    211  1.1  matt #define	AR7100_REVISION_MAJ			0xA
    212  1.1  matt #define	AR5315_REVISION_MAJ			0xB
    213  1.1  matt #define	AR9344_REVISION_MAJ			0xC
    214  1.1  matt 
    215  1.1  matt #define	ARCHIP_AR5312				0x42
    216  1.1  matt #define	ARCHIP_AR7130				0xA0
    217  1.1  matt #define	ARCHIP_AR7141				0xA1
    218  1.1  matt #define	ARCHIP_AR7161				0xA2
    219  1.1  matt #define	ARCHIP_AR9344				0xC0
    220  1.1  matt #define	ARCHIP_AR9103				0xB0
    221  1.1  matt #define	ARCHIP_AR5315				0xB0
    222  1.1  matt 
    223  1.1  matt #define	ARWMAC_AR5312				0x52
    224  1.1  matt #define	ARWMAC_AR5312_2				0x57
    225  1.1  matt #define	ARWMAC_AR2313				0x58
    226  1.1  matt #define	ARWMAC_AR2315LITE			0x86
    227  1.1  matt #define	ARWMAC_AR2315				0x87
    228  1.1  matt #define	ARWMAC_AR2317				0x91
    229  1.1  matt 
    230  1.1  matt #define	AR9344_BOOTSTRAP_SOFTWARE_OPTION_8	__BIT(31)
    231  1.1  matt #define	AR9344_BOOTSTRAP_SOFTWARE_OPTION_7	__BIT(30)
    232  1.1  matt #define	AR9344_BOOTSTRAP_DDR_WIDTH		__BIT(29)
    233  1.1  matt #define	AR9344_BOOTSTRAP_SOFTWARE_OPTION_5	__BIT(28)
    234  1.1  matt #define	AR9344_BOOTSTRAP_SOFTWARE_OPTION_4	__BIT(27)
    235  1.1  matt #define	AR9344_BOOTSTRAP_SOFTWARE_OPTION_3	__BIT(26)
    236  1.1  matt #define	AR9344_BOOTSTRAP_SOFTWARE_OPTION_2	__BIT(25)
    237  1.1  matt #define	AR9344_BOOTSTRAP_SOFTWARE_OPTION_1	__BIT(24)
    238  1.1  matt #define	AR9344_BOOTSTRAP_USB_MODE		__BIT(7)
    239  1.1  matt #define	AR9344_BOOTSTRAP_EJTAG_MODE		__BIT(5)
    240  1.1  matt #define	AR9344_BOOTSTRAP_REF_CLK_40		__BIT(4)
    241  1.1  matt #define	AR9344_BOOTSTRAP_BOOT_SELECT		__BIT(2)
    242  1.1  matt #define	AR9344_BOOTSTRAP_SDRAM_DISABLE		__BIT(1)
    243  1.1  matt #define	AR9344_BOOTSTRAP_DDR_SELECT		__BIT(0)
    244  1.1  matt 
    245  1.1  matt /*
    246  1.1  matt  * DDR registers  -- offset relative to ARCHIP_DDR_BASE
    247  1.1  matt  */
    248  1.1  matt #define	AR9344_DDR_CONFIG			0x0000
    249  1.1  matt #define	AR9344_DDR_CONFIG2			0x0004
    250  1.1  matt #define	AR9344_DDR_MODE_REGISTER		0x0008
    251  1.1  matt #define	AR9344_DDR_EXTENDED_MOD_REGISTER	0x000c
    252  1.1  matt #define	AR9344_DDR_CONTROL			0x0010
    253  1.1  matt #define	AR9344_DDR_REFRESH			0x0014
    254  1.1  matt #define	AR9344_DDR_RD_DATA_THIS_CYCLE		0x0018
    255  1.1  matt #define	AR9344_DDR_TAP_CONTROL_0		0x001c
    256  1.1  matt #define	AR9344_DDR_TAP_CONTROL_1		0x0020
    257  1.1  matt #define	AR9344_DDR_TAP_CONTROL_2		0x0024
    258  1.1  matt #define	AR9344_DDR_TAP_CONTROL_3		0x0028
    259  1.1  matt #define	AR9344_DDR_WB_FLUSH_GMAC0		0x009c
    260  1.1  matt #define	AR9344_DDR_WB_FLUSH_GMAC1		0x00a0
    261  1.1  matt #define	AR9344_DDR_WB_FLUSH_USB			0x00a4
    262  1.1  matt #define	AR9344_DDR_WB_FLUSH_PCIE		0x00a8
    263  1.1  matt #define	AR9344_DDR_WB_FLUSH_WMAC		0x00ac
    264  1.1  matt #define	AR9344_DDR_WB_FLUSH_SRC1		0x00b0
    265  1.1  matt #define	AR9344_DDR_WB_FLUSH_SRC2		0x00b4
    266  1.1  matt #define	AR9344_DDR_DDR2_CONFIG			0x00b8
    267  1.1  matt #define	AR9344_DDR_EMR2				0x00bc
    268  1.1  matt #define	AR9344_DDR_EMR3				0x00c0
    269  1.1  matt #define	AR9344_AHB_MASTER_TIMEOUT_MAX		0x00cc
    270  1.1  matt #define	AR9344_AHB_MASTER_TIMEOUT_CURRENT	0x00d0
    271  1.1  matt #define	AR9344_AHB_MASTER_TIMEOUT_SLAVE_ADDR	0x00d4
    272  1.1  matt #define	AR9344_DDR_CTL_CONFIG			0x0108
    273  1.1  matt #define	AR9344_DDR_SF_CTL			0x0110
    274  1.1  matt #define	AR9344_SF_TIMER				0x0114
    275  1.1  matt #define	AR9344_WMAC_FLUSH			0x0128
    276  1.1  matt 
    277  1.1  matt /* memory config 1 bits */
    278  1.1  matt #define	AR9344_MEM_CFG1_BANK0		__BITS(8,10)
    279  1.1  matt #define	AR9344_MEM_CFG1_BANK1		__BITS(12,14)
    280  1.1  matt 
    281  1.1  matt #define	ARCHIP_REG_DDR_WB_FLUSH_GMAC0		0x009c
    282  1.1  matt #define	ARCHIP_REG_DDR_WB_FLUSH_GMAC1		0x00a0
    283  1.1  matt #define	ARCHIP_REG_DDR_WB_FLUSH_USB		0x00a4
    284  1.1  matt #define	AR9344_REG_DDR_WB_FLUSH_PCIERC		0x00a8
    285  1.1  matt #define	AR7100_REG_DDR_WB_FLUSH_PCI		0x00a8
    286  1.1  matt #define	AR9344_REG_DDR_WB_FLUSH_WMAC		0x00ac
    287  1.1  matt #define	AR9344_REG_DDR_WB_FLUSH_PCIEEP		0x00b0
    288  1.1  matt #define	AR9344_REG_DDR_WB_FLUSH_CSUM		0x00b4
    289  1.1  matt 
    290  1.1  matt #define	AR7100_PCI_WINDOW_0			0x7c
    291  1.1  matt #define	AR7100_PCI_WINDOW_1			0x80
    292  1.1  matt #define	AR7100_PCI_WINDOW_2			0x84
    293  1.1  matt #define	AR7100_PCI_WINDOW_3			0x88
    294  1.1  matt #define	AR7100_PCI_WINDOW_4			0x8c
    295  1.1  matt #define	AR7100_PCI_WINDOW_5			0x90
    296  1.1  matt #define	AR7100_PCI_WINDOW_6			0x94
    297  1.1  matt #define	AR7100_PCI_WINDOW_7			0x98
    298  1.1  matt 
    299  1.1  matt #define	AR7100_PCI_LCL_CFG_CMD		0x00
    300  1.1  matt #define	AR7100_PCI_LCL_CFG_CMD_BE	__BITS(20,23)
    301  1.1  matt #define	AR7100_PCI_LCL_CFG_CMD_CMD	__BITS(16,19)
    302  1.1  matt #define	AR7100_PCI_LCL_CFG_CMD_READ	__SHIFTIN(0, AR7100_PCI_LCL_CFG_CMD_CMD)
    303  1.1  matt #define	AR7100_PCI_LCL_CFG_CMD_WRITE	__SHIFTIN(1, AR7100_PCI_LCL_CFG_CMD_CMD)
    304  1.1  matt #define	AR7100_PCI_LCL_CFG_CMD_ADDRESS	__BITS(0,11)
    305  1.1  matt #define	AR7100_PCI_LCL_CFG_WDATA	0x04
    306  1.1  matt #define	AR7100_PCI_LCL_CFG_RDATA	0x08
    307  1.1  matt #define	AR7100_PCI_CFG_ADDR		0x0c
    308  1.1  matt #define	AR7100_PCI_CFG_CMD		0x10
    309  1.1  matt #define	AR7100_PCI_CFG_CMD_BE		__BITS(4,7)
    310  1.1  matt #define	AR7100_PCI_CFG_CMD_CMD		__BITS(0,3)
    311  1.1  matt #define	AR7100_PCI_CFG_WDATA		0x14
    312  1.1  matt #define	AR7100_PCI_CFG_RDATA		0x18
    313  1.1  matt #define	AR7100_PCI_ERROR		0x1c
    314  1.1  matt #define	AR7100_PCI_ERROR_PARITY		__BIT(0)
    315  1.1  matt #define	AR7100_PCI_ERROR_FATAL		__BIT(1)
    316  1.1  matt #define	AR7100_PCI_ERROR_ADDR		0x20
    317  1.1  matt #define	AR7100_AHB_ERROR		0x24
    318  1.1  matt #define	AR7100_AHB_ERROR_ADDR		0x28
    319  1.1  matt 
    320  1.1  matt #define	AR9344_SPI_FUNCTION_SELECT			0x0000
    321  1.1  matt #define	AR9344_SPI_FUNCTION_SLEECT_FUNCTION_SELECT	__BIT(0)
    322  1.1  matt #define	AR9344_SPI_CONTROL				0x0004
    323  1.1  matt #define	AR9344_SPI_CONTROL_TSHSL_CNT			__BITS(8,13)
    324  1.1  matt #define	AR9344_SPI_CONTROL_SPI_RELOCATE			__BIT(7)
    325  1.1  matt #define	AR9344_SPI_CONTROL_REMAP_DISABLE		__BIT(6)
    326  1.1  matt #define	AR9344_SPI_CONTROL_CLOCK_DIVIDER		__BITS(0,5)
    327  1.1  matt #define	AR9344_SPI_IO_CONTROL				0x0008
    328  1.1  matt #define	AR9344_SPI_IO_CONTROL_IO_CS2_DISABLE		__BIT(18)
    329  1.1  matt #define	AR9344_SPI_IO_CONTROL_IO_CS1_DISABLE		__BIT(17)
    330  1.1  matt #define	AR9344_SPI_IO_CONTROL_IO_CS0_DISABLE		__BIT(16)
    331  1.1  matt #define	AR9344_SPI_IO_CONTROL_IO_CLK			__BIT(8)
    332  1.1  matt #define	AR9344_SPI_IO_CONTROL_IO_DO			__BIT(0)
    333  1.1  matt #define	AR9344_SPI_READ_DATA				0x000c
    334  1.1  matt #define	AR9344_SPI_SHIFT_DATAOUT			0x0010
    335  1.1  matt #define	AR9344_SPI_SHIFT_CNT				0x0014
    336  1.1  matt #define	AR9344_SPI_SHIFT_CNT_SHIFT_EN			__BIT(31)
    337  1.1  matt #define	AR9344_SPI_SHIFT_CNT_SHIFT_CHNL_2		__BIT(30)
    338  1.1  matt #define	AR9344_SPI_SHIFT_CNT_SHIFT_CHNL_1		__BIT(29)
    339  1.1  matt #define	AR9344_SPI_SHIFT_CNT_SHIFT_CHNL_0		__BIT(28)
    340  1.1  matt #define	AR9344_SPI_SHIFT_CNT_SHIFT_CLKOUT		__BIT(27)
    341  1.1  matt #define	AR9344_SPI_SHIFT_CNT_TERMINATE			__BIT(26)
    342  1.1  matt #define	AR9344_SPI_SHIFT_CNT_SHIFT_COUNT		__BITS(0,6)
    343  1.1  matt #define	AR9344_SPI_SHIFT_DATAIN				0x0018
    344  1.1  matt 
    345  1.1  matt /* helper macro for accessing system registers without bus space */
    346  1.1  matt #define	REGVAL(x)	*((volatile uint32_t *)(MIPS_PHYS_TO_KSEG1((x))))
    347  1.1  matt #define	GETRESETREG(x)		REGVAL((x) + ARCHIP_RESET_BASE)
    348  1.1  matt #define	PUTRESETREG(x,v)	(REGVAL((x) + ARCHIP_RESET_BASE)) = (v)
    349  1.1  matt #define	GETPLLREG(x)		REGVAL((x) + ARCHIP_PLL_BASE)
    350  1.1  matt #define	PUTPLLREG(x,v)		(REGVAL((x) + ARCHIP_PLL_BASE)) = (v)
    351  1.1  matt #define	GETDDRREG(x)		REGVAL((x) + ARCHIP_DDR_BASE)
    352  1.1  matt #define	PUTDDRREG(x,v)		(REGVAL((x) + ARCHIP_DDR_BASE)) = (v)
    353  1.1  matt 
    354  1.1  matt /*
    355  1.1  matt  * Interrupts.
    356  1.1  matt  */
    357  1.1  matt #define	AR9344_CPU_IRQ_PCIERC		0
    358  1.1  matt #define	AR7100_CPU_IRQ_PCI		0
    359  1.1  matt #define	ARCHIP_CPU_IRQ_USB		1
    360  1.1  matt #define	ARCHIP_CPU_IRQ_GMAC0		2
    361  1.1  matt #define	ARCHIP_CPU_IRQ_GMAC1		3
    362  1.1  matt #define	ARCHIP_CPU_IRQ_MISC		4
    363  1.1  matt #define	ARCHIP_CPU_IRQ_TIMER		5
    364  1.1  matt #define	AR9344_CPU_IRQ_PCIEEP_HSTDMA	6
    365  1.1  matt 
    366  1.1  matt #define	AR9344_MISC_IRQ_TIMER		0
    367  1.1  matt #define	AR9344_MISC_IRQ_ERROR		1
    368  1.1  matt #define	AR9344_MISC_IRQ_GPIO		2
    369  1.1  matt #define	AR9344_MISC_IRQ_UART0		3
    370  1.1  matt #define	AR9344_MISC_IRQ_WDOG		4
    371  1.1  matt #define	AR9344_MISC_IRQ_PC		5
    372  1.1  matt #define	AR9344_MISC_IRQ_UART1		6
    373  1.1  matt #define	AR9344_MISC_IRQ_MBOX		7
    374  1.1  matt #define	AR9344_MISC_IRQ_TIMER2		8
    375  1.1  matt #define	AR9344_MISC_IRQ_TIMER3		9
    376  1.1  matt #define	AR9344_MISC_IRQ_TIMER4		10
    377  1.1  matt #define	AR9344_MISC_IRQ_DDR_PERF	11
    378  1.1  matt #define	AR9344_MISC_IRQ_SW_MAC		12
    379  1.1  matt #define	AR9344_MISC_IRQ_LUTS_AGER	13
    380  1.1  matt #define	AR9344_MISC_IRQ_RES14		14
    381  1.1  matt #define	AR9344_MISC_IRQ_CHKSUM_ACC	15
    382  1.1  matt #define	AR9344_MISC_IRQ_DDR_SF_ENTRY	16
    383  1.1  matt #define	AR9344_MISC_IRQ_DDR_SF_EXIT	17
    384  1.1  matt #define	AR9344_MISC_IRQ_DDR_ACT_IN_SF	18
    385  1.1  matt #define	AR9344_MISC_IRQ_SLIC		19
    386  1.1  matt #define	AR9344_MISC_IRQ_WOW		20
    387  1.1  matt #define	AR9344_MISC_IRQ_NANDF		21
    388  1.1  matt 
    389  1.1  matt #define	AR7100_MISC_IRQ_TIMER		0
    390  1.1  matt #define	AR7100_MISC_IRQ_ERROR		1
    391  1.1  matt #define	AR7100_MISC_IRQ_GPIO		2
    392  1.1  matt #define	AR7100_MISC_IRQ_UART0		3
    393  1.1  matt #define	AR7100_MISC_IRQ_WDOG		4
    394  1.1  matt #define	AR7100_MISC_IRQ_PC		5
    395  1.1  matt #define	AR7100_MISC_IRQ_OHCI		6
    396  1.1  matt #define	AR7100_MISC_IRQ_DMA		7
    397  1.1  matt 
    398  1.1  matt #define	AR9344_WMAC_IRQ_WMAC_MISC_INT	0
    399  1.1  matt #define	AR9344_WMAC_IRQ_WMAC_TX_INT	1
    400  1.1  matt #define	AR9344_WMAC_IRQ_WMAC_RXLP_INT	2
    401  1.1  matt #define	AR9344_WMAC_IRQ_WMAC_RXHP_INT	3
    402  1.1  matt #define	AR9344_WMAC_IRQ_PCIE_RC_INT	4
    403  1.1  matt #define	AR9344_WMAC_IRQ_PCIE_RC_INT0	5
    404  1.1  matt #define	AR9344_WMAC_IRQ_PCIE_RC_INT1	6
    405  1.1  matt #define	AR9344_WMAC_IRQ_PCIE_RC_INT2	7
    406  1.1  matt #define	AR9344_WMAC_IRQ_PCIE_RC_INT3	8
    407  1.1  matt 
    408  1.1  matt #endif	/* _MIPS_ATHEROS_AR9344REG_H_ */
    409