aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/acx.h
diff options
context:
space:
mode:
authorShahar Levi <shahar_levi@ti.com>2011-04-11 08:41:46 -0400
committerLuciano Coelho <coelho@ti.com>2011-05-02 03:26:06 -0400
commitff86843dfbb368766d0aecd0147821d9a2b60edb (patch)
tree529886d8567de0a766ade345aca6f043701ad2d6 /drivers/net/wireless/wl12xx/acx.h
parentcb5ae0530e0e2af86d128ce758645b6b4a9132e1 (diff)
wl12xx: FM WLAN coexistence
Add support to FM WLAN coexistence (STA only). Some WiFi harmonics may interfere with FM operation, to avoid this problem special coexistence techniques are activated around some FM frequencies. Signed-off-by: Shahar Levi <shahar_levi@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/acx.h')
-rw-r--r--drivers/net/wireless/wl12xx/acx.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/acx.h b/drivers/net/wireless/wl12xx/acx.h
index 942908cd53a3..2dde0346e955 100644
--- a/drivers/net/wireless/wl12xx/acx.h
+++ b/drivers/net/wireless/wl12xx/acx.h
@@ -1179,6 +1179,65 @@ struct wl1271_acx_inconnection_sta {
1179 u8 padding1[2]; 1179 u8 padding1[2];
1180} __packed; 1180} __packed;
1181 1181
1182/*
1183 * ACX_FM_COEX_CFG
1184 * set the FM co-existence parameters.
1185 */
1186struct wl1271_acx_fm_coex {
1187 struct acx_header header;
1188 /* enable(1) / disable(0) the FM Coex feature */
1189 u8 enable;
1190 /*
1191 * Swallow period used in COEX PLL swallowing mechanism.
1192 * 0xFF = use FW default
1193 */
1194 u8 swallow_period;
1195 /*
1196 * The N divider used in COEX PLL swallowing mechanism for Fref of
1197 * 38.4/19.2 Mhz. 0xFF = use FW default
1198 */
1199 u8 n_divider_fref_set_1;
1200 /*
1201 * The N divider used in COEX PLL swallowing mechanism for Fref of
1202 * 26/52 Mhz. 0xFF = use FW default
1203 */
1204 u8 n_divider_fref_set_2;
1205 /*
1206 * The M divider used in COEX PLL swallowing mechanism for Fref of
1207 * 38.4/19.2 Mhz. 0xFFFF = use FW default
1208 */
1209 __le16 m_divider_fref_set_1;
1210 /*
1211 * The M divider used in COEX PLL swallowing mechanism for Fref of
1212 * 26/52 Mhz. 0xFFFF = use FW default
1213 */
1214 __le16 m_divider_fref_set_2;
1215 /*
1216 * The time duration in uSec required for COEX PLL to stabilize.
1217 * 0xFFFFFFFF = use FW default
1218 */
1219 __le32 coex_pll_stabilization_time;
1220 /*
1221 * The time duration in uSec required for LDO to stabilize.
1222 * 0xFFFFFFFF = use FW default
1223 */
1224 __le16 ldo_stabilization_time;
1225 /*
1226 * The disturbed frequency band margin around the disturbed frequency
1227 * center (single sided).
1228 * For example, if 2 is configured, the following channels will be
1229 * considered disturbed channel:
1230 * 80 +- 0.1 MHz, 91 +- 0.1 MHz, 98 +- 0.1 MHz, 102 +- 0.1 MH
1231 * 0xFF = use FW default
1232 */
1233 u8 fm_disturbed_band_margin;
1234 /*
1235 * The swallow clock difference of the swallowing mechanism.
1236 * 0xFF = use FW default
1237 */
1238 u8 swallow_clk_diff;
1239} __packed;
1240
1182enum { 1241enum {
1183 ACX_WAKE_UP_CONDITIONS = 0x0002, 1242 ACX_WAKE_UP_CONDITIONS = 0x0002,
1184 ACX_MEM_CFG = 0x0003, 1243 ACX_MEM_CFG = 0x0003,
@@ -1208,6 +1267,7 @@ enum {
1208 ACX_BCN_DTIM_OPTIONS = 0x0031, 1267 ACX_BCN_DTIM_OPTIONS = 0x0031,
1209 ACX_SG_ENABLE = 0x0032, 1268 ACX_SG_ENABLE = 0x0032,
1210 ACX_SG_CFG = 0x0033, 1269 ACX_SG_CFG = 0x0033,
1270 ACX_FM_COEX_CFG = 0x0034,
1211 ACX_BEACON_FILTER_TABLE = 0x0038, 1271 ACX_BEACON_FILTER_TABLE = 0x0038,
1212 ACX_ARP_IP_FILTER = 0x0039, 1272 ACX_ARP_IP_FILTER = 0x0039,
1213 ACX_ROAMING_STATISTICS_TBL = 0x003B, 1273 ACX_ROAMING_STATISTICS_TBL = 0x003B,
@@ -1318,5 +1378,6 @@ int wl1271_acx_ap_max_tx_retry(struct wl1271 *wl);
1318int wl1271_acx_sta_max_tx_retry(struct wl1271 *wl); 1378int wl1271_acx_sta_max_tx_retry(struct wl1271 *wl);
1319int wl1271_acx_config_ps(struct wl1271 *wl); 1379int wl1271_acx_config_ps(struct wl1271 *wl);
1320int wl1271_acx_set_inconnection_sta(struct wl1271 *wl, u8 *addr); 1380int wl1271_acx_set_inconnection_sta(struct wl1271 *wl, u8 *addr);
1381int wl1271_acx_fm_coex(struct wl1271 *wl);
1321 1382
1322#endif /* __WL1271_ACX_H__ */ 1383#endif /* __WL1271_ACX_H__ */