summaryrefslogtreecommitdiff
path: root/firmware/drivers/tuner/tea5760uk.c
diff options
context:
space:
mode:
authorBertrik Sikken <bertrik@sikken.nl>2010-11-11 21:13:29 +0000
committerBertrik Sikken <bertrik@sikken.nl>2010-11-11 21:13:29 +0000
commitde870b3ee049262f984254305c7a062a1cdf3026 (patch)
treef9636eb3e4634ac223a0c5a6dadeb4e1a25b61db /firmware/drivers/tuner/tea5760uk.c
parentb787c0dd05ef4ddd6727a86b06d2491be8600f07 (diff)
downloadrockbox-de870b3ee049262f984254305c7a062a1cdf3026.tar.gz
rockbox-de870b3ee049262f984254305c7a062a1cdf3026.zip
Signal strength meter for FM radio - FS#8151 by Przemysław Hołubowski
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28559 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/tuner/tea5760uk.c')
-rw-r--r--firmware/drivers/tuner/tea5760uk.c17
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
33static bool tuner_present = false; 37static bool tuner_present = false;
34static unsigned char write_bytes[7] = { 38static 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;