aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-sysmo/misc/sysmobts_par.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/osmo-bts-sysmo/misc/sysmobts_par.c')
-rw-r--r--src/osmo-bts-sysmo/misc/sysmobts_par.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/osmo-bts-sysmo/misc/sysmobts_par.c b/src/osmo-bts-sysmo/misc/sysmobts_par.c
index d3d9e26f..6800fded 100644
--- a/src/osmo-bts-sysmo/misc/sysmobts_par.c
+++ b/src/osmo-bts-sysmo/misc/sysmobts_par.c
@@ -33,6 +33,7 @@
#include "sysmobts_eeprom.h"
#include "sysmobts_par.h"
+#include "eeprom.h"
#define EEPROM_PATH "/sys/devices/platform/i2c_davinci.1/i2c-1/1-0050/eeprom"
@@ -119,6 +120,8 @@ int sysmobts_par_is_int(enum sysmobts_par par)
int sysmobts_par_get_int(enum sysmobts_par par, int *ret)
{
+ eeprom_RfClockCal_t rf_clk;
+ eeprom_Error_t err;
struct sysmobts_eeprom *ee = get_eeprom(0);
if (!ee)
@@ -129,7 +132,10 @@ int sysmobts_par_get_int(enum sysmobts_par par, int *ret)
switch (par) {
case SYSMOBTS_PAR_CLK_FACTORY:
- *ret = ee->clk_cal_fact;
+ err = eeprom_ReadRfClockCal(&rf_clk);
+ if (err != EEPROM_SUCCESS)
+ return -EIO;
+ *ret = rf_clk.iClkCor;
break;
case SYSMOBTS_PAR_TEMP_DIG_MAX:
*ret = ee->temp1_max;
@@ -164,6 +170,8 @@ int sysmobts_par_get_int(enum sysmobts_par par, int *ret)
int sysmobts_par_set_int(enum sysmobts_par par, int val)
{
+ eeprom_RfClockCal_t rf_clk;
+ eeprom_Error_t err;
struct sysmobts_eeprom *ee = get_eeprom(1);
if (!ee)
@@ -174,7 +182,13 @@ int sysmobts_par_set_int(enum sysmobts_par par, int val)
switch (par) {
case SYSMOBTS_PAR_CLK_FACTORY:
- ee->clk_cal_fact = val;
+ err = eeprom_ReadRfClockCal(&rf_clk);
+ if (err != EEPROM_SUCCESS)
+ return -EIO;
+ rf_clk.iClkCor = val;
+ err = eeprom_WriteRfClockCal(&rf_clk);
+ if (err != EEPROM_SUCCESS)
+ return -EIO;
break;
case SYSMOBTS_PAR_TEMP_DIG_MAX:
ee->temp1_max = val;