From owner-svn-src-all@freebsd.org Mon May 9 06:30:01 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81A2DB34065; Mon, 9 May 2016 06:30:01 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4221E1DC7; Mon, 9 May 2016 06:30:01 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u496U082050854; Mon, 9 May 2016 06:30:00 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u496U0aH050852; Mon, 9 May 2016 06:30:00 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201605090630.u496U0aH050852@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Mon, 9 May 2016 06:30:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r299248 - head/sys/dev/siba X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 May 2016 06:30:01 -0000 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