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: rt2500pci
2395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	Abstract: Data structures and registers for the rt2500pci module.
2495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn	Supported chipsets: RT2560.
2595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
2695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
2795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#ifndef RT2500PCI_H
2895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RT2500PCI_H
2995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
3095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
3195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF chip defines.
3295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
3395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF2522				0x0000
3495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF2523				0x0001
3595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF2524				0x0002
3695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF2525				0x0003
3795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF2525E				0x0004
3895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF5222				0x0010
3995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
4095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
4195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RT2560 version
4295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
4395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RT2560_VERSION_B		2
4495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RT2560_VERSION_C		3
4595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RT2560_VERSION_D		4
4695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
4795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
4895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Signal information.
49af901ca181d92aac3a7dc265144a9081a86d8f39André Goddard Rosa * Default offset is required for RSSI <-> dBm conversion.
5095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
5195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define DEFAULT_RSSI_OFFSET		121
5295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
5395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
5495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Register layout information.
5595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
5695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR_REG_BASE			0x0000
5795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR_REG_SIZE			0x0174
5895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BASE			0x0000
5995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_SIZE			0x0200
60743b97caf98036ec8ee4bfc6fc6f85ad94e04783Ivo van Doorn#define BBP_BASE			0x0000
6195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBP_SIZE			0x0040
6253bc647a1a96189be53b68b9e8c40df0f42fc300Ivo van Doorn#define RF_BASE				0x0004
6353bc647a1a96189be53b68b9e8c40df0f42fc300Ivo van Doorn#define RF_SIZE				0x0010
6495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
6595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
6661448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde * Number of TX queues.
6761448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde */
6861448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde#define NUM_TX_QUEUES			2
6961448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde
7061448f88078e813bbaaa58eb775d650c85e7d407Gertjan van Wingerde/*
7195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Control/Status Registers(CSR).
7295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Some values are set in TU, whereas 1 TU == 1024 us.
7395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
7495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
7595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
7695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR0: ASIC revision number.
7795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
7895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR0				0x0000
7949e721ec6ca74f90ee99089ad2de1c338a95c6d5Gertjan van Wingerde#define CSR0_REVISION			FIELD32(0x0000ffff)
8095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
8195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
8295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR1: System control register.
8395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SOFT_RESET: Software reset, 1: reset, 0: normal.
8495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_RESET: Hardware reset, 1: reset, 0, release.
8595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * HOST_READY: Host ready after initialization.
8695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
8795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR1				0x0004
8895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR1_SOFT_RESET			FIELD32(0x00000001)
8995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR1_BBP_RESET			FIELD32(0x00000002)
9095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR1_HOST_READY			FIELD32(0x00000004)
9195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
9295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
9395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR2: System admin status register (invalid).
9495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
9595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR2				0x0008
9695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
9795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
9895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR3: STA MAC address register 0.
9995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
10095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3				0x000c
10195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3_BYTE0			FIELD32(0x000000ff)
10295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3_BYTE1			FIELD32(0x0000ff00)
10395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3_BYTE2			FIELD32(0x00ff0000)
10495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR3_BYTE3			FIELD32(0xff000000)
10595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
10695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
10795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR4: STA MAC address register 1.
10895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
10995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR4				0x0010
11095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR4_BYTE4			FIELD32(0x000000ff)
11195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR4_BYTE5			FIELD32(0x0000ff00)
11295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
11395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
11495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR5: BSSID register 0.
11595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
11695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5				0x0014
11795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5_BYTE0			FIELD32(0x000000ff)
11895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5_BYTE1			FIELD32(0x0000ff00)
11995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5_BYTE2			FIELD32(0x00ff0000)
12095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR5_BYTE3			FIELD32(0xff000000)
12195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
12295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
12395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR6: BSSID register 1.
12495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
12595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR6				0x0018
12695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR6_BYTE4			FIELD32(0x000000ff)
12795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR6_BYTE5			FIELD32(0x0000ff00)
12895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
12995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
13095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR7: Interrupt source register.
13195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Write 1 to clear.
13295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCN_EXPIRE: Beacon timer expired interrupt.
13395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TWAKE_EXPIRE: Wakeup timer expired interrupt.
13495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TATIMW_EXPIRE: Timer of atim window expired interrupt.
13595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_TXRING: Tx ring transmit done interrupt.
13695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_ATIMRING: Atim ring transmit done interrupt.
13795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_PRIORING: Priority ring transmit done interrupt.
13895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXDONE: Receive done interrupt.
13995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DECRYPTION_DONE: Decryption done interrupt.
14095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ENCRYPTION_DONE: Encryption done interrupt.
14195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_TX_TRESHOLD: UART1 TX reaches threshold.
14295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_RX_TRESHOLD: UART1 RX reaches threshold.
14395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_IDLE_TRESHOLD: UART1 IDLE over threshold.
14495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_TX_BUFF_ERROR: UART1 TX buffer error.
14595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_RX_BUFF_ERROR: UART1 RX buffer error.
14695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_TX_TRESHOLD: UART2 TX reaches threshold.
14795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_RX_TRESHOLD: UART2 RX reaches threshold.
14895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_IDLE_TRESHOLD: UART2 IDLE over threshold.
14995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_TX_BUFF_ERROR: UART2 TX buffer error.
15095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_RX_BUFF_ERROR: UART2 RX buffer error.
15195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TIMER_CSR3_EXPIRE: TIMECSR3 timer expired (802.1H quiet period).
15295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
15395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
15495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7				0x001c
15595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TBCN_EXPIRE		FIELD32(0x00000001)
15695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TWAKE_EXPIRE		FIELD32(0x00000002)
15795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TATIMW_EXPIRE		FIELD32(0x00000004)
15895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TXDONE_TXRING		FIELD32(0x00000008)
15995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TXDONE_ATIMRING		FIELD32(0x00000010)
16095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TXDONE_PRIORING		FIELD32(0x00000020)
16195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_RXDONE			FIELD32(0x00000040)
16295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_DECRYPTION_DONE		FIELD32(0x00000080)
16395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_ENCRYPTION_DONE		FIELD32(0x00000100)
16495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART1_TX_TRESHOLD		FIELD32(0x00000200)
16595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART1_RX_TRESHOLD		FIELD32(0x00000400)
16695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART1_IDLE_TRESHOLD	FIELD32(0x00000800)
16795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART1_TX_BUFF_ERROR	FIELD32(0x00001000)
16895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART1_RX_BUFF_ERROR	FIELD32(0x00002000)
16995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART2_TX_TRESHOLD		FIELD32(0x00004000)
17095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART2_RX_TRESHOLD		FIELD32(0x00008000)
17195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART2_IDLE_TRESHOLD	FIELD32(0x00010000)
17295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART2_TX_BUFF_ERROR	FIELD32(0x00020000)
17395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_UART2_RX_BUFF_ERROR	FIELD32(0x00040000)
17495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR7_TIMER_CSR3_EXPIRE		FIELD32(0x00080000)
17595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
17695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
17795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR8: Interrupt mask register.
17895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Write 1 to mask interrupt.
17995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCN_EXPIRE: Beacon timer expired interrupt.
18095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TWAKE_EXPIRE: Wakeup timer expired interrupt.
18195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TATIMW_EXPIRE: Timer of atim window expired interrupt.
18295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_TXRING: Tx ring transmit done interrupt.
18395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_ATIMRING: Atim ring transmit done interrupt.
18495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXDONE_PRIORING: Priority ring transmit done interrupt.
18595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXDONE: Receive done interrupt.
18695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DECRYPTION_DONE: Decryption done interrupt.
18795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ENCRYPTION_DONE: Encryption done interrupt.
18895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_TX_TRESHOLD: UART1 TX reaches threshold.
18995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_RX_TRESHOLD: UART1 RX reaches threshold.
19095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_IDLE_TRESHOLD: UART1 IDLE over threshold.
19195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_TX_BUFF_ERROR: UART1 TX buffer error.
19295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART1_RX_BUFF_ERROR: UART1 RX buffer error.
19395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_TX_TRESHOLD: UART2 TX reaches threshold.
19495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_RX_TRESHOLD: UART2 RX reaches threshold.
19595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_IDLE_TRESHOLD: UART2 IDLE over threshold.
19695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_TX_BUFF_ERROR: UART2 TX buffer error.
19795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2_RX_BUFF_ERROR: UART2 RX buffer error.
19895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TIMER_CSR3_EXPIRE: TIMECSR3 timer expired (802.1H quiet period).
19995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
20095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8				0x0020
20195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TBCN_EXPIRE		FIELD32(0x00000001)
20295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TWAKE_EXPIRE		FIELD32(0x00000002)
20395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TATIMW_EXPIRE		FIELD32(0x00000004)
20495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TXDONE_TXRING		FIELD32(0x00000008)
20595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TXDONE_ATIMRING		FIELD32(0x00000010)
20695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TXDONE_PRIORING		FIELD32(0x00000020)
20795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_RXDONE			FIELD32(0x00000040)
20895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_DECRYPTION_DONE		FIELD32(0x00000080)
20995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_ENCRYPTION_DONE		FIELD32(0x00000100)
21095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART1_TX_TRESHOLD		FIELD32(0x00000200)
21195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART1_RX_TRESHOLD		FIELD32(0x00000400)
21295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART1_IDLE_TRESHOLD	FIELD32(0x00000800)
21395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART1_TX_BUFF_ERROR	FIELD32(0x00001000)
21495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART1_RX_BUFF_ERROR	FIELD32(0x00002000)
21595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART2_TX_TRESHOLD		FIELD32(0x00004000)
21695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART2_RX_TRESHOLD		FIELD32(0x00008000)
21795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART2_IDLE_TRESHOLD	FIELD32(0x00010000)
21895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART2_TX_BUFF_ERROR	FIELD32(0x00020000)
21995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_UART2_RX_BUFF_ERROR	FIELD32(0x00040000)
22095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR8_TIMER_CSR3_EXPIRE		FIELD32(0x00080000)
22195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
22295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
22395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR9: Maximum frame length register.
22495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MAX_FRAME_UNIT: Maximum frame length in 128b unit, default: 12.
22595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
22695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR9				0x0024
22795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR9_MAX_FRAME_UNIT		FIELD32(0x00000f80)
22895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
22995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
23095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SECCSR0: WEP control register.
23195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_DECRYPT: Kick decryption engine, self-clear.
23295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ONE_SHOT: 0: ring mode, 1: One shot only mode.
23395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DESC_ADDRESS: Descriptor physical address of frame.
23495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
23595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define SECCSR0				0x0028
23695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define SECCSR0_KICK_DECRYPT		FIELD32(0x00000001)
23795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define SECCSR0_ONE_SHOT		FIELD32(0x00000002)
23895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define SECCSR0_DESC_ADDRESS		FIELD32(0xfffffffc)
23995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
24095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
24195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR11: Back-off control register.
24295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CWMIN: CWmin. Default cwmin is 31 (2^5 - 1).
24395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CWMAX: CWmax. Default cwmax is 1023 (2^10 - 1).
24495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SLOT_TIME: Slot time, default is 20us for 802.11b
24595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CW_SELECT: CWmin/CWmax selection, 1: Register, 0: TXD.
24695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LONG_RETRY: Long retry count.
24795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SHORT_RETRY: Short retry count.
24895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
24995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11				0x002c
25095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_CWMIN			FIELD32(0x0000000f)
25195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_CWMAX			FIELD32(0x000000f0)
25295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_SLOT_TIME			FIELD32(0x00001f00)
25395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_CW_SELECT			FIELD32(0x00002000)
25495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_LONG_RETRY		FIELD32(0x00ff0000)
25595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR11_SHORT_RETRY		FIELD32(0xff000000)
25695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
25795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
25895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR12: Synchronization configuration register 0.
25995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * All units in 1/16 TU.
26095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BEACON_INTERVAL: Beacon interval, default is 100 TU.
26195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFP_MAX_DURATION: Cfp maximum duration, default is 100 TU.
26295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
26395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR12				0x0030
26495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR12_BEACON_INTERVAL		FIELD32(0x0000ffff)
26595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR12_CFP_MAX_DURATION		FIELD32(0xffff0000)
26695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
26795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
26895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR13: Synchronization configuration register 1.
26995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * All units in 1/16 TU.
27095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ATIMW_DURATION: Atim window duration.
27195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFP_PERIOD: Cfp period, default is 0 TU.
27295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
27395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR13				0x0034
27495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR13_ATIMW_DURATION		FIELD32(0x0000ffff)
27595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR13_CFP_PERIOD		FIELD32(0x00ff0000)
27695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
27795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
27895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR14: Synchronization control register.
27995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TSF_COUNT: Enable tsf auto counting.
28095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TSF_SYNC: Tsf sync, 0: disable, 1: infra, 2: ad-hoc/master mode.
28195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCN: Enable tbcn with reload value.
28295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TCFP: Enable tcfp & cfp / cp switching.
28395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TATIMW: Enable tatimw & atim window switching.
28495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BEACON_GEN: Enable beacon generator.
28595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFP_COUNT_PRELOAD: Cfp count preload value.
28695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCM_PRELOAD: Tbcn preload value in units of 64us.
28795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
28895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14				0x0038
28995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TSF_COUNT			FIELD32(0x00000001)
29095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TSF_SYNC			FIELD32(0x00000006)
29195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TBCN			FIELD32(0x00000008)
29295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TCFP			FIELD32(0x00000010)
29395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TATIMW			FIELD32(0x00000020)
29495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_BEACON_GEN		FIELD32(0x00000040)
29595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_CFP_COUNT_PRELOAD		FIELD32(0x0000ff00)
29695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR14_TBCM_PRELOAD		FIELD32(0xffff0000)
29795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
29895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
29995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR15: Synchronization status register.
30095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFP: ASIC is in contention-free period.
30195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ATIMW: ASIC is in ATIM window.
30295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BEACON_SENT: Beacon is send.
30395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
30495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR15				0x003c
30595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR15_CFP			FIELD32(0x00000001)
30695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR15_ATIMW			FIELD32(0x00000002)
30795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR15_BEACON_SENT		FIELD32(0x00000004)
30895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
30995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
31095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR16: TSF timer register 0.
31195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
31295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR16				0x0040
31395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR16_LOW_TSFTIMER		FIELD32(0xffffffff)
31495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
31595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
31695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR17: TSF timer register 1.
31795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
31895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR17				0x0044
31995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR17_HIGH_TSFTIMER		FIELD32(0xffffffff)
32095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
32195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
32295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR18: IFS timer register 0.
32395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SIFS: Sifs, default is 10 us.
32495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PIFS: Pifs, default is 30 us.
32595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
32695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR18				0x0048
32795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR18_SIFS			FIELD32(0x000001ff)
32895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR18_PIFS			FIELD32(0x001f0000)
32995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
33095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
33195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR19: IFS timer register 1.
33295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DIFS: Difs, default is 50 us.
33395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EIFS: Eifs, default is 364 us.
33495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
33595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR19				0x004c
33695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR19_DIFS			FIELD32(0x0000ffff)
33795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR19_EIFS			FIELD32(0xffff0000)
33895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
33995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
34095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR20: Wakeup timer register.
34195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DELAY_AFTER_TBCN: Delay after tbcn expired in units of 1/16 TU.
34295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TBCN_BEFORE_WAKEUP: Number of beacon before wakeup.
34395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AUTOWAKE: Enable auto wakeup / sleep mechanism.
34495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
34595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR20				0x0050
34695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR20_DELAY_AFTER_TBCN		FIELD32(0x0000ffff)
34795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR20_TBCN_BEFORE_WAKEUP	FIELD32(0x00ff0000)
34895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR20_AUTOWAKE			FIELD32(0x01000000)
34995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
35095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
35195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR21: EEPROM control register.
35295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RELOAD: Write 1 to reload eeprom content.
35395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TYPE_93C46: 1: 93c46, 0:93c66.
35495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
35595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21				0x0054
35695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_RELOAD			FIELD32(0x00000001)
35795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_EEPROM_DATA_CLOCK		FIELD32(0x00000002)
35895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_EEPROM_CHIP_SELECT	FIELD32(0x00000004)
35995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_EEPROM_DATA_IN		FIELD32(0x00000008)
36095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_EEPROM_DATA_OUT		FIELD32(0x00000010)
36195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR21_TYPE_93C46		FIELD32(0x00000020)
36295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
36395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
36495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CSR22: CFP control register.
36595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CFP_DURATION_REMAIN: Cfp duration remain, in units of TU.
36695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RELOAD_CFP_DURATION: Write 1 to reload cfp duration remain.
36795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
36895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR22				0x0058
36995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR22_CFP_DURATION_REMAIN	FIELD32(0x0000ffff)
37095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CSR22_RELOAD_CFP_DURATION	FIELD32(0x00010000)
37195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
37295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
37395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Transmit related CSRs.
37495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Some values are set in TU, whereas 1 TU == 1024 us.
37595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
37695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
37795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
37895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR0: TX Control Register.
37995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_TX: Kick tx ring.
38095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_ATIM: Kick atim ring.
38195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_PRIO: Kick priority ring.
38295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ABORT: Abort all transmit related ring operation.
38395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
38495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0				0x0060
38595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0_KICK_TX			FIELD32(0x00000001)
38695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0_KICK_ATIM		FIELD32(0x00000002)
38795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0_KICK_PRIO		FIELD32(0x00000004)
38895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR0_ABORT			FIELD32(0x00000008)
38995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
39095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
39195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR1: TX Configuration Register.
39295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACK_TIMEOUT: Ack timeout, default = sifs + 2*slottime + acktime @ 1mbps.
39395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACK_CONSUME_TIME: Ack consume time, default = sifs + acktime @ 1mbps.
39495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TSF_OFFSET: Insert tsf offset.
39595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AUTORESPONDER: Enable auto responder which include ack & cts.
39695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
39795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1				0x0064
39895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1_ACK_TIMEOUT		FIELD32(0x000001ff)
39995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1_ACK_CONSUME_TIME		FIELD32(0x0003fe00)
40095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1_TSF_OFFSET		FIELD32(0x00fc0000)
40195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR1_AUTORESPONDER		FIELD32(0x01000000)
40295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
40395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
40495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR2: Tx descriptor configuration register.
40595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXD_SIZE: Tx descriptor size, default is 48.
40695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_TXD: Number of tx entries in ring.
40795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_ATIM: Number of atim entries in ring.
40895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_PRIO: Number of priority entries in ring.
40995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
41095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2				0x0068
41195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2_TXD_SIZE			FIELD32(0x000000ff)
41295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2_NUM_TXD			FIELD32(0x0000ff00)
41395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2_NUM_ATIM			FIELD32(0x00ff0000)
41495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR2_NUM_PRIO			FIELD32(0xff000000)
41595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
41695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
41795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR3: TX Ring Base address register.
41895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
41995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR3				0x006c
42095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR3_TX_RING_REGISTER		FIELD32(0xffffffff)
42195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
42295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
42395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR4: TX Atim Ring Base address register.
42495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
42595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR4				0x0070
42695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR4_ATIM_RING_REGISTER	FIELD32(0xffffffff)
42795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
42895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
42995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR5: TX Prio Ring Base address register.
43095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
43195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR5				0x0074
43295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR5_PRIO_RING_REGISTER	FIELD32(0xffffffff)
43395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
43495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
43595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR6: Beacon Base address register.
43695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
43795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR6				0x0078
43895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR6_BEACON_RING_REGISTER	FIELD32(0xffffffff)
43995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
44095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
44195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR7: Auto responder control register.
44295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AR_POWERMANAGEMENT: Auto responder power management bit.
44395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
44495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR7				0x007c
44595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR7_AR_POWERMANAGEMENT	FIELD32(0x00000001)
44695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
44795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
44895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR8: CCK Tx BBP register.
44995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
45095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR8				0x0098
45195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR8_BBP_ID0			FIELD32(0x0000007f)
45295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR8_BBP_ID0_VALID		FIELD32(0x00000080)
45395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR8_BBP_ID1			FIELD32(0x00007f00)
45495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR8_BBP_ID1_VALID		FIELD32(0x00008000)
45595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR8_BBP_ID2			FIELD32(0x007f0000)
45695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR8_BBP_ID2_VALID		FIELD32(0x00800000)
45795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR8_BBP_ID3			FIELD32(0x7f000000)
45895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR8_BBP_ID3_VALID		FIELD32(0x80000000)
45995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
46095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
46195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXCSR9: OFDM TX BBP registers
46295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * OFDM_SIGNAL: BBP rate field address for OFDM.
46395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * OFDM_SERVICE: BBP service field address for OFDM.
46495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * OFDM_LENGTH_LOW: BBP length low byte address for OFDM.
46595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * OFDM_LENGTH_HIGH: BBP length high byte address for OFDM.
46695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
46795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR9				0x0094
46895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR9_OFDM_RATE		FIELD32(0x000000ff)
46995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR9_OFDM_SERVICE		FIELD32(0x0000ff00)
47095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR9_OFDM_LENGTH_LOW		FIELD32(0x00ff0000)
47195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXCSR9_OFDM_LENGTH_HIGH		FIELD32(0xff000000)
47295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
47395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
47495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Receive related CSRs.
47595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Some values are set in TU, whereas 1 TU == 1024 us.
47695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
47795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
47895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
47995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXCSR0: RX Control Register.
48095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DISABLE_RX: Disable rx engine.
48195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_CRC: Drop crc error.
48295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_PHYSICAL: Drop physical error.
48395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_CONTROL: Drop control frame.
48495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_NOT_TO_ME: Drop not to me unicast frame.
48595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_TODS: Drop frame tods bit is true.
48695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_VERSION_ERROR: Drop version error frame.
48795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PASS_CRC: Pass all packets with crc attached.
48895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PASS_CRC: Pass all packets with crc attached.
48995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PASS_PLCP: Pass all packets with 4 bytes PLCP attached.
49095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_MCAST: Drop multicast frames.
49195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DROP_BCAST: Drop broadcast frames.
49295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ENABLE_QOS: Accept QOS data frame and parse QOS field.
49395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
49495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0				0x0080
49595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DISABLE_RX		FIELD32(0x00000001)
49695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_CRC			FIELD32(0x00000002)
49795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_PHYSICAL		FIELD32(0x00000004)
49895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_CONTROL		FIELD32(0x00000008)
49995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_NOT_TO_ME		FIELD32(0x00000010)
50095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_TODS		FIELD32(0x00000020)
50195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_VERSION_ERROR	FIELD32(0x00000040)
50295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_PASS_CRC			FIELD32(0x00000080)
50395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_PASS_PLCP		FIELD32(0x00000100)
50495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_MCAST		FIELD32(0x00000200)
50595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_DROP_BCAST		FIELD32(0x00000400)
50695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR0_ENABLE_QOS		FIELD32(0x00000800)
50795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
50895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
50995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXCSR1: RX descriptor configuration register.
51095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXD_SIZE: Rx descriptor size, default is 32b.
51195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_RXD: Number of rx entries in ring.
51295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
51395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR1				0x0084
51495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR1_RXD_SIZE			FIELD32(0x000000ff)
51595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR1_NUM_RXD			FIELD32(0x0000ff00)
51695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
51795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
51895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXCSR2: RX Ring base address register.
51995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
52095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR2				0x0088
52195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR2_RX_RING_REGISTER		FIELD32(0xffffffff)
52295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
52395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
52495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXCSR3: BBP ID register for Rx operation.
52595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_ID#: BBP register # id.
52695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_ID#_VALID: BBP register # id is valid or not.
52795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
52895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3				0x0090
52995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID0			FIELD32(0x0000007f)
53095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID0_VALID		FIELD32(0x00000080)
53195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID1			FIELD32(0x00007f00)
53295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID1_VALID		FIELD32(0x00008000)
53395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID2			FIELD32(0x007f0000)
53495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID2_VALID		FIELD32(0x00800000)
53595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID3			FIELD32(0x7f000000)
53695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXCSR3_BBP_ID3_VALID		FIELD32(0x80000000)
53795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
53895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
53995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR1: Auto Responder PLCP config register 1.
54095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AR_BBP_DATA#: Auto responder BBP register # data.
54195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AR_BBP_ID#: Auto responder BBP register # Id.
54295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
54395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1				0x009c
54495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1_AR_BBP_DATA2		FIELD32(0x000000ff)
54595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1_AR_BBP_ID2		FIELD32(0x0000ff00)
54695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1_AR_BBP_DATA3		FIELD32(0x00ff0000)
54795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR1_AR_BBP_ID3		FIELD32(0xff000000)
54895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
54995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
55095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Miscellaneous Registers.
55195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Some values are set in TU, whereas 1 TU == 1024 us.
55295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
55395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
55495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
55595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
55695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PCICSR: PCI control register.
55795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BIG_ENDIAN: 1: big endian, 0: little endian.
55895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RX_TRESHOLD: Rx threshold in dw to start pci access
55995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * 0: 16dw (default), 1: 8dw, 2: 4dw, 3: 32dw.
56095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TX_TRESHOLD: Tx threshold in dw to start pci access
56195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * 0: 0dw (default), 1: 1dw, 2: 4dw, 3: forward.
56295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BURST_LENTH: Pci burst length 0: 4dw (default, 1: 8dw, 2: 16dw, 3:32dw.
56395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ENABLE_CLK: Enable clk_run, pci clock can't going down to non-operational.
56495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * READ_MULTIPLE: Enable memory read multiple.
56595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * WRITE_INVALID: Enable memory write & invalid.
56695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
56795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR				0x008c
56895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_BIG_ENDIAN		FIELD32(0x00000001)
56995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_RX_TRESHOLD		FIELD32(0x00000006)
57095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_TX_TRESHOLD		FIELD32(0x00000018)
57195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_BURST_LENTH		FIELD32(0x00000060)
57295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_ENABLE_CLK		FIELD32(0x00000080)
57395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_READ_MULTIPLE		FIELD32(0x00000100)
57495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PCICSR_WRITE_INVALID		FIELD32(0x00000200)
57595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
57695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
57795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT0: FCS error count.
57895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * FCS_ERROR: FCS error count, cleared when read.
57995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
58095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT0				0x00a0
58195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT0_FCS_ERROR			FIELD32(0x0000ffff)
58295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
58395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
58495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Statistic Register.
58595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT1: PLCP error count.
58695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT2: Long error count.
58795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
58895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR2			0x00a8
58995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT1				0x00ac
59095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT2				0x00b0
59195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR3			0x00b4
59295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
59395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
59495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT3: CCA false alarm count.
59595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
59695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT3				0x00b8
59795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT3_FALSE_CCA			FIELD32(0x0000ffff)
59895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
59995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
60095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Statistic Register.
60195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT4: Rx FIFO overflow count.
60295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CNT5: Tx FIFO underrun count.
60395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
60495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT4				0x00bc
60595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define CNT5				0x00c0
60695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
60795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
60895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Baseband Control Register.
60995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
61095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
61195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
61295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PWRCSR0: Power mode configuration register.
61395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
61495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR0				0x00c4
61595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
61695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
61795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Power state transition time registers.
61895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
61995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PSCSR0				0x00c8
62095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PSCSR1				0x00cc
62195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PSCSR2				0x00d0
62295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PSCSR3				0x00d4
62395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
62495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
62595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PWRCSR1: Manual power control / status register.
62695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Allowed state: 0 deep_sleep, 1: sleep, 2: standby, 3: awake.
62795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * SET_STATE: Set state. Write 1 to trigger, self cleared.
62895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_DESIRE_STATE: BBP desired state.
62995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF_DESIRE_STATE: RF desired state.
63095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_CURR_STATE: BBP current state.
63195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF_CURR_STATE: RF current state.
63295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PUT_TO_SLEEP: Put to sleep. Write 1 to trigger, self cleared.
63395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
63495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1				0x00d8
63595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_SET_STATE		FIELD32(0x00000001)
63695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_BBP_DESIRE_STATE	FIELD32(0x00000006)
63795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_RF_DESIRE_STATE		FIELD32(0x00000018)
63895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_BBP_CURR_STATE		FIELD32(0x00000060)
63995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_RF_CURR_STATE		FIELD32(0x00000180)
64095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PWRCSR1_PUT_TO_SLEEP		FIELD32(0x00000200)
64195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
64295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
64395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TIMECSR: Timer control register.
64495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * US_COUNT: 1 us timer count in units of clock cycles.
64595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * US_64_COUNT: 64 us timer count in units of 1 us timer.
64695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BEACON_EXPECT: Beacon expect window.
64795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
64895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR				0x00dc
64995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR_US_COUNT		FIELD32(0x000000ff)
65095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR_US_64_COUNT		FIELD32(0x0000ff00)
65195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TIMECSR_BEACON_EXPECT		FIELD32(0x00070000)
65295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
65395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
65495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MACCSR0: MAC configuration register 0.
65595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
65695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR0				0x00e0
65795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
65895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
65995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MACCSR1: MAC configuration register 1.
66095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_RX: Kick one-shot rx in one-shot rx mode.
66195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ONESHOT_RXMODE: Enable one-shot rx mode for debugging.
66295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBPRX_RESET_MODE: Ralink bbp rx reset mode.
66395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AUTO_TXBBP: Auto tx logic access bbp control register.
66495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AUTO_RXBBP: Auto rx logic access bbp control register.
66595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LOOPBACK: Loopback mode. 0: normal, 1: internal, 2: external, 3:rsvd.
66695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * INTERSIL_IF: Intersil if calibration pin.
66795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
66895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1				0x00e4
66995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_KICK_RX			FIELD32(0x00000001)
67095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_ONESHOT_RXMODE		FIELD32(0x00000002)
67195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_BBPRX_RESET_MODE	FIELD32(0x00000004)
67295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_AUTO_TXBBP		FIELD32(0x00000008)
67395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_AUTO_RXBBP		FIELD32(0x00000010)
67495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_LOOPBACK		FIELD32(0x00000060)
67595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR1_INTERSIL_IF		FIELD32(0x00000080)
67695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
67795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
67895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RALINKCSR: Ralink Rx auto-reset BBCR.
67995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AR_BBP_DATA#: Auto reset BBP register # data.
68095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * AR_BBP_ID#: Auto reset BBP register # id.
68195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
68295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR			0x00e8
68395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_DATA0		FIELD32(0x000000ff)
68495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_ID0		FIELD32(0x00007f00)
68595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_VALID0		FIELD32(0x00008000)
68695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_DATA1		FIELD32(0x00ff0000)
68795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_ID1		FIELD32(0x7f000000)
68895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RALINKCSR_AR_BBP_VALID1		FIELD32(0x80000000)
68995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
69095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
69195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BCNCSR: Beacon interval control register.
69295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CHANGE: Write one to change beacon interval.
69395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DELTATIME: The delta time value.
69495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUM_BEACON: Number of beacon according to mode.
69595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MODE: Please refer to asic specs.
69695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PLUS: Plus or minus delta time value.
69795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
69895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR				0x00ec
69995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_CHANGE			FIELD32(0x00000001)
70095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_DELTATIME		FIELD32(0x0000001e)
70195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_NUM_BEACON		FIELD32(0x00001fe0)
70295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_MODE			FIELD32(0x00006000)
70395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR_PLUS			FIELD32(0x00008000)
70495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
70595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
70695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP / RF / IF Control Register.
70795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
70895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
70995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
71095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBPCSR: BBP serial control register.
71195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * VALUE: Register value to program into BBP.
71295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * REGNUM: Selected BBP register.
71395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BUSY: 1: asic is busy execute BBP programming.
71495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * WRITE_CONTROL: 1: write BBP, 0: read BBP.
71595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
71695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR				0x00f0
71795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR_VALUE			FIELD32(0x000000ff)
71895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR_REGNUM			FIELD32(0x00007f00)
71995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR_BUSY			FIELD32(0x00008000)
72095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR_WRITE_CONTROL		FIELD32(0x00010000)
72195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
72295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
72395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RFCSR: RF serial control register.
72495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * VALUE: Register value + id to program into rf/if.
72595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * NUMBER_OF_BITS: Number of bits used in value (i:20, rfmd:22).
72695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * IF_SELECT: Chip to program: 0: rf, 1: if.
72795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PLL_LD: Rf pll_ld status.
72895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BUSY: 1: asic is busy execute rf programming.
72995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
73095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR				0x00f4
73195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_VALUE			FIELD32(0x00ffffff)
73295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_NUMBER_OF_BITS		FIELD32(0x1f000000)
73395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_IF_SELECT			FIELD32(0x20000000)
73495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_PLL_LD			FIELD32(0x40000000)
73595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RFCSR_BUSY			FIELD32(0x80000000)
73695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
73795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
73895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LEDCSR: LED control register.
73995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ON_PERIOD: On period, default 70ms.
74095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * OFF_PERIOD: Off period, default 30ms.
74195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LINK: 0: linkoff, 1: linkup.
74295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACTIVITY: 0: idle, 1: active.
74395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LINK_POLARITY: 0: active low, 1: active high.
74495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACTIVITY_POLARITY: 0: active low, 1: active high.
74595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LED_DEFAULT: LED state for "enable" 0: ON, 1: OFF.
74695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
74795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR				0x00f8
74895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_ON_PERIOD		FIELD32(0x000000ff)
74995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_OFF_PERIOD		FIELD32(0x0000ff00)
75095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_LINK			FIELD32(0x00010000)
75195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_ACTIVITY			FIELD32(0x00020000)
75295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_LINK_POLARITY		FIELD32(0x00040000)
75395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_ACTIVITY_POLARITY	FIELD32(0x00080000)
75495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define LEDCSR_LED_DEFAULT		FIELD32(0x00100000)
75595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
75695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
75784263b0c94431e686552a322ae84678fddd22ebdIvo van Doorn * SECCSR3: AES control register.
75895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
75995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define SECCSR3				0x00fc
76095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
76195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
76295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ASIC pointer information.
76395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RXPTR: Current RX ring address.
76495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXPTR: Current Tx ring address.
76595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PRIPTR: Current Priority ring address.
76695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ATIMPTR: Current ATIM ring address.
76795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
76895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXPTR				0x0100
76995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXPTR				0x0104
77095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define PRIPTR				0x0108
77195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ATIMPTR				0x010c
77295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
77395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
77495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TXACKCSR0: TX ACK timeout.
77595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
77695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXACKCSR0			0x0110
77795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
77895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
77995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACK timeout count registers.
78095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACKCNT0: TX ACK timeout count.
78195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ACKCNT1: RX ACK timeout count.
78295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
78395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ACKCNT0				0x0114
78495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ACKCNT1				0x0118
78595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
78695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
78795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * GPIO and others.
78895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
78995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
79095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
79195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * GPIOCSR: GPIO control register.
79295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
79395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR				0x0120
79495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT0			FIELD32(0x00000001)
79595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT1			FIELD32(0x00000002)
79695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT2			FIELD32(0x00000004)
79795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT3			FIELD32(0x00000008)
79895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT4			FIELD32(0x00000010)
79995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT5			FIELD32(0x00000020)
80095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT6			FIELD32(0x00000040)
80195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_BIT7			FIELD32(0x00000080)
80295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_DIR0			FIELD32(0x00000100)
80395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_DIR1			FIELD32(0x00000200)
80495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_DIR2			FIELD32(0x00000400)
80595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_DIR3			FIELD32(0x00000800)
80695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_DIR4			FIELD32(0x00001000)
80795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_DIR5			FIELD32(0x00002000)
80895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_DIR6			FIELD32(0x00004000)
80995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define GPIOCSR_DIR7			FIELD32(0x00008000)
81095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
81195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
81295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * FIFO pointer registers.
81395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * FIFOCSR0: TX FIFO pointer.
81495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * FIFOCSR1: RX FIFO pointer.
81595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
81695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define FIFOCSR0			0x0128
81795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define FIFOCSR1			0x012c
81895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
81995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
82095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BCNCSR1: Tx BEACON offset time control register.
82195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * PRELOAD: Beacon timer offset in units of usec.
82295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BEACON_CWMIN: 2^CwMin.
82395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
82495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR1				0x0130
82595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR1_PRELOAD			FIELD32(0x0000ffff)
82695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BCNCSR1_BEACON_CWMIN		FIELD32(0x000f0000)
82795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
82895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
82995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MACCSR2: TX_PE to RX_PE turn-around time control register
83095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DELAY: RX_PE low width, in units of pci clock cycle.
83195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
83295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR2				0x0134
83395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MACCSR2_DELAY			FIELD32(0x000000ff)
83495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
83595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
83695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TESTCSR: TEST mode selection register.
83795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
83895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TESTCSR				0x0138
83995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
84095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
84195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR2: 1 Mbps ACK/CTS PLCP.
84295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
84395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR2				0x013c
84495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR2_SIGNAL			FIELD32(0x000000ff)
84595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR2_SERVICE			FIELD32(0x0000ff00)
84695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR2_LENGTH			FIELD32(0xffff0000)
84795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
84895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
84995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR3: 2 Mbps ACK/CTS PLCP.
85095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
85195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR3				0x0140
85295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR3_SIGNAL			FIELD32(0x000000ff)
85395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR3_SERVICE			FIELD32(0x0000ff00)
85495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR3_LENGTH			FIELD32(0xffff0000)
85595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
85695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
85795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR4: 5.5 Mbps ACK/CTS PLCP.
85895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
85995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR4				0x0144
86095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR4_SIGNAL			FIELD32(0x000000ff)
86195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR4_SERVICE			FIELD32(0x0000ff00)
86295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR4_LENGTH			FIELD32(0xffff0000)
86395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
86495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
86595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARCSR5: 11 Mbps ACK/CTS PLCP.
86695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
86795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR5				0x0148
86895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR5_SIGNAL			FIELD32(0x000000ff)
86995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR5_SERVICE			FIELD32(0x0000ff00)
87095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARCSR5_LENGTH			FIELD32(0xffff0000)
87195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
87295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
87395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARTCSR0: CCK ACK/CTS payload consumed time for 1/2/5.5/11 mbps.
87495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
87595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR0				0x014c
87695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR0_ACK_CTS_11MBS		FIELD32(0x000000ff)
87795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR0_ACK_CTS_5_5MBS		FIELD32(0x0000ff00)
87895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR0_ACK_CTS_2MBS		FIELD32(0x00ff0000)
87995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR0_ACK_CTS_1MBS		FIELD32(0xff000000)
88095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
88195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
88295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
88395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARTCSR1: OFDM ACK/CTS payload consumed time for 6/9/12/18 mbps.
88495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
88595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR1				0x0150
88695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR1_ACK_CTS_6MBS		FIELD32(0x000000ff)
88795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR1_ACK_CTS_9MBS		FIELD32(0x0000ff00)
88895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR1_ACK_CTS_12MBS		FIELD32(0x00ff0000)
88995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR1_ACK_CTS_18MBS		FIELD32(0xff000000)
89095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
89195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
89295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ARTCSR2: OFDM ACK/CTS payload consumed time for 24/36/48/54 mbps.
89395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
89495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR2				0x0154
89595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR2_ACK_CTS_24MBS		FIELD32(0x000000ff)
89695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR2_ACK_CTS_36MBS		FIELD32(0x0000ff00)
89795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR2_ACK_CTS_48MBS		FIELD32(0x00ff0000)
89895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define ARTCSR2_ACK_CTS_54MBS		FIELD32(0xff000000)
89995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
90095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
90184263b0c94431e686552a322ae84678fddd22ebdIvo van Doorn * SECCSR1: WEP control register.
90295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * KICK_ENCRYPT: Kick encryption engine, self-clear.
90395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ONE_SHOT: 0: ring mode, 1: One shot only mode.
90495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DESC_ADDRESS: Descriptor physical address of frame.
90595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
90695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define SECCSR1				0x0158
90795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define SECCSR1_KICK_ENCRYPT		FIELD32(0x00000001)
90895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define SECCSR1_ONE_SHOT		FIELD32(0x00000002)
90995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define SECCSR1_DESC_ADDRESS		FIELD32(0xfffffffc)
91095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
91195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
91295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBPCSR1: BBP TX configuration.
91395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
91495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR1				0x015c
91595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR1_CCK			FIELD32(0x00000003)
91695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR1_CCK_FLIP		FIELD32(0x00000004)
91795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR1_OFDM			FIELD32(0x00030000)
91895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPCSR1_OFDM_FLIP		FIELD32(0x00040000)
91995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
92095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
92195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Dual band configuration registers.
92295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DBANDCSR0: Dual band configuration register 0.
92395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DBANDCSR1: Dual band configuration register 1.
92495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
92595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define DBANDCSR0			0x0160
92695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define DBANDCSR1			0x0164
92795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
92895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
92995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBPPCSR: BBP Pin control register.
93095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
93195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBPPCSR				0x0168
93295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
93395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
93495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MAC special debug mode selection registers.
93595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DBGSEL0: MAC special debug mode selection register 0.
93695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DBGSEL1: MAC special debug mode selection register 1.
93795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
93895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define DBGSEL0				0x016c
93995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define DBGSEL1				0x0170
94095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
94195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
94295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BISTCSR: BBP BIST register.
94395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
94495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BISTCSR				0x0174
94595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
94695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
94795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Multicast filter registers.
94895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MCAST0: Multicast filter register 0.
94995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * MCAST1: Multicast filter register 1.
95095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
95195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MCAST0				0x0178
95295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MCAST1				0x017c
95395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
95495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
95595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART registers.
95695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UARTCSR0: UART1 TX register.
95795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UARTCSR1: UART1 RX register.
95895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UARTCSR3: UART1 frame control register.
95995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UARTCSR4: UART1 buffer control register.
96095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2CSR0: UART2 TX register.
96195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2CSR1: UART2 RX register.
96295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2CSR3: UART2 frame control register.
96395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * UART2CSR4: UART2 buffer control register.
96495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
96595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define UARTCSR0			0x0180
96695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define UARTCSR1			0x0184
96795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define UARTCSR3			0x0188
96895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define UARTCSR4			0x018c
96995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define UART2CSR0			0x0190
97095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define UART2CSR1			0x0194
97195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define UART2CSR3			0x0198
97295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define UART2CSR4			0x019c
97395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
97495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
97595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP registers.
97695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * The wordsize of the BBP is 8 bits.
97795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
97895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
97995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
98095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * R2: TX antenna control
98195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
98295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBP_R2_TX_ANTENNA		FIELD8(0x03)
98395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBP_R2_TX_IQ_FLIP		FIELD8(0x04)
98495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
98595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
98695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * R14: RX antenna control
98795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
98895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBP_R14_RX_ANTENNA		FIELD8(0x03)
98995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBP_R14_RX_IQ_FLIP		FIELD8(0x04)
99095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
99195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
99295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * BBP_R70
99395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
99495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define BBP_R70_JAPAN_FILTER		FIELD8(0x08)
99595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
99695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
99795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF registers
99895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
99995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
100095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
100195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF 1
100295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
100395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF1_TUNER			FIELD32(0x00020000)
100495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
100595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
100695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF 3
100795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
100895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF3_TUNER			FIELD32(0x00000100)
100995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RF3_TXPOWER			FIELD32(0x00003e00)
101095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
101195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
101295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM content.
101395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * The wordsize of the EEPROM is 16 bits.
101495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
101595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
101695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
101795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * HW MAC address.
101895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
101995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_0		0x0002
102095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE0		FIELD16(0x00ff)
102195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE1		FIELD16(0xff00)
102295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR1		0x0003
102395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE2		FIELD16(0x00ff)
102495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE3		FIELD16(0xff00)
102595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_2		0x0004
102695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE4		FIELD16(0x00ff)
102795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_MAC_ADDR_BYTE5		FIELD16(0xff00)
102895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
102995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
103095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM antenna.
103195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * ANTENNA_NUM: Number of antenna's.
103295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TX_DEFAULT: Default antenna 0: diversity, 1: A, 2: B.
103395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RX_DEFAULT: Default antenna 0: diversity, 1: A, 2: B.
103495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * LED_MODE: 0: default, 1: TX/RX activity,2: Single (ignore link), 3: rsvd.
103595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DYN_TXAGC: Dynamic TX AGC control.
103695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * HARDWARE_RADIO: 1: Hardware controlled radio. Read GPIO0.
103795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RF_TYPE: Rf_type of this adapter.
103895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
103995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA			0x10
104095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_NUM		FIELD16(0x0003)
104195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_TX_DEFAULT	FIELD16(0x000c)
104295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_RX_DEFAULT	FIELD16(0x0030)
104395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_LED_MODE		FIELD16(0x01c0)
104495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_DYN_TXAGC	FIELD16(0x0200)
104595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_HARDWARE_RADIO	FIELD16(0x0400)
104695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_ANTENNA_RF_TYPE		FIELD16(0xf800)
104795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
104895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
104995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM NIC config.
105095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CARDBUS_ACCEL: 0: enable, 1: disable.
105195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DYN_BBP_TUNE: 0: enable, 1: disable.
105295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * CCK_TX_POWER: CCK TX power compensation.
105395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
105495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_NIC			0x11
105595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_NIC_CARDBUS_ACCEL	FIELD16(0x0001)
105695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_NIC_DYN_BBP_TUNE		FIELD16(0x0002)
105795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_NIC_CCK_TX_POWER		FIELD16(0x000c)
105895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
105995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
106095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM geography.
106195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * GEO: Default geography setting for device.
106295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
106395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_GEOGRAPHY		0x12
106495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_GEOGRAPHY_GEO		FIELD16(0x0f00)
106595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
106695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
106795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM BBP.
106895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
106995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BBP_START		0x13
107095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BBP_SIZE			16
107195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BBP_VALUE		FIELD16(0x00ff)
107295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_BBP_REG_ID		FIELD16(0xff00)
107395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
107495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
107595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * EEPROM TXPOWER
107695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
107795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_TXPOWER_START		0x23
107895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_TXPOWER_SIZE		7
107995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_TXPOWER_1		FIELD16(0x00ff)
108095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_TXPOWER_2		FIELD16(0xff00)
108195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
108295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
108395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RSSI <-> dBm offset calibration
108495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
108595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_CALIBRATE_OFFSET		0x3e
108695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define EEPROM_CALIBRATE_OFFSET_RSSI	FIELD16(0x00ff)
108795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
108895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
108995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * DMA descriptor defines.
109095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
1091cb771b1a5de81e3ee59bd8b7ed17da6d09ffcf68Mark Einon#define TXD_DESC_SIZE			(11 * sizeof(__le32))
1092cb771b1a5de81e3ee59bd8b7ed17da6d09ffcf68Mark Einon#define RXD_DESC_SIZE			(11 * sizeof(__le32))
109395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
109495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
109595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * TX descriptor format for TX, PRIO, ATIM and Beacon Ring.
109695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
109795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
109895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
109995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word0
110095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
110195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_OWNER_NIC		FIELD32(0x00000001)
110295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_VALID			FIELD32(0x00000002)
110395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_RESULT			FIELD32(0x0000001c)
110495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_RETRY_COUNT		FIELD32(0x000000e0)
110595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_MORE_FRAG		FIELD32(0x00000100)
110695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_ACK			FIELD32(0x00000200)
110795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_TIMESTAMP		FIELD32(0x00000400)
110895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_OFDM			FIELD32(0x00000800)
110995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_CIPHER_OWNER		FIELD32(0x00001000)
111095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_IFS			FIELD32(0x00006000)
111195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_RETRY_MODE		FIELD32(0x00008000)
111295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_DATABYTE_COUNT		FIELD32(0x0fff0000)
111395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W0_CIPHER_ALG		FIELD32(0xe0000000)
111495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
111595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
111695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word1
111795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
111895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W1_BUFFER_ADDRESS		FIELD32(0xffffffff)
111995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
112095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
112195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word2
112295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
112395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W2_IV_OFFSET		FIELD32(0x0000003f)
112495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W2_AIFS			FIELD32(0x000000c0)
112595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W2_CWMIN			FIELD32(0x00000f00)
112695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W2_CWMAX			FIELD32(0x0000f000)
112795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
112895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
112995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word3: PLCP information
113095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
113195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W3_PLCP_SIGNAL		FIELD32(0x000000ff)
113295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W3_PLCP_SERVICE		FIELD32(0x0000ff00)
113395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W3_PLCP_LENGTH_LOW		FIELD32(0x00ff0000)
113495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W3_PLCP_LENGTH_HIGH		FIELD32(0xff000000)
113595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
113695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
113795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word4
113895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
113995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W4_IV			FIELD32(0xffffffff)
114095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
114195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
114295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word5
114395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
114495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W5_EIV			FIELD32(0xffffffff)
114595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
114695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
114795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word6-9: Key
114895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
114995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W6_KEY			FIELD32(0xffffffff)
115095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W7_KEY			FIELD32(0xffffffff)
115195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W8_KEY			FIELD32(0xffffffff)
115295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W9_KEY			FIELD32(0xffffffff)
115395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
115495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
115595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word10
115695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
115795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W10_RTS			FIELD32(0x00000001)
115895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define TXD_W10_TX_RATE			FIELD32(0x000000fe)
115995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
116095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
116195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * RX descriptor format for RX Ring.
116295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
116395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
116495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
116595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word0
116695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
116795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_OWNER_NIC		FIELD32(0x00000001)
116895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_UNICAST_TO_ME		FIELD32(0x00000002)
116995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_MULTICAST		FIELD32(0x00000004)
117095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_BROADCAST		FIELD32(0x00000008)
117195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_MY_BSS			FIELD32(0x00000010)
117295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_CRC_ERROR		FIELD32(0x00000020)
117395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_OFDM			FIELD32(0x00000040)
117495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_PHYSICAL_ERROR		FIELD32(0x00000080)
117595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_CIPHER_OWNER		FIELD32(0x00000100)
117695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_ICV_ERROR		FIELD32(0x00000200)
117795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_IV_OFFSET		FIELD32(0x0000fc00)
117895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_DATABYTE_COUNT		FIELD32(0x0fff0000)
117995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W0_CIPHER_ALG		FIELD32(0xe0000000)
118095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
118195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
118295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word1
118395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
118495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W1_BUFFER_ADDRESS		FIELD32(0xffffffff)
118595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
118695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
118795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word2
118895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
118995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W2_SIGNAL			FIELD32(0x000000ff)
119095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W2_RSSI			FIELD32(0x0000ff00)
119195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W2_TA			FIELD32(0xffff0000)
119295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
119395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
119495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word3
119595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
119695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W3_TA			FIELD32(0xffffffff)
119795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
119895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
119995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word4
120095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
120195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W4_IV			FIELD32(0xffffffff)
120295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
120395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
120495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word5
120595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
120695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W5_EIV			FIELD32(0xffffffff)
120795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
120895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
120995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word6-9: Key
121095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
121195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W6_KEY			FIELD32(0xffffffff)
121295ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W7_KEY			FIELD32(0xffffffff)
121395ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W8_KEY			FIELD32(0xffffffff)
121495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W9_KEY			FIELD32(0xffffffff)
121595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
121695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
121795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn * Word10
121895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
121995ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define RXD_W10_DROP			FIELD32(0x00000001)
122095ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
122195ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn/*
12224951348109c334f2b839816bd161522d089cb782Luis Correia * Macros for converting txpower from EEPROM to mac80211 value
1223de99ff82cdc2e5b596d01000eed9e0d05566f2d7Ivo van Doorn * and from mac80211 value to register value.
122495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn */
122595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MIN_TXPOWER	0
122695ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define MAX_TXPOWER	31
122795ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#define DEFAULT_TXPOWER	24
122895ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
12298c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn#define TXPOWER_FROM_DEV(__txpower) \
12308c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn	(((u8)(__txpower)) > MAX_TXPOWER) ? DEFAULT_TXPOWER : (__txpower)
12318c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn
12328c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn#define TXPOWER_TO_DEV(__txpower) \
12338c5e7a5f59f9d11597bd47de28334da318ea0e80Ivo van Doorn	clamp_t(char, __txpower, MIN_TXPOWER, MAX_TXPOWER)
123495ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn
123595ea36275f3c9a1d3d04c217b4b576c657c4e70eIvo van Doorn#endif /* RT2500PCI_H */
1236