1aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter/*
2aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * Shared Atheros AR9170 Header
3aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *
4aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * EEPROM layout
5aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *
6aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * Copyright 2008, Johannes Berg <johannes@sipsolutions.net>
7aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *
8aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * This program is free software; you can redistribute it and/or modify
9aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * it under the terms of the GNU General Public License as published by
10aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * the Free Software Foundation; either version 2 of the License, or
11aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * (at your option) any later version.
12aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *
13aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * This program is distributed in the hope that it will be useful,
14aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * but WITHOUT ANY WARRANTY; without even the implied warranty of
15aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * GNU General Public License for more details.
17aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *
18aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * You should have received a copy of the GNU General Public License
19aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * along with this program; see the file COPYING.  If not, see
20aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * http://www.gnu.org/licenses/.
21aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *
22aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * This file incorporates work covered by the following copyright and
23aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter * permission notice:
24aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    Copyright (c) 2007-2008 Atheros Communications, Inc.
25aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *
26aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    Permission to use, copy, modify, and/or distribute this software for any
27aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    purpose with or without fee is hereby granted, provided that the above
28aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    copyright notice and this permission notice appear in all copies.
29aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *
30aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
31aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
32aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
33aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
34aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
35aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
36aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter *    OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
37aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter */
38aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#ifndef __CARL9170_SHARED_EEPROM_H
39aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define __CARL9170_SHARED_EEPROM_H
40aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
41aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_EEPROM_START		0x1600
42aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
43aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_MAX_CHAINS		2
44aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_MODAL_SPURS		5
45aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
46aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparterstruct ar9170_eeprom_modal {
47aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le32	antCtrlChain[AR5416_MAX_CHAINS];
48aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le32	antCtrlCommon;
49aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	s8	antennaGainCh[AR5416_MAX_CHAINS];
50aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	switchSettling;
51aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	txRxAttenCh[AR5416_MAX_CHAINS];
52aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	rxTxMarginCh[AR5416_MAX_CHAINS];
53aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	s8	adcDesiredSize;
54aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	s8	pgaDesiredSize;
55aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	xlnaGainCh[AR5416_MAX_CHAINS];
56aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	txEndToXpaOff;
57aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	txEndToRxOn;
58aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	txFrameToXpaOn;
59aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	thresh62;
60aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	s8	noiseFloorThreshCh[AR5416_MAX_CHAINS];
61aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	xpdGain;
62aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	xpd;
63aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	s8	iqCalICh[AR5416_MAX_CHAINS];
64aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	s8	iqCalQCh[AR5416_MAX_CHAINS];
65aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	pdGainOverlap;
66aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	ob;
67aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	db;
68aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	xpaBiasLvl;
69aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	pwrDecreaseFor2Chain;
70aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	pwrDecreaseFor3Chain;
71aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	txFrameToDataStart;
72aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	txFrameToPaOn;
73aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	ht40PowerIncForPdadc;
74aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	bswAtten[AR5416_MAX_CHAINS];
75aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	bswMargin[AR5416_MAX_CHAINS];
76aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	swSettleHt40;
77aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	reserved[22];
78aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	struct spur_channel {
79aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		__le16 spurChan;
80aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		u8	spurRangeLow;
81aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		u8	spurRangeHigh;
82aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	} __packed spur_channels[AR5416_MODAL_SPURS];
83aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter} __packed;
84aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
85aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_NUM_PD_GAINS		4
86aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_PD_GAIN_ICEPTS		5
87aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
88aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparterstruct ar9170_calibration_data_per_freq {
89aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	pwr_pdg[AR5416_NUM_PD_GAINS][AR5416_PD_GAIN_ICEPTS];
90aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	vpd_pdg[AR5416_NUM_PD_GAINS][AR5416_PD_GAIN_ICEPTS];
91aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter} __packed;
92aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
93aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_NUM_5G_CAL_PIERS		8
94aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_NUM_2G_CAL_PIERS		4
95aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
96aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_NUM_5G_TARGET_PWRS	8
97aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_NUM_2G_CCK_TARGET_PWRS	3
98aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_NUM_2G_OFDM_TARGET_PWRS	4
99aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_MAX_NUM_TGT_PWRS		8
100aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
101aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparterstruct ar9170_calibration_target_power_legacy {
102aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	freq;
103aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	power[4];
104aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter} __packed;
105aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
106aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparterstruct ar9170_calibration_target_power_ht {
107aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	freq;
108aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	power[8];
109aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter} __packed;
110aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
111aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_NUM_CTLS			24
112aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
113aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparterstruct ar9170_calctl_edges {
114aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	channel;
115aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_CALCTL_EDGE_FLAGS	0xC0
116aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	power_flags;
117aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter} __packed;
118aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
119aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR5416_NUM_BAND_EDGES		8
120aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
121aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparterstruct ar9170_calctl_data {
122aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	struct ar9170_calctl_edges
123aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		control_edges[AR5416_MAX_CHAINS][AR5416_NUM_BAND_EDGES];
124aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter} __packed;
125aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
126aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparterstruct ar9170_eeprom {
127aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le16	length;
128aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le16	checksum;
129aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le16	version;
130aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	operating_flags;
131aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_OPFLAG_5GHZ		1
132aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_OPFLAG_2GHZ		2
133aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	misc;
134aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le16	reg_domain[2];
135aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	mac_address[6];
136aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	rx_mask;
137aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	tx_mask;
138aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le16	rf_silent;
139aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le16	bluetooth_options;
140aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le16	device_capabilities;
141aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le32	build_number;
142aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	deviceType;
143aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	reserved[33];
144aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
145aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	customer_data[64];
146aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
147aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	struct ar9170_eeprom_modal
148aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		modal_header[2];
149aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
150aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	cal_freq_pier_5G[AR5416_NUM_5G_CAL_PIERS];
151aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	cal_freq_pier_2G[AR5416_NUM_2G_CAL_PIERS];
152aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
153aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	struct ar9170_calibration_data_per_freq
154aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		cal_pier_data_5G[AR5416_MAX_CHAINS][AR5416_NUM_5G_CAL_PIERS],
155aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		cal_pier_data_2G[AR5416_MAX_CHAINS][AR5416_NUM_2G_CAL_PIERS];
156aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
157aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	/* power calibration data */
158aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	struct ar9170_calibration_target_power_legacy
159aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		cal_tgt_pwr_5G[AR5416_NUM_5G_TARGET_PWRS];
160aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	struct ar9170_calibration_target_power_ht
161aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		cal_tgt_pwr_5G_ht20[AR5416_NUM_5G_TARGET_PWRS],
162aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		cal_tgt_pwr_5G_ht40[AR5416_NUM_5G_TARGET_PWRS];
163aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
164aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	struct ar9170_calibration_target_power_legacy
165aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		cal_tgt_pwr_2G_cck[AR5416_NUM_2G_CCK_TARGET_PWRS],
166aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		cal_tgt_pwr_2G_ofdm[AR5416_NUM_2G_OFDM_TARGET_PWRS];
167aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	struct ar9170_calibration_target_power_ht
168aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		cal_tgt_pwr_2G_ht20[AR5416_NUM_2G_OFDM_TARGET_PWRS],
169aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		cal_tgt_pwr_2G_ht40[AR5416_NUM_2G_OFDM_TARGET_PWRS];
170aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
171aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	/* conformance testing limits */
172aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	ctl_index[AR5416_NUM_CTLS];
173aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	struct ar9170_calctl_data
174aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter		ctl_data[AR5416_NUM_CTLS];
175aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
176aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	u8	pad;
177aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le16	subsystem_id;
178aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter} __packed;
179aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
180aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_POWER_ON		0x0001
181aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_RESERVED		0x0002
182aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_DISABLE_STATE		0x0004
183aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_OFF_IN_PSM		0x0008
184aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
185aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter/* AR9170_LED_MODE BIT is set */
186aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_FREQUENCY_S		4
187aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_FREQUENCY		0x0030
188aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_FREQUENCY_1HZ		0x0000
189aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_FREQUENCY_0_5HZ		0x0010
190aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_FREQUENCY_0_25HZ	0x0020
191aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_FREQUENCY_0_125HZ	0x0030
192aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
193aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter/* AR9170_LED_MODE BIT is not set */
194aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_CONN_STATE_S		4
195aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_CONN_STATE		0x0030
196aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_CONN_STATE_FORCE_OFF	0x0000
197aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_CONN_STATE_FORCE_ON	0x0010
198aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter/* Idle off / Active on */
199aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_CONN_STATE_IOFF_AON	0x0020
200aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter/* Idle on / Active off */
201aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_CONN_STATE_ION_AOFF	0x0010
202aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
203aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_MODE			0x0040
204aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_RESERVED2		0x0080
205aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
206aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_TON_SCAN_S		8
207aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_TON_SCAN		0x0f00
208aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
209aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_TOFF_SCAN_S		12
210aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#define AR9170_LED_MODE_TOFF_SCAN		0xf000
211aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
212aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparterstruct ar9170_led_mode {
213aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter	__le16 led;
214aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter};
215aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter
216aae9af605a41cb3e9bbad15df72076423a22f903Christian Lamparter#endif /* __CARL9170_SHARED_EEPROM_H */
217