diff options
Diffstat (limited to 'firmware/drivers/tuner/lv24020lp.c')
-rw-r--r-- | firmware/drivers/tuner/lv24020lp.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/firmware/drivers/tuner/lv24020lp.c b/firmware/drivers/tuner/lv24020lp.c index 0228888309..590ca9641e 100644 --- a/firmware/drivers/tuner/lv24020lp.c +++ b/firmware/drivers/tuner/lv24020lp.c | |||
@@ -35,6 +35,10 @@ | |||
35 | 35 | ||
36 | static struct mutex tuner_mtx; | 36 | static struct mutex tuner_mtx; |
37 | 37 | ||
38 | /* define RSSI range */ | ||
39 | #define RSSI_MIN 5 | ||
40 | #define RSSI_MAX 75 | ||
41 | |||
38 | /* define to enable tuner logging */ | 42 | /* define to enable tuner logging */ |
39 | #undef SANYO_TUNER_LOG_FILE | 43 | #undef SANYO_TUNER_LOG_FILE |
40 | #undef SANYO_TUNER_LOGF | 44 | #undef SANYO_TUNER_LOGF |
@@ -966,6 +970,8 @@ int lv24020lp_set(int setting, int value) | |||
966 | int lv24020lp_get(int setting) | 970 | int lv24020lp_get(int setting) |
967 | { | 971 | { |
968 | int val = -1; | 972 | int val = -1; |
973 | const unsigned char fst[7] = {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f}; | ||
974 | unsigned char fst_ndx, fs; | ||
969 | 975 | ||
970 | mutex_lock(&tuner_mtx); | 976 | mutex_lock(&tuner_mtx); |
971 | 977 | ||
@@ -994,6 +1000,22 @@ int lv24020lp_get(int setting) | |||
994 | break; | 1000 | break; |
995 | } | 1001 | } |
996 | 1002 | ||
1003 | case RADIO_RSSI: | ||
1004 | fs = RSS_FS(lv24020lp_read(RADIO_STAT)); | ||
1005 | for(fst_ndx=0; fst_ndx<7; fst_ndx++) | ||
1006 | if(fs == fst[fst_ndx]) | ||
1007 | break; | ||
1008 | val = 75 - 10*fst_ndx; | ||
1009 | break; | ||
1010 | |||
1011 | case RADIO_RSSI_MIN: | ||
1012 | val = RSSI_MIN; | ||
1013 | break; | ||
1014 | |||
1015 | case RADIO_RSSI_MAX: | ||
1016 | val = RSSI_MAX; | ||
1017 | break; | ||
1018 | |||
997 | default: | 1019 | default: |
998 | val = lv24020lp_debug_info(setting); | 1020 | val = lv24020lp_debug_info(setting); |
999 | } | 1021 | } |