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