Home | History | Annotate | Download | only in rtw
      1 /*
      2  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
      3  * Use is subject to license terms.
      4  */
      5 
      6 /*
      7  * Copyright (c) 2004 David Young.  All rights reserved.
      8  *
      9  * This code was written by David Young.
     10  *
     11  * Redistribution and use in source and binary forms, with or without
     12  * modification, are permitted provided that the following conditions
     13  * are met:
     14  * 1. Redistributions of source code must retain the above copyright
     15  *    notice, this list of conditions and the following disclaimer.
     16  * 2. Redistributions in binary form must reproduce the above copyright
     17  *    notice, this list of conditions and the following disclaimer in the
     18  *    documentation and/or other materials provided with the distribution.
     19  * 3. Neither the name of the author nor the names of any co-contributors
     20  *    may be used to endorse or promote products derived from this software
     21  *    without specific prior written permission.
     22  *
     23  * THIS SOFTWARE IS PROVIDED BY David Young ``AS IS'' AND ANY
     24  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     25  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
     26  * PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL David
     27  * Young BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     28  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
     29  * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     30  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     31  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     32  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     33  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
     34  * OF SUCH DAMAGE.
     35  */
     36 #ifndef _MAX2820REG_H_
     37 #define	_MAX2820REG_H_
     38 
     39 #ifdef __cplusplus
     40 extern "C" {
     41 #endif
     42 
     43 /*
     44  * Serial bus format for Maxim MAX2820/MAX2820A/MAX2821/MAX2821A
     45  * 2.4GHz 802.11b Zero-IF Transceivers
     46  */
     47 #define	MAX2820_TWI_ADDR_MASK	BITS(15, 12)
     48 #define	MAX2820_TWI_DATA_MASK	BITS(11, 0)
     49 
     50 /*
     51  * Registers for Maxim MAX2820/MAX2820A/MAX2821/MAX2821A 2.4GHz
     52  * 802.11b Zero-IF Transceivers
     53  */
     54 #define	MAX2820_TEST		0		/* Test Register */
     55 #define	MAX2820_TEST_DEFAULT	BITS(2, 0)	/* Always set to this value. */
     56 
     57 #define	MAX2820_ENABLE		1		/* Block-Enable Register */
     58 #define	MAX2820_ENABLE_RSVD1	BIT(11)		/* reserved */
     59 /*
     60  * Transmit Baseband Filters Enable
     61  * PAB_EN = SHDNB && (MAX2820_ENABLE_PAB || TX_ON)
     62  */
     63 #define	MAX2820_ENABLE_PAB	BIT(10)
     64 /*
     65  * Transmit Baseband Filters Enable
     66  * TXFLT_EN = SHDNB && (MAX2820_ENABLE_TXFLT || TX_ON)
     67  */
     68 #define	MAX2820_ENABLE_TXFLT	BIT(9)
     69 /*
     70  * Tx Upconverter, VGA, and Driver Amp Enable
     71  * TXUVD_EN = SHDNB && (MAX2820_ENABLE_TXUVD || TX_ON)
     72  */
     73 #define	MAX2820_ENABLE_TXUVD	BIT(8)
     74 /*
     75  * Receive Detector Enable
     76  * DET_EN = SHDNB && (MAX2820_ENABLE_DET || RX_ON)
     77  */
     78 #define	MAX2820_ENABLE_DET	BIT(7)
     79 /*
     80  * Rx Downconverter, Filters, and AGC Amps Enable
     81  * RXDFA_EN = SHDNB && (MAX2820_ENABLE_RXDFA || RX_ON)
     82  */
     83 #define	MAX2820_ENABLE_RXDFA	BIT(6)
     84 /*
     85  * Receive LNA Enable
     86  * AT_EN = SHDNB && (MAX2820_ENABLE_RXLNA || RX_ON)
     87  */
     88 #define	MAX2820_ENABLE_RXLNA	BIT(5)
     89 /*
     90  * Auto-tuner Enable
     91  * AT_EN = SHDNB && (MAX2820_ENABLE_AT || RX_ON || TX_ON)
     92  */
     93 #define	MAX2820_ENABLE_AT	BIT(4)
     94 /*
     95  * PLL Charge-Pump Enable
     96  * CP_EN = SHDNB && MAX2820_ENABLE_CP
     97  */
     98 #define	MAX2820_ENABLE_CP	BIT(3)
     99 /*
    100  * PLL Enable
    101  * PLL_EN = SHDNB && MAX2820_ENABLE_PLL
    102  */
    103 #define	MAX2820_ENABLE_PLL	BIT(2)
    104 /*
    105  * VCO Enable
    106  * VCO_EN = SHDNB && MAX2820_ENABLE_VCO
    107  */
    108 #define	MAX2820_ENABLE_VCO	BIT(1)
    109 #define	MAX2820_ENABLE_RSVD0	BIT(0)		/* reserved */
    110 #define	MAX2820_ENABLE_DEFAULT \
    111 	(MAX2820_ENABLE_AT|MAX2820_ENABLE_CP|\
    112 	MAX2820_ENABLE_PLL|MAX2820_ENABLE_VCO)
    113 
    114 #define	MAX2820_SYNTH		2	/* Synthesizer Register */
    115 #define	MAX2820_SYNTH_RSVD0	BITS(11, 7)	/* reserved */
    116 /*
    117  * Charge-Pump Current Select
    118  * 0 = +/-1mA
    119  * 1 = +/-2mA
    120  */
    121 #define	MAX2820_SYNTH_ICP	BIT(6)
    122 /*
    123  * Reference Frequency Divider
    124  * 0 = 22MHz
    125  * 1 = 44MHz
    126  */
    127 #define	MAX2820_SYNTH_R_MASK	BITS(5, 0)
    128 #define	MAX2820_SYNTH_R_22MHZ	LSHIFT(0, MAX2820_SYNTH_R_MASK)
    129 #define	MAX2820_SYNTH_R_44MHZ	LSHIFT(1, MAX2820_SYNTH_R_MASK)
    130 #define	MAX2820_SYNTH_ICP_DEFAULT	MAX2820_SYNTH_ICP
    131 #define	MAX2820_SYNTH_R_DEFAULT		LSHIFT(0, MAX2820_SYNTH_R_MASK)
    132 
    133 #define	MAX2820_CHANNEL		3	/* Channel Frequency Register */
    134 #define	MAX2820_CHANNEL_RSVD	BITS(11, 7)	/* reserved */
    135 /*
    136  * Channel Frequency Select
    137  * fLO = 2400MHz + CF * 1MHz
    138  */
    139 #define	MAX2820_CHANNEL_CF_MASK	BITS(6, 0)
    140 #define	MAX2820_CHANNEL_RSVD_DEFAULT	LSHIFT(0, MAX2820_CHANNEL_RSVD)
    141 #define	MAX2820_CHANNEL_CF_DEFAULT	LSHIFT(37, MAX2820_CHANNEL_CF_MASK)
    142 
    143 /*
    144  * Receiver Settings Register
    145  * MAX2820/MAX2821
    146  */
    147 #define	MAX2820_RECEIVE		4
    148 /*
    149  * VGA DC Offset Nulling Parameter 2
    150  */
    151 #define	MAX2820_RECEIVE_2C_MASK	BITS(11, 9)
    152 /*
    153  * VGA DC Offset Nulling Parameter 1
    154  */
    155 #define	MAX2820_RECEIVE_1C_MASK	BITS(8, 6)
    156 /*
    157  * Rx Level Detector Midpoint
    158  * Select
    159  * 11, 01 = 50.2mVp
    160  * 10     = 70.9mVp
    161  * 00     = 35.5mVp
    162  */
    163 #define	MAX2820_RECEIVE_DL_MASK	BITS(5, 4)
    164 /*
    165  * Special Function Select
    166  * 0 = OFF
    167  * 1 = ON
    168  */
    169 #define	MAX2820_RECEIVE_SF	BIT(3)
    170 /*
    171  * Receive Filter -3dB Frequency
    172  * Select (all frequencies are
    173  * approximate)
    174  */
    175 #define	MAX2820_RECEIVE_BW_MASK	BITS(2, 0)
    176 /* 8.5MHz */
    177 #define	MAX2820_RECEIVE_BW_8_5MHZ	LSHIFT(0, MAX2820_RECEIVE_BW_MASK)
    178 #define	MAX2820_RECEIVE_BW_8MHZ		LSHIFT(1, MAX2820_RECEIVE_BW_MASK)
    179 #define	MAX2820_RECEIVE_BW_7_5MHZ	LSHIFT(2, MAX2820_RECEIVE_BW_MASK)
    180 #define	MAX2820_RECEIVE_BW_7MHZ		LSHIFT(3, MAX2820_RECEIVE_BW_MASK)
    181 #define	MAX2820_RECEIVE_BW_6_5MHZ	LSHIFT(4, MAX2820_RECEIVE_BW_MASK)
    182 #define	MAX2820_RECEIVE_BW_6MHZ		LSHIFT(5, MAX2820_RECEIVE_BW_MASK)
    183 #define	MAX2820_RECEIVE_2C_DEFAULT	LSHIFT(7, MAX2820_RECEIVE_2C_MASK)
    184 #define	MAX2820_RECEIVE_1C_DEFAULT	LSHIFT(7, MAX2820_RECEIVE_1C_MASK)
    185 #define	MAX2820_RECEIVE_DL_DEFAULT	LSHIFT(1, MAX2820_RECEIVE_DL_MASK)
    186 #define	MAX2820_RECEIVE_SF_DEFAULT	LSHIFT(0, MAX2820_RECEIVE_SF)
    187 #define	MAX2820_RECEIVE_BW_DEFAULT	MAX2820_RECEIVE_BW_7_5MHZ
    188 
    189 /*
    190  * Receiver Settings Register,
    191  * MAX2820A/MAX2821A
    192  */
    193 #define	MAX2820A_RECEIVE	4
    194 /* VGA DC Offset Nulling Parameter 2 */
    195 #define	MAX2820A_RECEIVE_2C_MASK	BITS(11, 9)
    196 #define	MAX2820A_RECEIVE_2C_DEFAULT	LSHIFT(7, MAX2820A_RECEIVE_2C_MASK)
    197 /* VGA DC Offset Nulling Parameter 1 */
    198 #define	MAX2820A_RECEIVE_1C_MASK	BITS(8, 6)
    199 #define	MAX2820A_RECEIVE_1C_DEFAULT	LSHIFT(7, MAX2820A_RECEIVE_1C_MASK)
    200 #define	MAX2820A_RECEIVE_RSVD0_MASK	BITS(5, 3)
    201 #define	MAX2820A_RECEIVE_RSVD0_DEFAULT	LSHIFT(2, MAX2820A_RECEIVE_RSVD0_MASK)
    202 #define	MAX2820A_RECEIVE_RSVD1_MASK	BITS(2, 0)
    203 #define	MAX2820A_RECEIVE_RSVD1_DEFAULT	LSHIFT(2, MAX2820_RECEIVE_RSVD1_MASK)
    204 
    205 #define	MAX2820_TRANSMIT	5	/* Transmitter Settings Reg. */
    206 #define	MAX2820_TRANSMIT_RSVD_MASK	BITS(11, 4)	/* reserved */
    207 /*
    208  * PA Bias Select
    209  * 15 = Highest
    210  * 0 = Lowest
    211  */
    212 #define	MAX2820_TRANSMIT_PA_MASK	BITS(3, 0)
    213 #define	MAX2820_TRANSMIT_PA_DEFAULT	LSHIFT(0, MAX2820_TRANSMIT_PA_MASK)
    214 
    215 #ifdef __cplusplus
    216 }
    217 #endif
    218 
    219 #endif /* _MAX2820REG_H_ */
    220