Home | History | Annotate | Line # | Download | only in include
      1  1.3     matt /* $Id: ar5315reg.h,v 1.3 2011/07/07 05:06:44 matt Exp $ */
      2  1.1  gdamore /*
      3  1.1  gdamore  * Copyright (c) 2006 Urbana-Champaign Independent Media Center.
      4  1.1  gdamore  * Copyright (c) 2006 Garrett D'Amore.
      5  1.1  gdamore  * All rights reserved.
      6  1.1  gdamore  *
      7  1.1  gdamore  * This code was written by Garrett D'Amore for the Champaign-Urbana
      8  1.1  gdamore  * Community Wireless Network Project.
      9  1.1  gdamore  *
     10  1.1  gdamore  * Redistribution and use in source and binary forms, with or
     11  1.1  gdamore  * without modification, are permitted provided that the following
     12  1.1  gdamore  * conditions are met:
     13  1.1  gdamore  * 1. Redistributions of source code must retain the above copyright
     14  1.1  gdamore  *    notice, this list of conditions and the following disclaimer.
     15  1.1  gdamore  * 2. Redistributions in binary form must reproduce the above
     16  1.1  gdamore  *    copyright notice, this list of conditions and the following
     17  1.1  gdamore  *    disclaimer in the documentation and/or other materials provided
     18  1.1  gdamore  *    with the distribution.
     19  1.1  gdamore  * 3. All advertising materials mentioning features or use of this
     20  1.1  gdamore  *    software must display the following acknowledgements:
     21  1.1  gdamore  *      This product includes software developed by the Urbana-Champaign
     22  1.1  gdamore  *      Independent Media Center.
     23  1.1  gdamore  *	This product includes software developed by Garrett D'Amore.
     24  1.1  gdamore  * 4. Urbana-Champaign Independent Media Center's name and Garrett
     25  1.1  gdamore  *    D'Amore's name may not be used to endorse or promote products
     26  1.1  gdamore  *    derived from this software without specific prior written permission.
     27  1.1  gdamore  *
     28  1.1  gdamore  * THIS SOFTWARE IS PROVIDED BY THE URBANA-CHAMPAIGN INDEPENDENT
     29  1.1  gdamore  * MEDIA CENTER AND GARRETT D'AMORE ``AS IS'' AND ANY EXPRESS OR
     30  1.1  gdamore  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     31  1.1  gdamore  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     32  1.1  gdamore  * ARE DISCLAIMED.  IN NO EVENT SHALL THE URBANA-CHAMPAIGN INDEPENDENT
     33  1.1  gdamore  * MEDIA CENTER OR GARRETT D'AMORE BE LIABLE FOR ANY DIRECT, INDIRECT,
     34  1.1  gdamore  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     35  1.1  gdamore  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     36  1.1  gdamore  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     37  1.1  gdamore  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     38  1.1  gdamore  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     39  1.1  gdamore  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     40  1.1  gdamore  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     41  1.1  gdamore  */
     42  1.1  gdamore 
     43  1.1  gdamore #ifndef	_MIPS_ATHEROS_AR5315REG_H_
     44  1.1  gdamore #define	_MIPS_ATHEROS_AR5315REG_H_
     45  1.1  gdamore 
     46  1.1  gdamore #define	AR5315_MEM0_BASE		0x00000000	/* sdram */
     47  1.1  gdamore #define	AR5315_MEM1_BASE		0x08000000	/* spi flash */
     48  1.1  gdamore #define	AR5315_WLAN_BASE		0x10000000
     49  1.1  gdamore #define	AR5315_PCI_BASE			0x10100000
     50  1.1  gdamore #define	AR5315_SDRAMCTL_BASE		0x10300000
     51  1.1  gdamore #define	AR5315_LOCAL_BASE		0x10400000	/* local bus */
     52  1.1  gdamore #define	AR5315_ENET_BASE		0x10500000
     53  1.1  gdamore #define	AR5315_SYSREG_BASE		0x11000000
     54  1.1  gdamore #define	AR5315_UART_BASE		0x11100000
     55  1.1  gdamore #define	AR5315_SPI_BASE			0x11300000	/* spi flash */
     56  1.1  gdamore #define	AR5315_BOOTROM_BASE		0x1FC00000	/* boot rom */
     57  1.1  gdamore #define	AR5315_CONFIG_BASE		0x087D0000	/* flash start */
     58  1.1  gdamore #define	AR5315_CONFIG_END		0x087FF000	/* flash end */
     59  1.1  gdamore #define	AR5315_RADIO_END		0x1FFFF000	/* radio end */
     60  1.1  gdamore 
     61  1.1  gdamore #if 0
     62  1.1  gdamore #define	AR5315_PCIEXT_BASE		0x80000000	/* pci external */
     63  1.1  gdamore #define	AR5315_RAM2_BASE		0xc0000000
     64  1.1  gdamore #define	AR5315_RAM3_BASE		0xe0000000
     65  1.1  gdamore #endif
     66  1.1  gdamore 
     67  1.1  gdamore /*
     68  1.1  gdamore  * SYSREG registers  -- offset relative to AR531X_SYSREG_BASE
     69  1.1  gdamore  */
     70  1.1  gdamore #define	AR5315_SYSREG_COLDRESET		0x0000
     71  1.1  gdamore #define	AR5315_SYSREG_RESETCTL		0x0004
     72  1.1  gdamore #define	AR5315_SYSREG_AHB_ARB_CTL	0x0008
     73  1.1  gdamore #define	AR5315_SYSREG_ENDIAN		0x000c
     74  1.1  gdamore #define	AR5315_SYSREG_SREV		0x0014
     75  1.3     matt #define	AR5315_SYSREG_MISC_INTSTAT	0x0020
     76  1.3     matt #define	AR5315_SYSREG_MISC_INTMASK	0x0024
     77  1.1  gdamore #define	AR5315_SYSREG_GISR		0x0028
     78  1.1  gdamore #define	AR5315_SYSREG_WDOG_TIMER	0x0038
     79  1.1  gdamore #define	AR5315_SYSREG_WDOG_CTL		0x003c
     80  1.1  gdamore #define	AR5315_SYSREG_AHB_ERR0		0x0050
     81  1.1  gdamore #define	AR5315_SYSREG_AHB_ERR1		0x0054
     82  1.1  gdamore #define	AR5315_SYSREG_AHB_ERR2		0x0058
     83  1.1  gdamore #define	AR5315_SYSREG_AHB_ERR3		0x005c
     84  1.1  gdamore #define	AR5315_SYSREG_AHB_ERR4		0x0060
     85  1.1  gdamore #define	AR5315_SYSREG_PLLC_CTL		0x0064
     86  1.1  gdamore #define	AR5315_SYSREG_PLLV_CTL		0x0068
     87  1.1  gdamore #define	AR5315_SYSREG_CPUCLK		0x006c
     88  1.1  gdamore #define	AR5315_SYSREG_AMBACLK		0x0070
     89  1.1  gdamore 
     90  1.1  gdamore /* Cold resets (AR5315_SYSREG_COLDRESET) */
     91  1.1  gdamore #define	AR5315_COLD_AHB				0x00000001
     92  1.1  gdamore #define	AR5315_COLD_APB				0x00000002
     93  1.1  gdamore #define	AR5315_COLD_CPU				0x00000004
     94  1.1  gdamore #define	AR5315_COLD_CPU_WARM			0x00000008
     95  1.1  gdamore 
     96  1.1  gdamore /* Resets (AR5315_SYSREG_RESETCTL) */
     97  1.1  gdamore #define	AR5315_RESET_WARM_WLAN0_MAC		0x00000001
     98  1.1  gdamore #define	AR5315_RESET_WARM_WLAN0_BB		0x00000002
     99  1.1  gdamore #define	AR5315_RESET_MPEGTS			0x00000004	/* MPEG-TS */
    100  1.1  gdamore #define	AR5315_RESET_PCIDMA			0x00000008	/* PCI dma */
    101  1.1  gdamore #define	AR5315_RESET_MEMCTL			0x00000010
    102  1.1  gdamore #define	AR5315_RESET_LOCAL			0x00000020	/* local bus */
    103  1.1  gdamore #define	AR5315_RESET_I2C			0x00000040	/* i2c */
    104  1.1  gdamore #define	AR5315_RESET_SPI			0x00000080	/* SPI */
    105  1.1  gdamore #define	AR5315_RESET_UART			0x00000100
    106  1.1  gdamore #define	AR5315_RESET_IR				0x00000200	/* infrared */
    107  1.1  gdamore #define	AR5315_RESET_PHY0			0x00000400	/* enet phy */
    108  1.1  gdamore #define	AR5315_RESET_ENET0			0x00000800
    109  1.1  gdamore 
    110  1.1  gdamore /* Watchdog control (AR5315_SYSREG_WDOG_CTL) */
    111  1.1  gdamore #define	AR5315_WDOG_CTL_IGNORE			0x0000
    112  1.1  gdamore #define	AR5315_WDOG_CTL_NMI			0x0001
    113  1.1  gdamore #define	AR5315_WDOG_CTL_RESET			0x0002
    114  1.1  gdamore 
    115  1.1  gdamore /* AR5315 AHB arbitration control (AR5315_SYSREG_AHB_ARB_CTL) */
    116  1.1  gdamore #define	AR5315_ARB_CPU				0x00001
    117  1.1  gdamore #define	AR5315_ARB_WLAN				0x00002
    118  1.1  gdamore #define	AR5315_ARB_MPEGTS			0x00004
    119  1.1  gdamore #define	AR5315_ARB_LOCAL			0x00008
    120  1.1  gdamore #define	AR5315_ARB_PCI				0x00010
    121  1.1  gdamore #define	AR5315_ARB_ENET				0x00020
    122  1.1  gdamore #define	AR5315_ARB_RETRY			0x00100
    123  1.1  gdamore 
    124  1.1  gdamore /* AR5315 endianness control (AR5315_SYSREG_ENDIAN) */
    125  1.1  gdamore #define	AR5315_ENDIAN_AHB			0x00001
    126  1.1  gdamore #define	AR5315_ENDIAN_WLAN			0x00002
    127  1.1  gdamore #define	AR5315_ENDIAN_MPEGTS			0x00004
    128  1.1  gdamore #define	AR5315_ENDIAN_PCI			0x00008
    129  1.1  gdamore #define	AR5315_ENDIAN_MEMCTL			0x00010
    130  1.1  gdamore #define	AR5315_ENDIAN_LOCAL			0x00020
    131  1.1  gdamore #define	AR5315_ENDIAN_ENET			0x00040
    132  1.1  gdamore #define	AR5315_ENDIAN_MERGE			0x00200
    133  1.1  gdamore #define	AR5315_ENDIAN_CPU			0x00400
    134  1.1  gdamore #define	AR5315_ENDIAN_PCIAHB			0x00800
    135  1.1  gdamore #define	AR5315_ENDIAN_PCIAHB_BRIDGE		0x01000
    136  1.1  gdamore #define	AR5315_ENDIAN_SPI			0x08000
    137  1.1  gdamore #define	AR5315_ENDIAN_CPU_DRAM			0x10000
    138  1.1  gdamore #define	AR5315_ENDIAN_CPU_PCI			0x20000
    139  1.1  gdamore #define	AR5315_ENDIAN_CPU_MMR			0x40000
    140  1.1  gdamore 
    141  1.1  gdamore /* AR5315 AHB error bits */
    142  1.1  gdamore #define	AR5315_AHB_ERROR_DET			1	/* error detected */
    143  1.1  gdamore #define	AR5315_AHB_ERROR_OVR			2	/* AHB overflow */
    144  1.1  gdamore #define	AR5315_AHB_ERROR_WDT			4	/* wdt (not hresp) */
    145  1.1  gdamore 
    146  1.1  gdamore /* AR5315 clocks */
    147  1.1  gdamore #define	AR5315_PLLC_REF_DIV(reg)		((reg) & 0x3)
    148  1.1  gdamore #define	AR5315_PLLC_FB_DIV(reg)			(((reg) & 0x7c) >> 2)
    149  1.1  gdamore #define	AR5315_PLLC_DIV_2(reg)			(((reg) & 0x80) >> 7)
    150  1.1  gdamore #define	AR5315_PLLC_CLKC(reg)			(((reg) & 0x1c000) >> 14)
    151  1.1  gdamore #define	AR5315_PLLC_CLKM(reg)			(((reg) & 0x700000) >> 20)
    152  1.1  gdamore 
    153  1.1  gdamore #define	AR5315_CLOCKCTL_SELECT(reg)		((reg) & 0x3)
    154  1.1  gdamore #define	AR5315_CLOCKCTL_DIV(reg)		(((reg) & 0xc) >> 2)
    155  1.1  gdamore 
    156  1.1  gdamore /*
    157  1.1  gdamore  * SDRAMCTL registers  -- offset relative to SDRAMCTL
    158  1.1  gdamore  */
    159  1.2  gdamore #define	AR5315_SDRAMCTL_MEM_CFG			0x0000
    160  1.3     matt #define	AR5315_MEM_CFG_DATA_WIDTH		__BITS(13,14)
    161  1.3     matt #define	AR5315_MEM_CFG_COL_WIDTH		__BITS(9,12)
    162  1.3     matt #define	AR5315_MEM_CFG_ROW_WIDTH		__BITS(5,8)
    163  1.1  gdamore 
    164  1.1  gdamore /* memory config 1 bits */
    165  1.3     matt #define	AR531X_MEM_CFG1_BANK0		__BITS(8,10)
    166  1.3     matt #define	AR531X_MEM_CFG1_BANK1		__BITS(12,14)
    167  1.1  gdamore 
    168  1.1  gdamore /*
    169  1.1  gdamore  * PCI configuration stuff.  I don't pretend to fully understand these
    170  1.1  gdamore  * registers, they seem to be magic numbers in the Linux code.
    171  1.1  gdamore  */
    172  1.1  gdamore #define	AR5315_PCI_MAC_RC			0x4000
    173  1.1  gdamore #define	AR5315_PCI_MAC_SCR			0x4004
    174  1.1  gdamore #define	AR5315_PCI_MAC_INTPEND			0x4008
    175  1.1  gdamore #define	AR5315_PCI_MAC_SFR			0x400c
    176  1.1  gdamore #define	AR5315_PCI_MAC_PCICFG			0x4010
    177  1.1  gdamore #define	AR5315_PCI_MAC_SREV			0x4020
    178  1.1  gdamore 
    179  1.1  gdamore #define	PCI_MAC_RC_MAC				0x1
    180  1.1  gdamore #define	PCI_MAC_RC_BB				0x2
    181  1.1  gdamore 
    182  1.1  gdamore #define	PCI_MAC_SCR_SLM_MASK			0x00030000
    183  1.1  gdamore #define	PCI_MAC_SCR_SLM_FWAKE			0x00000000
    184  1.1  gdamore #define	PCI_MAC_SCR_SLM_FSLEEP			0x00010000
    185  1.1  gdamore #define	PCI_MAC_SCR_SLM_NORMAL			0x00020000
    186  1.1  gdamore 
    187  1.3     matt #define PCI_MAC_PCICFG_SPWR_DN			0x00010000
    188  1.1  gdamore 
    189  1.1  gdamore /* IRQS */
    190  1.1  gdamore #define	AR5315_CPU_IRQ_MISC			0
    191  1.1  gdamore #define	AR5315_CPU_IRQ_WLAN			1
    192  1.1  gdamore #define	AR5315_CPU_IRQ_ENET			2
    193  1.1  gdamore 
    194  1.1  gdamore #define	AR5315_MISC_IRQ_UART			0
    195  1.1  gdamore #define	AR5315_MISC_IRQ_I2C			1
    196  1.1  gdamore #define	AR5315_MISC_IRQ_SPI			2
    197  1.1  gdamore #define	AR5315_MISC_IRQ_AHBE			3
    198  1.1  gdamore #define	AR5315_MISC_IRQ_AHPE			4
    199  1.1  gdamore #define	AR5315_MISC_IRQ_TIMER			5
    200  1.1  gdamore #define	AR5315_MISC_IRQ_GPIO			6
    201  1.1  gdamore #define	AR5315_MISC_IRQ_WDOG			7
    202  1.1  gdamore #define	AR5315_MISC_IRQ_IR			8
    203  1.1  gdamore 
    204  1.1  gdamore #endif	/* _MIPS_ATHEROS_AR531XREG_H_ */
    205