1*cde9b937SSascha Wildner /*-
2*cde9b937SSascha Wildner  * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
3*cde9b937SSascha Wildner  * All rights reserved.
4*cde9b937SSascha Wildner  *
5*cde9b937SSascha Wildner  * Redistribution and use in source and binary forms, with or without
6*cde9b937SSascha Wildner  * modification, are permitted provided that the following conditions
7*cde9b937SSascha Wildner  * are met:
8*cde9b937SSascha Wildner  * 1. Redistributions of source code must retain the above copyright
9*cde9b937SSascha Wildner  *    notice, this list of conditions and the following disclaimer,
10*cde9b937SSascha Wildner  *    without modification.
11*cde9b937SSascha Wildner  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
12*cde9b937SSascha Wildner  *    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13*cde9b937SSascha Wildner  *    redistribution must be conditioned upon including a substantially
14*cde9b937SSascha Wildner  *    similar Disclaimer requirement for further binary redistribution.
15*cde9b937SSascha Wildner  *
16*cde9b937SSascha Wildner  * NO WARRANTY
17*cde9b937SSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18*cde9b937SSascha Wildner  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19*cde9b937SSascha Wildner  * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
20*cde9b937SSascha Wildner  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21*cde9b937SSascha Wildner  * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
22*cde9b937SSascha Wildner  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23*cde9b937SSascha Wildner  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24*cde9b937SSascha Wildner  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25*cde9b937SSascha Wildner  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26*cde9b937SSascha Wildner  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27*cde9b937SSascha Wildner  * THE POSSIBILITY OF SUCH DAMAGES.
28*cde9b937SSascha Wildner  *
29*cde9b937SSascha Wildner  * $FreeBSD: src/tools/tools/ath/common/dumpregs_5210.c,v 1.1 2009/03/11 17:46:01 sam Exp $
30*cde9b937SSascha Wildner  */
31*cde9b937SSascha Wildner #include "diag.h"
32*cde9b937SSascha Wildner 
33*cde9b937SSascha Wildner #include "ah.h"
34*cde9b937SSascha Wildner #include "ah_internal.h"
35*cde9b937SSascha Wildner #include "ar5210/ar5210reg.h"
36*cde9b937SSascha Wildner #include "ar5210/ar5210phy.h"
37*cde9b937SSascha Wildner 
38*cde9b937SSascha Wildner #include "dumpregs.h"
39*cde9b937SSascha Wildner 
40*cde9b937SSascha Wildner #define	N(a)	(sizeof(a) / sizeof(a[0]))
41*cde9b937SSascha Wildner 
42*cde9b937SSascha Wildner static struct dumpreg ar5210regs[] = {
43*cde9b937SSascha Wildner     DEFBASIC(AR_TXDP0,		"TXDP0"),
44*cde9b937SSascha Wildner     DEFBASIC(AR_TXDP1,		"TXDP1"),
45*cde9b937SSascha Wildner     DEFBASICfmt(AR_CR,		"CR",		AR_CR_BITS),
46*cde9b937SSascha Wildner     DEFBASIC(AR_RXDP,		"RXDP"),
47*cde9b937SSascha Wildner     DEFBASICfmt(AR_CFG,		"CFG",		AR_CFG_BITS),
48*cde9b937SSascha Wildner     /* NB: read clears pending interrupts */
49*cde9b937SSascha Wildner     DEFVOIDfmt(AR_ISR,		"ISR",		AR_ISR_BITS),
50*cde9b937SSascha Wildner     DEFBASICfmt(AR_IMR,		"IMR",		AR_IMR_BITS),
51*cde9b937SSascha Wildner     DEFBASICfmt(AR_IER,		"IER",		AR_IER_BITS),
52*cde9b937SSascha Wildner     DEFBASICfmt(AR_BCR,		"BCR",		AR_BCR_BITS),
53*cde9b937SSascha Wildner     DEFBASICfmt(AR_BSR,		"BSR",		AR_BSR_BITS),
54*cde9b937SSascha Wildner     DEFBASICfmt(AR_TXCFG,	"TXCFG",	AR_TXCFG_BITS),
55*cde9b937SSascha Wildner     DEFBASIC(AR_RXCFG,		"RXCFG"),
56*cde9b937SSascha Wildner     DEFBASIC(AR_MIBC,		"MIBC"),
57*cde9b937SSascha Wildner     DEFBASIC(AR_TOPS,		"TOPS"),
58*cde9b937SSascha Wildner     DEFBASIC(AR_RXNOFRM,	"RXNOFR"),
59*cde9b937SSascha Wildner     DEFBASIC(AR_TXNOFRM,	"TXNOFR"),
60*cde9b937SSascha Wildner     DEFBASIC(AR_RPGTO,		"RPGTO"),
61*cde9b937SSascha Wildner     DEFBASIC(AR_RFCNT,		"RFCNT"),
62*cde9b937SSascha Wildner     DEFBASIC(AR_MISC,		"MISC"),
63*cde9b937SSascha Wildner     DEFBASICfmt(AR_RC,		"RC",		AR_RC_BITS),
64*cde9b937SSascha Wildner     DEFBASICfmt(AR_SCR,		"SCR",		AR_SCR_BITS),
65*cde9b937SSascha Wildner     DEFBASICfmt(AR_INTPEND,	"INTPEND",	AR_INTPEND_BITS),
66*cde9b937SSascha Wildner     DEFBASIC(AR_SFR,		"SFR"),
67*cde9b937SSascha Wildner     DEFBASICfmt(AR_PCICFG,	"PCICFG",	AR_PCICFG_BITS),
68*cde9b937SSascha Wildner     DEFBASIC(AR_GPIOCR,		"GPIOCR"),
69*cde9b937SSascha Wildner     DEFVOID(AR_GPIODO,		"GPIODO"),
70*cde9b937SSascha Wildner     DEFVOID(AR_GPIODI,		"GPIODI"),
71*cde9b937SSascha Wildner     DEFBASIC(AR_SREV,		"SREV"),
72*cde9b937SSascha Wildner     DEFBASIC(AR_STA_ID0,	"STA_ID0"),
73*cde9b937SSascha Wildner     DEFBASICfmt(AR_STA_ID1,	"STA_ID1",	AR_STA_ID1_BITS),
74*cde9b937SSascha Wildner     DEFBASIC(AR_BSS_ID0,	"BSS_ID0"),
75*cde9b937SSascha Wildner     DEFBASIC(AR_BSS_ID1,	"BSS_ID1"),
76*cde9b937SSascha Wildner     DEFBASIC(AR_SLOT_TIME,	"SLOTTIME"),
77*cde9b937SSascha Wildner     DEFBASIC(AR_TIME_OUT,	"TIME_OUT"),
78*cde9b937SSascha Wildner     DEFBASIC(AR_RSSI_THR,	"RSSI_THR"),
79*cde9b937SSascha Wildner     DEFBASIC(AR_RETRY_LMT,	"RETRY_LM"),
80*cde9b937SSascha Wildner     DEFBASIC(AR_USEC,		"USEC"),
81*cde9b937SSascha Wildner     DEFBASICfmt(AR_BEACON,		"BEACON",	AR_BEACON_BITS),
82*cde9b937SSascha Wildner     DEFBASIC(AR_CFP_PERIOD,	"CFP_PER"),
83*cde9b937SSascha Wildner     DEFBASIC(AR_TIMER0,		"TIMER0"),
84*cde9b937SSascha Wildner     DEFBASIC(AR_TIMER1,		"TIMER1"),
85*cde9b937SSascha Wildner     DEFBASIC(AR_TIMER2,		"TIMER2"),
86*cde9b937SSascha Wildner     DEFBASIC(AR_TIMER3,		"TIMER3"),
87*cde9b937SSascha Wildner     DEFBASIC(AR_IFS0,		"IFS0"),
88*cde9b937SSascha Wildner     DEFBASIC(AR_IFS1,		"IFS1"	),
89*cde9b937SSascha Wildner     DEFBASIC(AR_CFP_DUR,	"CFP_DUR"),
90*cde9b937SSascha Wildner     DEFBASICfmt(AR_RX_FILTER,	"RXFILTER",	AR_BEACON_BITS),
91*cde9b937SSascha Wildner     DEFBASIC(AR_MCAST_FIL0,	"MCAST_0"),
92*cde9b937SSascha Wildner     DEFBASIC(AR_MCAST_FIL1,	"MCAST_1"),
93*cde9b937SSascha Wildner     DEFBASIC(AR_TX_MASK0,	"TX_MASK0"),
94*cde9b937SSascha Wildner     DEFBASIC(AR_TX_MASK1,	"TX_MASK1"),
95*cde9b937SSascha Wildner     DEFVOID(AR_CLR_TMASK,	"CLR_TMASK"),
96*cde9b937SSascha Wildner     DEFBASIC(AR_TRIG_LEV,	"TRIG_LEV"),
97*cde9b937SSascha Wildner     DEFBASICfmt(AR_DIAG_SW,	"DIAG_SW",	AR_DIAG_SW_BITS),
98*cde9b937SSascha Wildner     DEFBASIC(AR_TSF_L32,	"TSF_L32"),
99*cde9b937SSascha Wildner     DEFBASIC(AR_TSF_U32,	"TSF_U32"),
100*cde9b937SSascha Wildner     DEFBASIC(AR_LAST_TSTP,	"LAST_TST"),
101*cde9b937SSascha Wildner     DEFBASIC(AR_RETRY_CNT,	"RETRYCNT"),
102*cde9b937SSascha Wildner     DEFBASIC(AR_BACKOFF,	"BACKOFF"),
103*cde9b937SSascha Wildner     DEFBASIC(AR_NAV,		"NAV"),
104*cde9b937SSascha Wildner     DEFBASIC(AR_RTS_OK,		"RTS_OK"),
105*cde9b937SSascha Wildner     DEFBASIC(AR_RTS_FAIL,	"RTS_FAIL"),
106*cde9b937SSascha Wildner     DEFBASIC(AR_ACK_FAIL,	"ACK_FAIL"),
107*cde9b937SSascha Wildner     DEFBASIC(AR_FCS_FAIL,	"FCS_FAIL"),
108*cde9b937SSascha Wildner     DEFBASIC(AR_BEACON_CNT,	"BEAC_CNT"),
109*cde9b937SSascha Wildner 
110*cde9b937SSascha Wildner     DEFVOIDfmt(AR_PHY_FRCTL,	"PHY_FRCTL",	AR_PHY_FRCTL_BITS),
111*cde9b937SSascha Wildner     DEFVOIDfmt(AR_PHY_AGC,	"PHY_AGC",	AR_PHY_AGC_BITS),
112*cde9b937SSascha Wildner     DEFVOID(AR_PHY_CHIPID,	"PHY_CHIPID"),
113*cde9b937SSascha Wildner     DEFVOIDfmt(AR_PHY_ACTIVE,	"PHY_ACTIVE",	AR_PHY_ACTIVE_BITS),
114*cde9b937SSascha Wildner     DEFVOIDfmt(AR_PHY_AGCCTL,	"PHY_AGCCTL",	AR_PHY_AGCCTL_BITS),
115*cde9b937SSascha Wildner };
116*cde9b937SSascha Wildner 
117*cde9b937SSascha Wildner static __constructor void
118*cde9b937SSascha Wildner ar5210_ctor(void)
119*cde9b937SSascha Wildner {
120*cde9b937SSascha Wildner #define	MAC5210	SREV(1,0), SREV(2,0)
121*cde9b937SSascha Wildner 	register_regs(ar5210regs, N(ar5210regs), MAC5210, PHYANY);
122*cde9b937SSascha Wildner 	register_keycache(64, MAC5210, PHYANY);
123*cde9b937SSascha Wildner 
124*cde9b937SSascha Wildner 	register_range(0x9800, 0x9840, DUMP_BASEBAND, MAC5210, PHYANY);
125*cde9b937SSascha Wildner }
126