diff options
Diffstat (limited to 'firmware/drivers/tuner/tea5760uk.c')
-rw-r--r-- | firmware/drivers/tuner/tea5760uk.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/firmware/drivers/tuner/tea5760uk.c b/firmware/drivers/tuner/tea5760uk.c index 20234e28ed..c1dff598b3 100644 --- a/firmware/drivers/tuner/tea5760uk.c +++ b/firmware/drivers/tuner/tea5760uk.c | |||
@@ -30,6 +30,10 @@ | |||
30 | 30 | ||
31 | #define I2C_ADR 0x22 | 31 | #define I2C_ADR 0x22 |
32 | 32 | ||
33 | /* define RSSI range */ | ||
34 | #define RSSI_MIN 4 | ||
35 | #define RSSI_MAX 46 | ||
36 | |||
33 | static bool tuner_present = false; | 37 | static bool tuner_present = false; |
34 | static unsigned char write_bytes[7] = { | 38 | static unsigned char write_bytes[7] = { |
35 | 0x00, /* INTREG LSB */ | 39 | 0x00, /* INTREG LSB */ |
@@ -138,6 +142,19 @@ int tea5760_get(int setting) | |||
138 | case RADIO_STEREO: | 142 | case RADIO_STEREO: |
139 | val = read_bytes[9] >> 2; | 143 | val = read_bytes[9] >> 2; |
140 | break; | 144 | break; |
145 | |||
146 | case RADIO_RSSI: | ||
147 | val = (read_bytes[9] >> 4) & 0x0F; | ||
148 | val = 4 + (28 * val + 5) / 10; | ||
149 | break; | ||
150 | |||
151 | case RADIO_RSSI_MIN: | ||
152 | val = RSSI_MIN; | ||
153 | break; | ||
154 | |||
155 | case RADIO_RSSI_MAX: | ||
156 | val = RSSI_MAX; | ||
157 | break; | ||
141 | } | 158 | } |
142 | 159 | ||
143 | return val; | 160 | return val; |