hfa3861areg.h revision 1.3 1 1.3 dyoung /* $NetBSD: hfa3861areg.h,v 1.3 2007/11/16 04:52:36 dyoung Exp $ */
2 1.3 dyoung /* $Id: hfa3861areg.h,v 1.3 2007/11/16 04:52:36 dyoung Exp $ */
3 1.2 dyoung /*
4 1.2 dyoung * Copyright (c) 2007 David Young. All rights reserved.
5 1.2 dyoung *
6 1.2 dyoung * Written by David Young.
7 1.2 dyoung *
8 1.2 dyoung * Redistribution and use in source and binary forms, with or
9 1.2 dyoung * without modification, are permitted provided that the following
10 1.2 dyoung * conditions are met:
11 1.2 dyoung * 1. Redistributions of source code must retain the above copyright
12 1.2 dyoung * notice, this list of conditions and the following disclaimer.
13 1.2 dyoung * 2. Redistributions in binary form must reproduce the above
14 1.2 dyoung * copyright notice, this list of conditions and the following
15 1.2 dyoung * disclaimer in the documentation and/or other materials provided
16 1.2 dyoung * with the distribution.
17 1.2 dyoung * 3. David Young's name may not be used to endorse or promote
18 1.2 dyoung * products derived from this software without specific prior
19 1.2 dyoung * written permission.
20 1.2 dyoung *
21 1.2 dyoung * THIS SOFTWARE IS PROVIDED BY DAVID YOUNG ``AS IS'' AND ANY
22 1.2 dyoung * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23 1.2 dyoung * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
24 1.2 dyoung * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DAVID
25 1.2 dyoung * YOUNG BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26 1.2 dyoung * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
27 1.2 dyoung * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 1.2 dyoung * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
29 1.2 dyoung * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 1.2 dyoung * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 1.2 dyoung * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
32 1.2 dyoung * OF SUCH DAMAGE.
33 1.2 dyoung */
34 1.1 dyoung #ifndef _DEV_IC_HFA3861A_H_
35 1.1 dyoung #define _DEV_IC_HFA3861A_H_
36 1.1 dyoung
37 1.1 dyoung /* Register set for the Intersil HFA3861A. */
38 1.1 dyoung
39 1.3 dyoung #define HFA3861A_CR5 0x0a /* Tx signal field, read-write */
40 1.3 dyoung #define HFA3861A_CR5_RSVD0 __BITS(7, 4) /* reserved, set to 0 */
41 1.3 dyoung #define HFA3861A_CR5_SHORTPRE __BIT(3) /* 0: long preamble,
42 1.3 dyoung * 1: short preamble
43 1.3 dyoung */
44 1.3 dyoung #define HFA3861A_CR5_RSVD1 __BIT(2) /* reserved, set to 0 */
45 1.3 dyoung #define HFA3861A_CR5_RATE_MASK __BITS(1, 0) /* Tx data rate */
46 1.3 dyoung /* 1, 2, 5.5, and 11 Mbps */
47 1.3 dyoung #define HFA3861A_CR5_RATE_1 __SHIFTIN(0, HFA3861A_CR5_RATE_MASK)
48 1.3 dyoung #define HFA3861A_CR5_RATE_2 __SHIFTIN(1, HFA3861A_CR5_RATE_MASK)
49 1.3 dyoung #define HFA3861A_CR5_RATE_5 __SHIFTIN(2, HFA3861A_CR5_RATE_MASK)
50 1.3 dyoung #define HFA3861A_CR5_RATE_11 __SHIFTIN(3, HFA3861A_CR5_RATE_MASK)
51 1.3 dyoung
52 1.3 dyoung #define HFA3861A_CR6 0x0c /* Tx service field: copied directly to 802.11
53 1.3 dyoung * PLCP header
54 1.3 dyoung */
55 1.3 dyoung #define HFA3861A_CR7 0x0e /* Tx length, hi: microseconds Tx duration */
56 1.3 dyoung #define HFA3861A_CR8 0x10 /* Tx length, lo: microseconds Tx duration */
57 1.3 dyoung
58 1.1 dyoung #define HFA3861A_CR49 0x62 /* Read-only register mux control */
59 1.1 dyoung #define HFA3861A_CR49_SEL __BIT(7) /* 0: read-only register set 'b'
60 1.1 dyoung * 1: read-only register set 'a'
61 1.1 dyoung */
62 1.1 dyoung #define HFA3861A_CR49_RSVD __BITS(6, 0)
63 1.1 dyoung
64 1.1 dyoung #define HFA3861A_CR61 0x7c /* Rx status, read-only, sets 'a' & 'b' */
65 1.1 dyoung
66 1.2 dyoung #define HFA3861A_CR62 0x7e /* RSSI, read-only */
67 1.1 dyoung #define HFA3861A_CR62_RSSI __BITS(7, 0) /* RSSI, sets 'a' & 'b' */
68 1.1 dyoung
69 1.1 dyoung #define HFA3861A_CR63 0x80 /* Rx status, read-only */
70 1.3 dyoung #define HFA3861A_CR63_SIGNAL_MASK __BITS(7, 6) /* signal field value,
71 1.3 dyoung * sets 'a' & 'b' */
72 1.1 dyoung /* 1 Mbps */
73 1.1 dyoung #define HFA3861A_CR63_SIGNAL_1MBPS __SHIFTIN(0, HFA3861A_CR63_SIGNAL)
74 1.1 dyoung /* 2 Mbps */
75 1.1 dyoung #define HFA3861A_CR63_SIGNAL_2MBPS __SHIFTIN(2, HFA3861A_CR63_SIGNAL)
76 1.1 dyoung /* 5.5 or 11 Mbps */
77 1.1 dyoung #define HFA3861A_CR63_SIGNAL_OTHER_MBPS __SHIFTIN(1, HFA3861A_CR63_SIGNAL)
78 1.1 dyoung #define HFA3861A_CR63_SFD __BIT(5) /* SFD found, sets 'a' & 'b' */
79 1.1 dyoung #define HFA3861A_CR63_SHORTPRE __BIT(4) /* short preamble detected,
80 1.1 dyoung * sets 'a' & 'b'
81 1.1 dyoung */
82 1.1 dyoung #define HFA3861A_CR63_SIGNAL_OK __BIT(3) /* valid signal field,
83 1.1 dyoung * sets 'a' & 'b'
84 1.1 dyoung */
85 1.1 dyoung #define HFA3861A_CR63_CRC16_OK __BIT(2) /* valid CRC 16,
86 1.1 dyoung * sets 'a' & 'b'
87 1.1 dyoung */
88 1.1 dyoung #define HFA3861A_CR63_ANTENNA __BIT(1) /* antenna used,
89 1.1 dyoung * sets 'a' & 'b'
90 1.1 dyoung */
91 1.1 dyoung #define HFA3861A_CR63_RSVD __BIT(0) /* reserved, sets 'a' & 'b' */
92 1.1 dyoung
93 1.1 dyoung #endif /* _DEV_IC_HFA3861A_H_ */
94