/* * This file is part of calibrator * * Copyright (C) 2011 Texas Instruments * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * */ #ifndef __WL18XX_PLT_H__ #define __WL18XX_PLT_H__ enum wl18xx_test_cmds { /* 0x1 */ WL18XX_TEST_CMD_PD_BUFFER_CAL = 0x1, /* 0x2 */ WL18XX_TEST_CMD_P2G_CAL, /* 0x3 */ WL18XX_TEST_CMD_RX_PLT_ENTER, /* 0x4 */ WL18XX_TEST_CMD_RX_PLT_CAL, /* 0x5 */ WL18XX_TEST_CMD_RX_PLT_EXIT, /* 0x6 */ WL18XX_TEST_CMD_RX_PLT_GET, /* 0x7 */ WL18XX_TEST_CMD_FCC, /* 0x8 */ WL18XX_TEST_CMD_TELEC, /* 0x9 */ WL18XX_TEST_CMD_STOP_TX, /* 0xa */ WL18XX_TEST_CMD_PLT_TEMPLATE, /* 0xb */ WL18XX_TEST_CMD_PLT_GAIN_ADJUST, /* 0xc */ WL18XX_TEST_CMD_PLT_GAIN_GET, /* 0xd */ WL18XX_TEST_CMD_CHANNEL_TUNE_OLD, /* 0xe */ WL18XX_TEST_CMD_FREE_RUN_RSSI, /* 0xf */ WL18XX_TEST_CMD_DEBUG, /* 0x10 */ WL18XX_TEST_CMD_CLPC_COMMANDS, /* 0x11 */ WL18XX_TEST_CMD_RESERVED, /* 0x12 */ WL18XX_TEST_CMD_RX_STAT_STOP, /* 0x13 */ WL18XX_TEST_CMD_RX_STAT_START, /* 0x14 */ WL18XX_TEST_CMD_RX_STAT_RESET, /* 0x15 */ WL18XX_TEST_CMD_RX_STAT_GET, /* 0x16 */ WL18XX_TEST_CMD_LOOPBACK_START, /* 0x17 */ WL18XX_TEST_CMD_LOOPBACK_STOP, /* 0x18 */ WL18XX_TEST_CMD_GET_FW_VERSIONS, /* 0x19 */ WL18XX_TEST_CMD_INI_FILE_RADIO_PARAM, /* 0x1a */ WL18XX_TEST_CMD_RUN_CALIBRATION_TYPE, /* 0x1b */ WL18XX_TEST_CMD_TX_GAIN_ADJUST, /* 0x1c */ WL18XX_TEST_CMD_UPDATE_PD_BUFFER_ERRORS, /* 0x1d */ WL18XX_TEST_CMD_UPDATE_PD_REFERENCE_POINT, /* 0x1e */ WL18XX_TEST_CMD_INI_FILE_GENERAL_PARAM, /* 0x1f */ WL18XX_TEST_CMD_SET_EFUSE, /* 0x20 */ WL18XX_TEST_CMD_GET_EFUSE, /* 0x21 */ WL18XX_TEST_CMD_TEST_TONE, /* 0x22 */ WL18XX_TEST_CMD_POWER_MODE, /* 0x23 */ WL18XX_TEST_CMD_SMART_REFLEX, /* 0x24 */ WL18XX_TEST_CMD_CHANNEL_RESPONSE, /* 0x25 */ WL18XX_TEST_CMD_DCO_ITRIM_FEATURE, /* 0x26 */ WL18XX_TEST_CMD_START_TX_SIMULATION, /* 0x27 */ WL18XX_TEST_CMD_STOP_TX_SIMULATION, /* 0x28 */ WL18XX_TEST_CMD_START_RX_SIMULATION, /* 0x29 */ WL18XX_TEST_CMD_STOP_RX_SIMULATION, /* 0x2a */ WL18XX_TEST_CMD_GET_RX_STATISTICS, /* 0x2b */ /*WL18XX_TEST_CMD_INI_FILE_RF_EXTENDED_PARAM*/ /* 0x2c */ WL18XX_TEST_CMD_SET_NVS_VERSION, /* 0x2d */ WL18XX_TEST_CMD_CHANNEL_TUNE, /* 0x2e */ WL18XX_TEST_CMD_TX_POWER, /* 0x2f */ WL18XX_TEST_CMD_SET_ANTENNA_MODE_24G, /* 0x30 */ WL18XX_TEST_CMD_GET_CALIB_RESULT, /* 0x31 */ WL18XX_TEST_CMD_SET_ANTENNA_MODE_5G, /* 0x32 */ WL18XX_TEST_CMD_PHY_ADDR_READ, /* 0x33 */ WL18XX_TEST_CMD_PHY_ADDR_WRITE, /* 0x34 */ WL18XX_TEST_CMD_START_TX_TONE, /* 0x35 */ WL18XX_TEST_CMD_STOP_TX_TONE, /* 0x36 */ WL18XX_TEST_CMD_START_RF_PARAMS_SET, /* 0x37 */ WL18XX_TEST_CMD_STOP_RF_PARAMS_SET, /* 0x38 */ WL18XX_TEST_CMD_REG_DOMAIN_UPDATE, /* 0x39 */ WL18XX_TEST_CMD_5GHZ_ANTENNA_DIVERSITY, }; struct wl18xx_cmd_channel_tune { struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le16 radio_status; __u8 channel; __u8 band; __u8 bandwidth; __u8 rfSetIdx; __u8 padding[2]; } __attribute__((packed)); struct wl18xx_cmd_start_rx { struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __le32 magic_num; __u8 src_addr[MAC_ADDR_LEN]; __u8 dst_addr[MAC_ADDR_LEN]; } __attribute__((packed)); struct wl18xx_cmd_stop_rx { struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; } __attribute__((packed)); struct wl18xx_cmd_rx_stats { struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __le32 total; __le32 errors; __le32 addr_mm; __le32 good; __le32 rssi_soc; __le32 rssi_ant; } __attribute__((packed)); struct wl18xx_cmd_start_tx { struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __le32 delay; __le32 rate; __le32 size; __le32 mode; __le32 data_type; __le32 gi; __le32 options1; __le32 options2; __u8 src_addr[MAC_ADDR_LEN]; __u8 dst_addr[MAC_ADDR_LEN]; __le32 bandwidth; __le32 padding; } __attribute__((packed)); struct wl18xx_cmd_stop_tx { struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; } __attribute__((packed)); struct wl18xx_cmd_set_tx_power { struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __s32 mac_des_pwr; __le32 mac_lvl_idx; __le32 freq_band; __le32 freq_prim_chan_num; __le32 freq_prim_chan_loc; __le32 mac_ant_select; __le32 mac_non_srv; __le32 mac_chan_lim_dis; __le32 mac_fem_lim_dis; __le32 mac_gain_calc_mode; __le32 mac_analog_gain_control_idx; __le32 mac_post_dpd_gain; } __attribute__((packed)); struct wl18xx_cmd_set_antenna_mode_24G { /* TEST_CMD_SET_ANTENNA_MODE24G */ struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __u8 mac_prim_rx_chain; __u8 mac_prim_tx_chain; __u8 mac_rx_chain1_en; __u8 mac_rx_chain2_en; __u8 mac_tx_chain1_en; __u8 mac_tx_chain2_en; __u8 res1; __u8 res2; } __attribute__((packed)); struct wl18xx_cmd_set_antenna_mode_5G { /* TEST_CMD_SET_ANTENNA_MODE5G */ struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __u8 mac_prim_rx_chain; __u8 mac_rx_chain1_en; __u8 mac_rx_chain2_en; __u8 mac_tx_chain1_en; } __attribute__((packed)); struct wl18xx_cmd_phy_reg_read { /* TEST_CMD_PHY_REG_READ */ struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __le32 data; __le32 addr; } __attribute__((packed)); struct wl18xx_cmd_phy_reg_write { /* TEST_CMD_PHY_REG_WRITE */ struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __le32 data; __le32 addr; } __attribute__((packed)); struct wl18xx_cmd_phy_tx_tone_start { /* TEST_CMD_START_TX_TONE */ struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __u8 mode; __s8 bin_index; __u8 trigger_iqram_recording; __u8 sig_gen_cw_en; __u8 sig_gen_mod_en; __u8 ant_mode; __u8 set_rx_aux_on; __u8 gain_index; } __attribute__((packed)); struct wl18xx_cmd_phy_tx_tone_stop { /* TEST_CMD_STOP_TX_TONE */ struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; } __attribute__((packed)); struct wl18xx_cmd_set_antenna_diversity_5G { /* WL18XX_TEST_CMD_5GHZ_ANTENNA_DIVERSITY */ struct wl1271_cmd_header header; struct wl1271_cmd_test_header test; __le32 radio_status; __u8 mode; __u8 padding[3]; } __attribute__((packed)); #endif /* __WL18XX_PLT_H__ */