aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-sysmo/l1_if.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2013-10-04 19:45:19 +0200
committerHarald Welte <laforge@gnumonks.org>2013-10-04 19:58:14 +0200
commitb469e7314860794aebd904ebc4a63f877c01c3fc (patch)
treea2a3b421fdc89aa7ce25b6592369dc298b8b61e9 /src/osmo-bts-sysmo/l1_if.c
parent33fe4ca97b25a9c58d89829dba791ca1ba8b5cdd (diff)
Use GPS as default clock source on sysmoBTS 2050
Diffstat (limited to 'src/osmo-bts-sysmo/l1_if.c')
-rw-r--r--src/osmo-bts-sysmo/l1_if.c37
1 files changed, 35 insertions, 2 deletions
diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index e16bb497..0af1014c 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -57,6 +57,7 @@
#include "l1_if.h"
#include "l1_transp.h"
#include "hw_misc.h"
+#include "misc/sysmobts_par.h"
extern int pcu_direct;
@@ -1243,6 +1244,29 @@ int l1if_pdch_req(struct gsm_bts_trx_ts *ts, int is_ptcch, uint32_t fn,
return 0;
}
+/* get those femtol1_hdl.hw_info elements that sre in EEPROM */
+static int get_hwinfo_eeprom(struct femtol1_hdl *fl1h)
+{
+ int val, rc;
+
+ rc = sysmobts_par_get_int(SYSMOBTS_PAR_MODEL_NR, &val);
+ if (rc < 0)
+ return rc;
+ fl1h->hw_info.model_nr = val;
+
+ rc = sysmobts_par_get_int(SYSMOBTS_PAR_MODEL_FLAGS, &val);
+ if (rc < 0)
+ return rc;
+ fl1h->hw_info.model_flags = val;
+
+ rc = sysmobts_par_get_int(SYSMOBTS_PAR_TRX_NR, &val);
+ if (rc < 0)
+ return rc;
+ fl1h->hw_info.trx_nr = val;
+
+ return 0;
+}
+
struct femtol1_hdl *l1if_open(void *priv)
{
struct femtol1_hdl *fl1h;
@@ -1271,9 +1295,18 @@ struct femtol1_hdl *l1if_open(void *priv)
fl1h->ul_power_target = -75; /* dBm default */
fl1h->min_qual_rach = MIN_QUAL_RACH;
fl1h->min_qual_norm = MIN_QUAL_NORM;
- /* default clock source: OCXO */
+ get_hwinfo_eeprom(fl1h);
#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,1,0)
- fl1h->clk_src = SuperFemto_ClkSrcId_Ocxo;
+ if (fl1h->hw_info.model_nr == 2050) {
+ /* On the sysmoBTS 2050, we don't have an OCXO but
+ * always slave our clock to the GPS receiver */
+ fl1h->clk_src = SuperFemto_ClkSrcId_GpsPps;
+ LOGP(DL1C, LOGL_INFO, "Clock source defaulting to GPS 1PPS "
+ "on sysmoBTS 2050\n");
+ } else {
+ /* default clock source: OCXO */
+ fl1h->clk_src = SuperFemto_ClkSrcId_Ocxo;
+ }
#else
fl1h->clk_src = SF_CLKSRC_OCXO;
#endif