summaryrefslogtreecommitdiffstats
path: root/include/linux/ssb/ssb.h
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2007-11-09 16:54:45 -0600
committerDavid S. Miller <davem@davemloft.net>2008-01-28 15:04:40 -0800
commitac82fab44f6b981e3f6b53784e2f23838f4908e1 (patch)
treebc1f0ccb118aff495ee2b9448e8fd51b92958298 /include/linux/ssb/ssb.h
parent3957ccb56e17ca839265ccb292c4c6850dcf5d32 (diff)
downloadop-kernel-dev-ac82fab44f6b981e3f6b53784e2f23838f4908e1.zip
op-kernel-dev-ac82fab44f6b981e3f6b53784e2f23838f4908e1.tar.gz
ssb: Add new SPROM structure while keeping the old
The SPROM's for various devices utilizing the Sonics Silicon Backplane come with various revisions. The Revision 2 SPROM inherited the data layout of 1, and Revision 3 inherited the layout of 2. The first instance of Revision 4 has now been found in a BCM4328 wireless LAN card. This device does not inherit any layout from previous versions. Although it was possible to create a data structure that kept all the old layouts, we decided to start fresh, keep only those SPROM variables that are used by the drivers that utilize ssb, and to do the conversion in such a manner that neither compilation or execution will be affected if a bisection lands in the middle of these changes, while keeping the patches as small as possible. In this patch, the sprom structures are changed while maintaining the old ones. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/linux/ssb/ssb.h')
-rw-r--r--include/linux/ssb/ssb.h32
1 files changed, 26 insertions, 6 deletions
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index 2b5c312..cdd8a2f 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -78,13 +78,34 @@ struct ssb_sprom_r3 {
u32 ofdmgpo; /* G-PHY OFDM Power Offset */
};
-struct ssb_sprom_r4 {
- /* TODO */
-};
-
struct ssb_sprom {
u8 revision;
- u8 crc;
+ u8 temp_fill[2 * sizeof(struct ssb_sprom_r1)];
+ u8 il0mac[6]; /* MAC address for 802.11b/g */
+ u8 et0mac[6]; /* MAC address for Ethernet */
+ u8 et1mac[6]; /* MAC address for 802.11a */
+ u8 et0phyaddr; /* MII address for enet0 */
+ u8 et1phyaddr; /* MII address for enet1 */
+ u8 country_code; /* Country Code */
+ u16 pa0b0;
+ u16 pa0b1;
+ u16 pa0b2;
+ u16 pa1b0;
+ u16 pa1b1;
+ u16 pa1b2;
+ u8 gpio0; /* GPIO pin 0 */
+ u8 gpio1; /* GPIO pin 1 */
+ u8 gpio2; /* GPIO pin 2 */
+ u8 gpio3; /* GPIO pin 3 */
+ u16 maxpwr_a; /* A-PHY Amplifier Max Power (in dBm Q5.2) */
+ u16 maxpwr_bg; /* B/G-PHY Amplifier Max Power (in dBm Q5.2) */
+ u8 itssi_a; /* Idle TSSI Target for A-PHY */
+ u8 itssi_bg; /* Idle TSSI Target for B/G-PHY */
+ u16 boardflags_lo; /* Boardflags (low 16 bits) */
+ u8 antenna_gain_a; /* A-PHY Antenna gain (in dBm Q5.2) */
+ u8 antenna_gain_bg; /* B/G-PHY Antenna gain (in dBm Q5.2) */
+
+ /* TODO - add any parameters needed from rev 2, 3, or 4 SPROMs */
/* The valid r# fields are selected by the "revision".
* Revision 3 and lower inherit from lower revisions.
*/
@@ -94,7 +115,6 @@ struct ssb_sprom {
struct ssb_sprom_r2 r2;
struct ssb_sprom_r3 r3;
};
- struct ssb_sprom_r4 r4;
};
};
OpenPOWER on IntegriCloud