svn commit: r299248 - head/sys/dev/siba
Adrian Chadd
adrian at FreeBSD.org
Mon May 9 06:30:01 UTC 2016
Author: adrian
Date: Mon May 9 06:30:00 2016
New Revision: 299248
URL: https://svnweb.freebsd.org/changeset/base/299248
Log:
[siba] add 2GHz/5GHz FEM parameter fetching and accessor methods.
This is used by the bwn(4) PHY-N code that I'm working on.
Modified:
head/sys/dev/siba/siba_core.c
head/sys/dev/siba/sibavar.h
Modified: head/sys/dev/siba/siba_core.c
==============================================================================
--- head/sys/dev/siba/siba_core.c Mon May 9 06:05:23 2016 (r299247)
+++ head/sys/dev/siba/siba_core.c Mon May 9 06:30:00 2016 (r299248)
@@ -1689,6 +1689,29 @@ siba_sprom_r8(struct siba_sprom *out, co
SIBA_SHIFTOUT(again.ghz24.a2, SIBA_SPROM8_AGAIN23, SIBA_SPROM8_AGAIN2);
SIBA_SHIFTOUT(again.ghz24.a3, SIBA_SPROM8_AGAIN23, SIBA_SPROM8_AGAIN3);
bcopy(&out->again.ghz24, &out->again.ghz5, sizeof(out->again.ghz5));
+
+ /* FEM */
+ SIBA_SHIFTOUT(fem.ghz2.tssipos, SIBA_SPROM8_FEM2G,
+ SSB_SROM8_FEM_TSSIPOS);
+ SIBA_SHIFTOUT(fem.ghz2.extpa_gain, SIBA_SPROM8_FEM2G,
+ SSB_SROM8_FEM_EXTPA_GAIN);
+ SIBA_SHIFTOUT(fem.ghz2.pdet_range, SIBA_SPROM8_FEM2G,
+ SSB_SROM8_FEM_PDET_RANGE);
+ SIBA_SHIFTOUT(fem.ghz2.tr_iso, SIBA_SPROM8_FEM2G,
+ SSB_SROM8_FEM_TR_ISO);
+ SIBA_SHIFTOUT(fem.ghz2.antswlut, SIBA_SPROM8_FEM2G,
+ SSB_SROM8_FEM_ANTSWLUT);
+
+ SIBA_SHIFTOUT(fem.ghz5.tssipos, SIBA_SPROM8_FEM5G,
+ SSB_SROM8_FEM_TSSIPOS);
+ SIBA_SHIFTOUT(fem.ghz5.extpa_gain, SIBA_SPROM8_FEM5G,
+ SSB_SROM8_FEM_EXTPA_GAIN);
+ SIBA_SHIFTOUT(fem.ghz5.pdet_range, SIBA_SPROM8_FEM5G,
+ SSB_SROM8_FEM_PDET_RANGE);
+ SIBA_SHIFTOUT(fem.ghz5.tr_iso, SIBA_SPROM8_FEM5G,
+ SSB_SROM8_FEM_TR_ISO);
+ SIBA_SHIFTOUT(fem.ghz5.antswlut, SIBA_SPROM8_FEM5G,
+ SSB_SROM8_FEM_ANTSWLUT);
}
static int8_t
@@ -2338,6 +2361,36 @@ siba_read_sprom(device_t dev, device_t c
case SIBA_SPROMVAR_BF2_HI:
*result = siba->siba_sprom.bf2_hi;
break;
+ case SIBA_SPROMVAR_FEM_2GHZ_TSSIPOS:
+ *result = siba->siba_sprom.fem.ghz2.tssipos;
+ break;
+ case SIBA_SPROMVAR_FEM_2GHZ_EXTPAGAIN:
+ *result = siba->siba_sprom.fem.ghz2.extpa_gain;
+ break;
+ case SIBA_SPROMVAR_FEM_2GHZ_PDET_RANGE:
+ *result = siba->siba_sprom.fem.ghz2.pdet_range;
+ break;
+ case SIBA_SPROMVAR_FEM_2GHZ_TR_ISO:
+ *result = siba->siba_sprom.fem.ghz2.tr_iso;
+ break;
+ case SIBA_SPROMVAR_FEM_2GHZ_ANTSWLUT:
+ *result = siba->siba_sprom.fem.ghz2.antswlut;
+ break;
+ case SIBA_SPROMVAR_FEM_5GHZ_TSSIPOS:
+ *result = siba->siba_sprom.fem.ghz5.tssipos;
+ break;
+ case SIBA_SPROMVAR_FEM_5GHZ_EXTPAGAIN:
+ *result = siba->siba_sprom.fem.ghz5.extpa_gain;
+ break;
+ case SIBA_SPROMVAR_FEM_5GHZ_PDET_RANGE:
+ *result = siba->siba_sprom.fem.ghz5.pdet_range;
+ break;
+ case SIBA_SPROMVAR_FEM_5GHZ_TR_ISO:
+ *result = siba->siba_sprom.fem.ghz5.tr_iso;
+ break;
+ case SIBA_SPROMVAR_FEM_5GHZ_ANTSWLUT:
+ *result = siba->siba_sprom.fem.ghz5.antswlut;
+ break;
default:
return (ENOENT);
}
Modified: head/sys/dev/siba/sibavar.h
==============================================================================
--- head/sys/dev/siba/sibavar.h Mon May 9 06:05:23 2016 (r299247)
+++ head/sys/dev/siba/sibavar.h Mon May 9 06:30:00 2016 (r299248)
@@ -278,7 +278,17 @@ enum siba_sprom_vars {
SIBA_SPROMVAR_BF_LO,
SIBA_SPROMVAR_BF_HI,
SIBA_SPROMVAR_BF2_LO,
- SIBA_SPROMVAR_BF2_HI
+ SIBA_SPROMVAR_BF2_HI,
+ SIBA_SPROMVAR_FEM_2GHZ_TSSIPOS,
+ SIBA_SPROMVAR_FEM_2GHZ_EXTPAGAIN,
+ SIBA_SPROMVAR_FEM_2GHZ_PDET_RANGE,
+ SIBA_SPROMVAR_FEM_2GHZ_TR_ISO,
+ SIBA_SPROMVAR_FEM_2GHZ_ANTSWLUT,
+ SIBA_SPROMVAR_FEM_5GHZ_TSSIPOS,
+ SIBA_SPROMVAR_FEM_5GHZ_EXTPAGAIN,
+ SIBA_SPROMVAR_FEM_5GHZ_PDET_RANGE,
+ SIBA_SPROMVAR_FEM_5GHZ_TR_ISO,
+ SIBA_SPROMVAR_FEM_5GHZ_ANTSWLUT,
};
int siba_read_sprom(device_t, device_t, int, uintptr_t *);
@@ -364,6 +374,18 @@ SIBA_SPROM_ACCESSOR(bf_lo, BF_LO, uint1
SIBA_SPROM_ACCESSOR(bf_hi, BF_HI, uint16_t);
SIBA_SPROM_ACCESSOR(bf2_lo, BF2_LO, uint16_t);
SIBA_SPROM_ACCESSOR(bf2_hi, BF2_HI, uint16_t);
+/* 2GHz FEM */
+SIBA_SPROM_ACCESSOR(fem_2ghz_tssipos, FEM_2GHZ_TSSIPOS, uint8_t);
+SIBA_SPROM_ACCESSOR(fem_2ghz_extpa_gain, FEM_2GHZ_EXTPAGAIN, uint8_t);
+SIBA_SPROM_ACCESSOR(fem_2ghz_pdet_range, FEM_2GHZ_PDET_RANGE, uint8_t);
+SIBA_SPROM_ACCESSOR(fem_2ghz_tr_iso, FEM_2GHZ_TR_ISO, uint8_t);
+SIBA_SPROM_ACCESSOR(fem_2ghz_antswlut, FEM_2GHZ_ANTSWLUT, uint8_t);
+/* 5GHz FEM */
+SIBA_SPROM_ACCESSOR(fem_5ghz_tssipos, FEM_5GHZ_TSSIPOS, uint8_t);
+SIBA_SPROM_ACCESSOR(fem_5ghz_extpa_gain, FEM_5GHZ_EXTPAGAIN, uint8_t);
+SIBA_SPROM_ACCESSOR(fem_5ghz_pdet_range, FEM_5GHZ_PDET_RANGE, uint8_t);
+SIBA_SPROM_ACCESSOR(fem_5ghz_tr_iso, FEM_5GHZ_TR_ISO, uint8_t);
+SIBA_SPROM_ACCESSOR(fem_5ghz_antswlut, FEM_5GHZ_ANTSWLUT, uint8_t);
#undef SIBA_SPROM_ACCESSOR
@@ -434,6 +456,17 @@ struct siba_sprom {
int8_t a0, a1, a2, a3;
} ghz5;
} again; /* antenna gain */
+
+ struct {
+ struct {
+ uint8_t tssipos, extpa_gain, pdet_range, tr_iso;
+ uint8_t antswlut;
+ } ghz2;
+ struct {
+ uint8_t tssipos, extpa_gain, pdet_range, tr_iso;
+ uint8_t antswlut;
+ } ghz5;
+ } fem;
};
#define SIBA_LDO_PAREF 0
More information about the svn-src-all
mailing list