195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
29c9a0d145fee73b5e821bb460732ac2a66c680b3Gertjan van Wingerde	Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com>
395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	<http://rt2x00.serialmonkey.com>
495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	This program is free software; you can redistribute it and/or modify
695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	it under the terms of the GNU General Public License as published by
795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	the Free Software Foundation; either version 2 of the License, or
895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	(at your option) any later version.
995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
1095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	This program is distributed in the hope that it will be useful,
1195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	but WITHOUT ANY WARRANTY; without even the implied warranty of
1295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	GNU General Public License for more details.
1495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
1595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	You should have received a copy of the GNU General Public License
1695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	along with this program; if not, write to the
1795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	Free Software Foundation, Inc.,
1895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
1995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
2095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
2195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
2295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	Module: rt2400pci
2395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	Abstract: Data structures and registers for the rt2400pci module.
2495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	Supported chipsets: RT2460.
2595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
2695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
2795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#ifndef RT2400PCI_H
2895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RT2400PCI_H
2995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
3095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
3195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF chip defines.
3295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
3395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF2420				0x0000
3495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF2421				0x0001
3595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
3695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
3795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Signal information.
38af901ca181d92aac3a7dc265144a9081a86d8f39André Goddard Rosa * Default offset is required for RSSI <-> dBm conversion.
3995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
4095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define DEFAULT_RSSI_OFFSET		100
4195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
4295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
4395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Register layout information.
4495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
4595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR_REG_BASE			0x0000
4695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR_REG_SIZE			0x014c
4795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BASE			0x0000
4895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_SIZE			0x0100
49743b97caf98036ec8ee4bfc6fc6f85ad94e04783Ivo van Doorn#define BBP_BASE			0x0000
5095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBP_SIZE			0x0020
5153bc647a1a96189be53b68b9e8c40df0f42fc300Ivo van Doorn#define RF_BASE				0x0004
5253bc647a1a96189be53b68b9e8c40df0f42fc300Ivo van Doorn#define RF_SIZE				0x000c
5395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
5495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
5561448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde * Number of TX queues.
5661448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde */
5761448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde#define NUM_TX_QUEUES			2
5861448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde
5961448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde/*
6095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Control/Status Registers(CSR).
6195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Some values are set in TU, whereas 1 TU == 1024 us.
6295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
6395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
6495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
6595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR0: ASIC revision number.
6695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
6795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR0				0x0000
6849e721ec6ca74f90ee99089ad2de1c338a95c6d5Gertjan van Wingerde#define CSR0_REVISION			FIELD32(0x0000ffff)
6995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
7095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
7195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR1: System control register.
7295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SOFT_RESET: Software reset, 1: reset, 0: normal.
7395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_RESET: Hardware reset, 1: reset, 0, release.
7495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * HOST_READY: Host ready after initialization.
7595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
7695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR1				0x0004
7795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR1_SOFT_RESET			FIELD32(0x00000001)
7895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR1_BBP_RESET			FIELD32(0x00000002)
7995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR1_HOST_READY			FIELD32(0x00000004)
8095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
8195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
8295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR2: System admin status register (invalid).
8395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
8495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR2				0x0008
8595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
8695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
8795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR3: STA MAC address register 0.
8895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
8995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3				0x000c
9095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3_BYTE0			FIELD32(0x000000ff)
9195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3_BYTE1			FIELD32(0x0000ff00)
9295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3_BYTE2			FIELD32(0x00ff0000)
9395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3_BYTE3			FIELD32(0xff000000)
9495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
9595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
9695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR4: STA MAC address register 1.
9795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
9895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR4				0x0010
9995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR4_BYTE4			FIELD32(0x000000ff)
10095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR4_BYTE5			FIELD32(0x0000ff00)
10195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
10295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
10395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR5: BSSID register 0.
10495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
10595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5				0x0014
10695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5_BYTE0			FIELD32(0x000000ff)
10795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5_BYTE1			FIELD32(0x0000ff00)
10895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5_BYTE2			FIELD32(0x00ff0000)
10995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5_BYTE3			FIELD32(0xff000000)
11095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
11195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
11295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR6: BSSID register 1.
11395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
11495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR6				0x0018
11595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR6_BYTE4			FIELD32(0x000000ff)
11695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR6_BYTE5			FIELD32(0x0000ff00)
11795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
11895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
11995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR7: Interrupt source register.
12095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Write 1 to clear interrupt.
12195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCN_EXPIRE: Beacon timer expired interrupt.
12295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TWAKE_EXPIRE: Wakeup timer expired interrupt.
12395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TATIMW_EXPIRE: Timer of atim window expired interrupt.
12495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_TXRING: Tx ring transmit done interrupt.
12595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_ATIMRING: Atim ring transmit done interrupt.
12695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_PRIORING: Priority ring transmit done interrupt.
12795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXDONE: Receive done interrupt.
12895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
12995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7				0x001c
13095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TBCN_EXPIRE		FIELD32(0x00000001)
13195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TWAKE_EXPIRE		FIELD32(0x00000002)
13295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TATIMW_EXPIRE		FIELD32(0x00000004)
13395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TXDONE_TXRING		FIELD32(0x00000008)
13495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TXDONE_ATIMRING		FIELD32(0x00000010)
13595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TXDONE_PRIORING		FIELD32(0x00000020)
13695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_RXDONE			FIELD32(0x00000040)
13795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
13895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
13995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR8: Interrupt mask register.
14095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Write 1 to mask interrupt.
14195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCN_EXPIRE: Beacon timer expired interrupt.
14295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TWAKE_EXPIRE: Wakeup timer expired interrupt.
14395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TATIMW_EXPIRE: Timer of atim window expired interrupt.
14495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_TXRING: Tx ring transmit done interrupt.
14595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_ATIMRING: Atim ring transmit done interrupt.
14695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_PRIORING: Priority ring transmit done interrupt.
14795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXDONE: Receive done interrupt.
14895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
14995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8				0x0020
15095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TBCN_EXPIRE		FIELD32(0x00000001)
15195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TWAKE_EXPIRE		FIELD32(0x00000002)
15295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TATIMW_EXPIRE		FIELD32(0x00000004)
15395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TXDONE_TXRING		FIELD32(0x00000008)
15495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TXDONE_ATIMRING		FIELD32(0x00000010)
15595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TXDONE_PRIORING		FIELD32(0x00000020)
15695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_RXDONE			FIELD32(0x00000040)
15795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
15895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
15995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR9: Maximum frame length register.
16095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MAX_FRAME_UNIT: Maximum frame length in 128b unit, default: 12.
16195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
16295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR9				0x0024
16395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR9_MAX_FRAME_UNIT		FIELD32(0x00000f80)
16495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
16595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
16695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR11: Back-off control register.
16795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CWMIN: CWmin. Default cwmin is 31 (2^5 - 1).
16895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CWMAX: CWmax. Default cwmax is 1023 (2^10 - 1).
16995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SLOT_TIME: Slot time, default is 20us for 802.11b.
17095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LONG_RETRY: Long retry count.
17195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SHORT_RETRY: Short retry count.
17295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
17395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11				0x002c
17495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_CWMIN			FIELD32(0x0000000f)
17595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_CWMAX			FIELD32(0x000000f0)
17695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_SLOT_TIME			FIELD32(0x00001f00)
17795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_LONG_RETRY		FIELD32(0x00ff0000)
17895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_SHORT_RETRY		FIELD32(0xff000000)
17995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
18095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
18195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR12: Synchronization configuration register 0.
18295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * All units in 1/16 TU.
18395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BEACON_INTERVAL: Beacon interval, default is 100 TU.
18495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFPMAX_DURATION: Cfp maximum duration, default is 100 TU.
18595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
18695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR12				0x0030
18795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR12_BEACON_INTERVAL		FIELD32(0x0000ffff)
18895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR12_CFP_MAX_DURATION		FIELD32(0xffff0000)
18995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
19095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
19195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR13: Synchronization configuration register 1.
19295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * All units in 1/16 TU.
19395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ATIMW_DURATION: Atim window duration.
19495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFP_PERIOD: Cfp period, default is 0 TU.
19595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
19695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR13				0x0034
19795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR13_ATIMW_DURATION		FIELD32(0x0000ffff)
19895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR13_CFP_PERIOD		FIELD32(0x00ff0000)
19995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
20095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
20195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR14: Synchronization control register.
20295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TSF_COUNT: Enable tsf auto counting.
20395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TSF_SYNC: Tsf sync, 0: disable, 1: infra, 2: ad-hoc/master mode.
20495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCN: Enable tbcn with reload value.
20595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TCFP: Enable tcfp & cfp / cp switching.
20695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TATIMW: Enable tatimw & atim window switching.
20795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BEACON_GEN: Enable beacon generator.
20895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFP_COUNT_PRELOAD: Cfp count preload value.
20995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCM_PRELOAD: Tbcn preload value in units of 64us.
21095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
21195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14				0x0038
21295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TSF_COUNT			FIELD32(0x00000001)
21395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TSF_SYNC			FIELD32(0x00000006)
21495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TBCN			FIELD32(0x00000008)
21595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TCFP			FIELD32(0x00000010)
21695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TATIMW			FIELD32(0x00000020)
21795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_BEACON_GEN		FIELD32(0x00000040)
21895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_CFP_COUNT_PRELOAD		FIELD32(0x0000ff00)
21995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TBCM_PRELOAD		FIELD32(0xffff0000)
22095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
22195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
22295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR15: Synchronization status register.
22395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFP: ASIC is in contention-free period.
22495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ATIMW: ASIC is in ATIM window.
22595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BEACON_SENT: Beacon is send.
22695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
22795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR15				0x003c
22895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR15_CFP			FIELD32(0x00000001)
22995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR15_ATIMW			FIELD32(0x00000002)
23095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR15_BEACON_SENT		FIELD32(0x00000004)
23195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
23295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
23395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR16: TSF timer register 0.
23495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
23595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR16				0x0040
23695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR16_LOW_TSFTIMER		FIELD32(0xffffffff)
23795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
23895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
23995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR17: TSF timer register 1.
24095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
24195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR17				0x0044
24295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR17_HIGH_TSFTIMER		FIELD32(0xffffffff)
24395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
24495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
24595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR18: IFS timer register 0.
24695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SIFS: Sifs, default is 10 us.
24795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PIFS: Pifs, default is 30 us.
24895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
24995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR18				0x0048
25095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR18_SIFS			FIELD32(0x0000ffff)
25195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR18_PIFS			FIELD32(0xffff0000)
25295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
25395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
25495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR19: IFS timer register 1.
25595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DIFS: Difs, default is 50 us.
25695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EIFS: Eifs, default is 364 us.
25795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
25895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR19				0x004c
25995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR19_DIFS			FIELD32(0x0000ffff)
26095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR19_EIFS			FIELD32(0xffff0000)
26195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
26295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
26395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR20: Wakeup timer register.
26495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DELAY_AFTER_TBCN: Delay after tbcn expired in units of 1/16 TU.
26595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCN_BEFORE_WAKEUP: Number of beacon before wakeup.
26695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AUTOWAKE: Enable auto wakeup / sleep mechanism.
26795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
26895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR20				0x0050
26995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR20_DELAY_AFTER_TBCN		FIELD32(0x0000ffff)
27095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR20_TBCN_BEFORE_WAKEUP	FIELD32(0x00ff0000)
27195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR20_AUTOWAKE			FIELD32(0x01000000)
27295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
27395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
27495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR21: EEPROM control register.
27595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RELOAD: Write 1 to reload eeprom content.
27695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TYPE_93C46: 1: 93c46, 0:93c66.
27795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
27895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21				0x0054
27995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_RELOAD			FIELD32(0x00000001)
28095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_EEPROM_DATA_CLOCK		FIELD32(0x00000002)
28195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_EEPROM_CHIP_SELECT	FIELD32(0x00000004)
28295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_EEPROM_DATA_IN		FIELD32(0x00000008)
28395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_EEPROM_DATA_OUT		FIELD32(0x00000010)
28495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_TYPE_93C46		FIELD32(0x00000020)
28595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
28695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
28795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR22: CFP control register.
28895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFP_DURATION_REMAIN: Cfp duration remain, in units of TU.
28995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RELOAD_CFP_DURATION: Write 1 to reload cfp duration remain.
29095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
29195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR22				0x0058
29295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR22_CFP_DURATION_REMAIN	FIELD32(0x0000ffff)
29395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR22_RELOAD_CFP_DURATION	FIELD32(0x00010000)
29495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
29595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
29695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Transmit related CSRs.
29795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Some values are set in TU, whereas 1 TU == 1024 us.
29895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
29995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
30095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
30195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR0: TX Control Register.
30295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_TX: Kick tx ring.
30395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_ATIM: Kick atim ring.
30495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_PRIO: Kick priority ring.
30595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ABORT: Abort all transmit related ring operation.
30695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
30795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0				0x0060
30895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0_KICK_TX			FIELD32(0x00000001)
30995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0_KICK_ATIM		FIELD32(0x00000002)
31095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0_KICK_PRIO		FIELD32(0x00000004)
31195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0_ABORT			FIELD32(0x00000008)
31295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
31395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
31495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR1: TX Configuration Register.
31595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACK_TIMEOUT: Ack timeout, default = sifs + 2*slottime + acktime @ 1mbps.
31695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACK_CONSUME_TIME: Ack consume time, default = sifs + acktime @ 1mbps.
31795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TSF_OFFSET: Insert tsf offset.
31895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AUTORESPONDER: Enable auto responder which include ack & cts.
31995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
32095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1				0x0064
32195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1_ACK_TIMEOUT		FIELD32(0x000001ff)
32295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1_ACK_CONSUME_TIME		FIELD32(0x0003fe00)
32395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1_TSF_OFFSET		FIELD32(0x00fc0000)
32495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1_AUTORESPONDER		FIELD32(0x01000000)
32595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
32695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
32795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR2: Tx descriptor configuration register.
32895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXD_SIZE: Tx descriptor size, default is 48.
32995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_TXD: Number of tx entries in ring.
33095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_ATIM: Number of atim entries in ring.
33195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_PRIO: Number of priority entries in ring.
33295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
33395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2				0x0068
33495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2_TXD_SIZE			FIELD32(0x000000ff)
33595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2_NUM_TXD			FIELD32(0x0000ff00)
33695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2_NUM_ATIM			FIELD32(0x00ff0000)
33795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2_NUM_PRIO			FIELD32(0xff000000)
33895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
33995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
34095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR3: TX Ring Base address register.
34195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
34295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR3				0x006c
34395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR3_TX_RING_REGISTER		FIELD32(0xffffffff)
34495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
34595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
34695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR4: TX Atim Ring Base address register.
34795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
34895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR4				0x0070
34995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR4_ATIM_RING_REGISTER	FIELD32(0xffffffff)
35095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
35195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
35295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR5: TX Prio Ring Base address register.
35395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
35495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR5				0x0074
35595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR5_PRIO_RING_REGISTER	FIELD32(0xffffffff)
35695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
35795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
35895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR6: Beacon Base address register.
35995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
36095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR6				0x0078
36195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR6_BEACON_RING_REGISTER	FIELD32(0xffffffff)
36295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
36395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
36495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR7: Auto responder control register.
36595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AR_POWERMANAGEMENT: Auto responder power management bit.
36695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
36795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR7				0x007c
36895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR7_AR_POWERMANAGEMENT	FIELD32(0x00000001)
36995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
37095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
37195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Receive related CSRs.
37295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Some values are set in TU, whereas 1 TU == 1024 us.
37395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
37495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
37595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
37695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXCSR0: RX Control Register.
37795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DISABLE_RX: Disable rx engine.
37895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_CRC: Drop crc error.
37995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_PHYSICAL: Drop physical error.
38095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_CONTROL: Drop control frame.
38195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_NOT_TO_ME: Drop not to me unicast frame.
38295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_TODS: Drop frame tods bit is true.
38395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_VERSION_ERROR: Drop version error frame.
38495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PASS_CRC: Pass all packets with crc attached.
38595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
38695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0				0x0080
38795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DISABLE_RX		FIELD32(0x00000001)
38895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_CRC			FIELD32(0x00000002)
38995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_PHYSICAL		FIELD32(0x00000004)
39095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_CONTROL		FIELD32(0x00000008)
39195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_NOT_TO_ME		FIELD32(0x00000010)
39295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_TODS		FIELD32(0x00000020)
39395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_VERSION_ERROR	FIELD32(0x00000040)
39495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_PASS_CRC			FIELD32(0x00000080)
39595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
39695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
39795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXCSR1: RX descriptor configuration register.
39895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXD_SIZE: Rx descriptor size, default is 32b.
39995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_RXD: Number of rx entries in ring.
40095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
40195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR1				0x0084
40295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR1_RXD_SIZE			FIELD32(0x000000ff)
40395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR1_NUM_RXD			FIELD32(0x0000ff00)
40495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
40595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
40695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXCSR2: RX Ring base address register.
40795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
40895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR2				0x0088
40995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR2_RX_RING_REGISTER		FIELD32(0xffffffff)
41095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
41195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
41295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXCSR3: BBP ID register for Rx operation.
41395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_ID#: BBP register # id.
41495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_ID#_VALID: BBP register # id is valid or not.
41595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
41695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3				0x0090
41795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID0			FIELD32(0x0000007f)
41895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID0_VALID		FIELD32(0x00000080)
41995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID1			FIELD32(0x00007f00)
42095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID1_VALID		FIELD32(0x00008000)
42195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID2			FIELD32(0x007f0000)
42295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID2_VALID		FIELD32(0x00800000)
42395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID3			FIELD32(0x7f000000)
42495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID3_VALID		FIELD32(0x80000000)
42595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
42695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
42795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXCSR4: BBP ID register for Rx operation.
42895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_ID#: BBP register # id.
42995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_ID#_VALID: BBP register # id is valid or not.
43095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
43195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR4				0x0094
43295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR4_BBP_ID4			FIELD32(0x0000007f)
43395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR4_BBP_ID4_VALID		FIELD32(0x00000080)
43495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR4_BBP_ID5			FIELD32(0x00007f00)
43595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR4_BBP_ID5_VALID		FIELD32(0x00008000)
43695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
43795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
43895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR0: Auto Responder PLCP config register 0.
43995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR0_AR_BBP_DATA#: Auto responder BBP register # data.
44095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR0_AR_BBP_ID#: Auto responder BBP register # Id.
44195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
44295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR0				0x0098
44395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR0_AR_BBP_DATA0		FIELD32(0x000000ff)
44495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR0_AR_BBP_ID0		FIELD32(0x0000ff00)
44595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR0_AR_BBP_DATA1		FIELD32(0x00ff0000)
44695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR0_AR_BBP_ID1		FIELD32(0xff000000)
44795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
44895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
44995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR1: Auto Responder PLCP config register 1.
45095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR0_AR_BBP_DATA#: Auto responder BBP register # data.
45195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR0_AR_BBP_ID#: Auto responder BBP register # Id.
45295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
45395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1				0x009c
45495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1_AR_BBP_DATA2		FIELD32(0x000000ff)
45595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1_AR_BBP_ID2		FIELD32(0x0000ff00)
45695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1_AR_BBP_DATA3		FIELD32(0x00ff0000)
45795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1_AR_BBP_ID3		FIELD32(0xff000000)
45895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
45995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
46095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Miscellaneous Registers.
46195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Some values are set in TU, whereas 1 TU == 1024 us.
46295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
46395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
46495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
46595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PCICSR: PCI control register.
46695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BIG_ENDIAN: 1: big endian, 0: little endian.
46795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RX_TRESHOLD: Rx threshold in dw to start pci access
46895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * 0: 16dw (default), 1: 8dw, 2: 4dw, 3: 32dw.
46995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TX_TRESHOLD: Tx threshold in dw to start pci access
47095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * 0: 0dw (default), 1: 1dw, 2: 4dw, 3: forward.
47195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BURST_LENTH: Pci burst length 0: 4dw (default, 1: 8dw, 2: 16dw, 3:32dw.
47295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ENABLE_CLK: Enable clk_run, pci clock can't going down to non-operational.
47395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
47495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR				0x008c
47595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_BIG_ENDIAN		FIELD32(0x00000001)
47695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_RX_TRESHOLD		FIELD32(0x00000006)
47795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_TX_TRESHOLD		FIELD32(0x00000018)
47895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_BURST_LENTH		FIELD32(0x00000060)
47995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_ENABLE_CLK		FIELD32(0x00000080)
48095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
48195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
48295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT0: FCS error count.
48395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * FCS_ERROR: FCS error count, cleared when read.
48495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
48595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT0				0x00a0
48695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT0_FCS_ERROR			FIELD32(0x0000ffff)
48795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
48895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
48995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Statistic Register.
49095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT1: PLCP error count.
49195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT2: Long error count.
49295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT3: CCA false alarm count.
49395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT4: Rx FIFO overflow count.
49495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT5: Tx FIFO underrun count.
49595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
49695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR2			0x00a8
49795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT1				0x00ac
49895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT2				0x00b0
49995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR3			0x00b4
50095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT3				0x00b8
50195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT4				0x00bc
50295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT5				0x00c0
50395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
50495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
50595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Baseband Control Register.
50695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
50795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
50895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
50995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PWRCSR0: Power mode configuration register.
51095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
51195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR0				0x00c4
51295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
51395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
51495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Power state transition time registers.
51595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
51695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PSCSR0				0x00c8
51795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PSCSR1				0x00cc
51895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PSCSR2				0x00d0
51995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PSCSR3				0x00d4
52095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
52195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
52295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PWRCSR1: Manual power control / status register.
52395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Allowed state: 0 deep_sleep, 1: sleep, 2: standby, 3: awake.
52495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SET_STATE: Set state. Write 1 to trigger, self cleared.
52595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_DESIRE_STATE: BBP desired state.
52695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF_DESIRE_STATE: RF desired state.
52795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_CURR_STATE: BBP current state.
52895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF_CURR_STATE: RF current state.
52995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PUT_TO_SLEEP: Put to sleep. Write 1 to trigger, self cleared.
53095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
53195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1				0x00d8
53295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_SET_STATE		FIELD32(0x00000001)
53395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_BBP_DESIRE_STATE	FIELD32(0x00000006)
53495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_RF_DESIRE_STATE		FIELD32(0x00000018)
53595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_BBP_CURR_STATE		FIELD32(0x00000060)
53695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_RF_CURR_STATE		FIELD32(0x00000180)
53795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_PUT_TO_SLEEP		FIELD32(0x00000200)
53895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
53995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
54095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TIMECSR: Timer control register.
54195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * US_COUNT: 1 us timer count in units of clock cycles.
54295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * US_64_COUNT: 64 us timer count in units of 1 us timer.
54395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BEACON_EXPECT: Beacon expect window.
54495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
54595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR				0x00dc
54695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR_US_COUNT		FIELD32(0x000000ff)
54795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR_US_64_COUNT		FIELD32(0x0000ff00)
54895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR_BEACON_EXPECT		FIELD32(0x00070000)
54995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
55095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
55195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MACCSR0: MAC configuration register 0.
55295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
55395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR0				0x00e0
55495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
55595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
55695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MACCSR1: MAC configuration register 1.
55795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_RX: Kick one-shot rx in one-shot rx mode.
55895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ONESHOT_RXMODE: Enable one-shot rx mode for debugging.
55995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBPRX_RESET_MODE: Ralink bbp rx reset mode.
56095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AUTO_TXBBP: Auto tx logic access bbp control register.
56195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AUTO_RXBBP: Auto rx logic access bbp control register.
56295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LOOPBACK: Loopback mode. 0: normal, 1: internal, 2: external, 3:rsvd.
56395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * INTERSIL_IF: Intersil if calibration pin.
56495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
56595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1				0x00e4
56695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_KICK_RX			FIELD32(0x00000001)
56795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_ONESHOT_RXMODE		FIELD32(0x00000002)
56895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_BBPRX_RESET_MODE	FIELD32(0x00000004)
56995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_AUTO_TXBBP		FIELD32(0x00000008)
57095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_AUTO_RXBBP		FIELD32(0x00000010)
57195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_LOOPBACK		FIELD32(0x00000060)
57295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_INTERSIL_IF		FIELD32(0x00000080)
57395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
57495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
57595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RALINKCSR: Ralink Rx auto-reset BBCR.
57695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AR_BBP_DATA#: Auto reset BBP register # data.
57795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AR_BBP_ID#: Auto reset BBP register # id.
57895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
57995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR			0x00e8
58095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_DATA0		FIELD32(0x000000ff)
58195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_ID0		FIELD32(0x0000ff00)
58295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_DATA1		FIELD32(0x00ff0000)
58395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_ID1		FIELD32(0xff000000)
58495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
58595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
58695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BCNCSR: Beacon interval control register.
58795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CHANGE: Write one to change beacon interval.
58895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DELTATIME: The delta time value.
58995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_BEACON: Number of beacon according to mode.
59095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MODE: Please refer to asic specs.
59195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PLUS: Plus or minus delta time value.
59295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
59395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR				0x00ec
59495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_CHANGE			FIELD32(0x00000001)
59595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_DELTATIME		FIELD32(0x0000001e)
59695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_NUM_BEACON		FIELD32(0x00001fe0)
59795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_MODE			FIELD32(0x00006000)
59895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_PLUS			FIELD32(0x00008000)
59995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
60095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
60195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP / RF / IF Control Register.
60295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
60395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
60495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
60595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBPCSR: BBP serial control register.
60695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * VALUE: Register value to program into BBP.
60795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * REGNUM: Selected BBP register.
60895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BUSY: 1: asic is busy execute BBP programming.
60995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * WRITE_CONTROL: 1: write BBP, 0: read BBP.
61095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
61195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR				0x00f0
61295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR_VALUE			FIELD32(0x000000ff)
61395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR_REGNUM			FIELD32(0x00007f00)
61495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR_BUSY			FIELD32(0x00008000)
61595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR_WRITE_CONTROL		FIELD32(0x00010000)
61695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
61795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
61895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RFCSR: RF serial control register.
61995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * VALUE: Register value + id to program into rf/if.
62095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUMBER_OF_BITS: Number of bits used in value (i:20, rfmd:22).
62195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * IF_SELECT: Chip to program: 0: rf, 1: if.
62295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PLL_LD: Rf pll_ld status.
62395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BUSY: 1: asic is busy execute rf programming.
62495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
62595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR				0x00f4
62695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_VALUE			FIELD32(0x00ffffff)
62795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_NUMBER_OF_BITS		FIELD32(0x1f000000)
62895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_IF_SELECT			FIELD32(0x20000000)
62995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_PLL_LD			FIELD32(0x40000000)
63095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_BUSY			FIELD32(0x80000000)
63195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
63295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
63395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LEDCSR: LED control register.
63495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ON_PERIOD: On period, default 70ms.
63595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * OFF_PERIOD: Off period, default 30ms.
63695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LINK: 0: linkoff, 1: linkup.
63795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACTIVITY: 0: idle, 1: active.
63895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
63995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR				0x00f8
64095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_ON_PERIOD		FIELD32(0x000000ff)
64195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_OFF_PERIOD		FIELD32(0x0000ff00)
64295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_LINK			FIELD32(0x00010000)
64395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_ACTIVITY			FIELD32(0x00020000)
64495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
64595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
64695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ASIC pointer information.
64795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXPTR: Current RX ring address.
64895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXPTR: Current Tx ring address.
64995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PRIPTR: Current Priority ring address.
65095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ATIMPTR: Current ATIM ring address.
65195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
65295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXPTR				0x0100
65395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXPTR				0x0104
65495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PRIPTR				0x0108
65595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ATIMPTR				0x010c
65695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
65795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
65895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * GPIO and others.
65995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
66095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
66195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
66295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * GPIOCSR: GPIO control register.
66395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
66495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR				0x0120
66595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT0			FIELD32(0x00000001)
66695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT1			FIELD32(0x00000002)
66795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT2			FIELD32(0x00000004)
66895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT3			FIELD32(0x00000008)
66995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT4			FIELD32(0x00000010)
67095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT5			FIELD32(0x00000020)
67195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT6			FIELD32(0x00000040)
67295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT7			FIELD32(0x00000080)
67395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
67495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
67595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBPPCSR: BBP Pin control register.
67695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
67795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPPCSR				0x0124
67895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
67995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
68095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BCNCSR1: Tx BEACON offset time control register.
68195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PRELOAD: Beacon timer offset in units of usec.
68295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
68395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR1				0x0130
68495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR1_PRELOAD			FIELD32(0x0000ffff)
68595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
68695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
68795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MACCSR2: TX_PE to RX_PE turn-around time control register
68895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DELAY: RX_PE low width, in units of pci clock cycle.
68995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
69095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR2				0x0134
69195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR2_DELAY			FIELD32(0x000000ff)
69295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
69395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
69495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR2: 1 Mbps ACK/CTS PLCP.
69595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
69695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR2				0x013c
69795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR2_SIGNAL			FIELD32(0x000000ff)
69895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR2_SERVICE			FIELD32(0x0000ff00)
69995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR2_LENGTH_LOW		FIELD32(0x00ff0000)
70095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR2_LENGTH			FIELD32(0xffff0000)
70195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
70295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
70395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR3: 2 Mbps ACK/CTS PLCP.
70495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
70595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR3				0x0140
70695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR3_SIGNAL			FIELD32(0x000000ff)
70795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR3_SERVICE			FIELD32(0x0000ff00)
70895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR3_LENGTH			FIELD32(0xffff0000)
70995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
71095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
71195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR4: 5.5 Mbps ACK/CTS PLCP.
71295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
71395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR4				0x0144
71495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR4_SIGNAL			FIELD32(0x000000ff)
71595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR4_SERVICE			FIELD32(0x0000ff00)
71695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR4_LENGTH			FIELD32(0xffff0000)
71795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
71895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
71995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR5: 11 Mbps ACK/CTS PLCP.
72095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
72195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR5				0x0148
72295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR5_SIGNAL			FIELD32(0x000000ff)
72395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR5_SERVICE			FIELD32(0x0000ff00)
72495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR5_LENGTH			FIELD32(0xffff0000)
72595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
72695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
72795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP registers.
72895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * The wordsize of the BBP is 8 bits.
72995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
73095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
73195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
73295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * R1: TX antenna control
73395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
73495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBP_R1_TX_ANTENNA		FIELD8(0x03)
73595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
73695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
73795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * R4: RX antenna control
73895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
73995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBP_R4_RX_ANTENNA		FIELD8(0x06)
74095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
74195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
74295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF registers
74395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
74495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
74595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
74695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF 1
74795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
74895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF1_TUNER			FIELD32(0x00020000)
74995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
75095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
75195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF 3
75295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
75395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF3_TUNER			FIELD32(0x00000100)
75495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF3_TXPOWER			FIELD32(0x00003e00)
75595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
75695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
75795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM content.
75895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * The wordsize of the EEPROM is 16 bits.
75995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
76095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
76195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
76295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * HW MAC address.
76395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
76495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_0		0x0002
76595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE0		FIELD16(0x00ff)
76695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE1		FIELD16(0xff00)
76795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR1		0x0003
76895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE2		FIELD16(0x00ff)
76995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE3		FIELD16(0xff00)
77095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_2		0x0004
77195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE4		FIELD16(0x00ff)
77295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE5		FIELD16(0xff00)
77395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
77495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
77595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM antenna.
77695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ANTENNA_NUM: Number of antenna's.
77795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TX_DEFAULT: Default antenna 0: diversity, 1: A, 2: B.
77895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RX_DEFAULT: Default antenna 0: diversity, 1: A, 2: B.
77995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF_TYPE: Rf_type of this adapter.
78095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LED_MODE: 0: default, 1: TX/RX activity,2: Single (ignore link), 3: rsvd.
78195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RX_AGCVGC: 0: disable, 1:enable BBP R13 tuning.
78295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * HARDWARE_RADIO: 1: Hardware controlled radio. Read GPIO0.
78395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
78495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA			0x0b
78595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_NUM		FIELD16(0x0003)
78695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_TX_DEFAULT	FIELD16(0x000c)
78795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_RX_DEFAULT	FIELD16(0x0030)
78895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_RF_TYPE		FIELD16(0x0040)
78995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_LED_MODE		FIELD16(0x0180)
79095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_RX_AGCVGC_TUNING	FIELD16(0x0200)
79195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_HARDWARE_RADIO	FIELD16(0x0400)
79295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
79395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
79495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM BBP.
79595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
79695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BBP_START		0x0c
79795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BBP_SIZE			7
79895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BBP_VALUE		FIELD16(0x00ff)
79995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BBP_REG_ID		FIELD16(0xff00)
80095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
80195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
80295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM TXPOWER
80395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
80495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_TXPOWER_START		0x13
80595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_TXPOWER_SIZE		7
80695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_TXPOWER_1		FIELD16(0x00ff)
80795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_TXPOWER_2		FIELD16(0xff00)
80895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
80995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
81095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DMA descriptor defines.
81195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
81246b9786975a69a75f25b71796f7e36d203fbd4eeMark Einon#define TXD_DESC_SIZE			(8 * sizeof(__le32))
81346b9786975a69a75f25b71796f7e36d203fbd4eeMark Einon#define RXD_DESC_SIZE			(8 * sizeof(__le32))
81495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
81595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
81695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TX descriptor format for TX, PRIO, ATIM and Beacon Ring.
81795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
81895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
81995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
82095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word0
82195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
82295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_OWNER_NIC		FIELD32(0x00000001)
82395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_VALID			FIELD32(0x00000002)
82495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_RESULT			FIELD32(0x0000001c)
82595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_RETRY_COUNT		FIELD32(0x000000e0)
82695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_MORE_FRAG		FIELD32(0x00000100)
82795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_ACK			FIELD32(0x00000200)
82895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_TIMESTAMP		FIELD32(0x00000400)
82995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_RTS			FIELD32(0x00000800)
83095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_IFS			FIELD32(0x00006000)
83195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_RETRY_MODE		FIELD32(0x00008000)
83295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_AGC			FIELD32(0x00ff0000)
83395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_R2			FIELD32(0xff000000)
83495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
83595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
83695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word1
83795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
83895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W1_BUFFER_ADDRESS		FIELD32(0xffffffff)
83995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
84095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
84195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word2
84295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
84395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W2_BUFFER_LENGTH		FIELD32(0x0000ffff)
84495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W2_DATABYTE_COUNT		FIELD32(0xffff0000)
84595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
84695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
84795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word3 & 4: PLCP information
84849da2605e27935835861a118df0671b5f004bfacIvo van Doorn * The PLCP values should be treated as if they were BBP values.
84949da2605e27935835861a118df0671b5f004bfacIvo van Doorn */
85049da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_SIGNAL		FIELD32(0x000000ff)
85149da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_SIGNAL_REGNUM	FIELD32(0x00007f00)
85249da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_SIGNAL_BUSY		FIELD32(0x00008000)
85349da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_SERVICE		FIELD32(0x00ff0000)
85449da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_SERVICE_REGNUM	FIELD32(0x7f000000)
85549da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_SERVICE_BUSY	FIELD32(0x80000000)
85649da2605e27935835861a118df0671b5f004bfacIvo van Doorn
85749da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W4_PLCP_LENGTH_LOW		FIELD32(0x000000ff)
85849da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_LENGTH_LOW_REGNUM	FIELD32(0x00007f00)
85949da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_LENGTH_LOW_BUSY	FIELD32(0x00008000)
86049da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W4_PLCP_LENGTH_HIGH		FIELD32(0x00ff0000)
86149da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_LENGTH_HIGH_REGNUM	FIELD32(0x7f000000)
86249da2605e27935835861a118df0671b5f004bfacIvo van Doorn#define TXD_W3_PLCP_LENGTH_HIGH_BUSY	FIELD32(0x80000000)
86395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
86495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
86595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word5
86695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
86795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W5_BBCR4			FIELD32(0x0000ffff)
86895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W5_AGC_REG			FIELD32(0x007f0000)
86995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W5_AGC_REG_VALID		FIELD32(0x00800000)
87095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W5_XXX_REG			FIELD32(0x7f000000)
87195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W5_XXX_REG_VALID		FIELD32(0x80000000)
87295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
87395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
87495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word6
87595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
87695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W6_SK_BUFF			FIELD32(0xffffffff)
87795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
87895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
87995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word7
88095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
88195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W7_RESERVED			FIELD32(0xffffffff)
88295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
88395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
88495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RX descriptor format for RX Ring.
88595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
88695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
88795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
88895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word0
88995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
89095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_OWNER_NIC		FIELD32(0x00000001)
89195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_UNICAST_TO_ME		FIELD32(0x00000002)
89295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_MULTICAST		FIELD32(0x00000004)
89395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_BROADCAST		FIELD32(0x00000008)
89495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_MY_BSS			FIELD32(0x00000010)
89595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_CRC_ERROR		FIELD32(0x00000020)
89695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_PHYSICAL_ERROR		FIELD32(0x00000080)
89795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_DATABYTE_COUNT		FIELD32(0xffff0000)
89895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
89995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
90095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word1
90195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
90295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W1_BUFFER_ADDRESS		FIELD32(0xffffffff)
90395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
90495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
90595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word2
90695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
90795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W2_BUFFER_LENGTH		FIELD32(0x0000ffff)
90889993890aeb8fe58b2d49b2661965524802ab73cIvo van Doorn#define RXD_W2_BBR0			FIELD32(0x00ff0000)
90989993890aeb8fe58b2d49b2661965524802ab73cIvo van Doorn#define RXD_W2_SIGNAL			FIELD32(0xff000000)
91095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
91195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
91295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word3
91395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
91489993890aeb8fe58b2d49b2661965524802ab73cIvo van Doorn#define RXD_W3_RSSI			FIELD32(0x000000ff)
91595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W3_BBR3			FIELD32(0x0000ff00)
91695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W3_BBR4			FIELD32(0x00ff0000)
91795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W3_BBR5			FIELD32(0xff000000)
91895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
91995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
92095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word4
92195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
92295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W4_RX_END_TIME		FIELD32(0xffffffff)
92395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
92495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
92595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word5 & 6 & 7: Reserved
92695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
92795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W5_RESERVED			FIELD32(0xffffffff)
92895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W6_RESERVED			FIELD32(0xffffffff)
92995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W7_RESERVED			FIELD32(0xffffffff)
93095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
93195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
9324951348109c334f2b839816bd161522d089cb782Luis Correia * Macros for converting txpower from EEPROM to mac80211 value
933de99ff82cdc2e5b596d01000eed9e0d05566f2d7Ivo van Doorn * and from mac80211 value to register value.
93495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NOTE: Logics in rt2400pci for txpower are reversed
93595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * compared to the other rt2x00 drivers. A higher txpower
93695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * value means that the txpower must be lowered. This is
93795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * important when converting the value coming from the
938de99ff82cdc2e5b596d01000eed9e0d05566f2d7Ivo van Doorn * mac80211 stack to the rt2400 acceptable value.
93995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
94095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MIN_TXPOWER	31
94195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MAX_TXPOWER	62
94295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define DEFAULT_TXPOWER	39
94395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
9448c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn#define __CLAMP_TX(__txpower) \
9458c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn	clamp_t(char, (__txpower), MIN_TXPOWER, MAX_TXPOWER)
9468c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn
9478c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn#define TXPOWER_FROM_DEV(__txpower) \
9488c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn	((__CLAMP_TX(__txpower) - MAX_TXPOWER) + MIN_TXPOWER)
9498c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn
9508c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn#define TXPOWER_TO_DEV(__txpower) \
95146b9786975a69a75f25b71796f7e36d203fbd4eeMark Einon	(MAX_TXPOWER - (__CLAMP_TX(__txpower) - MIN_TXPOWER))
95295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
95395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#endif /* RT2400PCI_H */
954