1/* zd_rf.h 2 * 3 * This program is free software; you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation; either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program; if not, write to the Free Software 15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 */ 17 18#ifndef _ZD_RF_H 19#define _ZD_RF_H 20 21#define UW2451_RF 0x2 22#define UCHIP_RF 0x3 23#define AL2230_RF 0x4 24#define AL7230B_RF 0x5 /* a,b,g */ 25#define THETA_RF 0x6 26#define AL2210_RF 0x7 27#define MAXIM_NEW_RF 0x8 28#define UW2453_RF 0x9 29#define UNKNOWN_A_RF 0xa 30#define RALINK_RF 0xb 31#define INTERSIL_RF 0xc 32#define RF2959_RF 0xd 33#define MAXIM_NEW2_RF 0xe 34#define PHILIPS_RF 0xf 35 36#define RF_CHANNEL(ch) [(ch)-1] 37 38/* Provides functions of the RF transceiver. */ 39 40enum { 41 RF_REG_BITS = 6, 42 RF_VALUE_BITS = 18, 43 RF_RV_BITS = RF_REG_BITS + RF_VALUE_BITS, 44}; 45 46struct zd_rf { 47 u8 type; 48 49 u8 channel; 50 51 /* RF-specific functions */ 52 int (*init_hw)(struct zd_rf *rf); 53 int (*set_channel)(struct zd_rf *rf, u8 channel); 54 int (*switch_radio_on)(struct zd_rf *rf); 55 int (*switch_radio_off)(struct zd_rf *rf); 56 int (*patch_6m_band_edge)(struct zd_rf *rf, u8 channel); 57}; 58 59const char *zd_rf_name(u8 type); 60void zd_rf_init(struct zd_rf *rf); 61void zd_rf_clear(struct zd_rf *rf); 62int zd_rf_init_hw(struct zd_rf *rf, u8 type); 63 64int zd_rf_scnprint_id(struct zd_rf *rf, char *buffer, size_t size); 65 66int zd_rf_set_channel(struct zd_rf *rf, u8 channel); 67 68int zd_switch_radio_on(struct zd_rf *rf); 69int zd_switch_radio_off(struct zd_rf *rf); 70 71int zd_rf_patch_6m_band_edge(struct zd_rf *rf, u8 channel); 72int zd_rf_generic_patch_6m(struct zd_rf *rf, u8 channel); 73 74/* Functions for individual RF chips */ 75 76int zd_rf_init_rf2959(struct zd_rf *rf); 77int zd_rf_init_al2230(struct zd_rf *rf); 78int zd_rf_init_al7230b(struct zd_rf *rf); 79 80#endif /* _ZD_RF_H */ 81