diff options
author | Bertrik Sikken <bertrik@sikken.nl> | 2010-11-11 21:13:29 +0000 |
---|---|---|
committer | Bertrik Sikken <bertrik@sikken.nl> | 2010-11-11 21:13:29 +0000 |
commit | de870b3ee049262f984254305c7a062a1cdf3026 (patch) | |
tree | f9636eb3e4634ac223a0c5a6dadeb4e1a25b61db /firmware/drivers/tuner/si4700.c | |
parent | b787c0dd05ef4ddd6727a86b06d2491be8600f07 (diff) | |
download | rockbox-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/si4700.c')
-rw-r--r-- | firmware/drivers/tuner/si4700.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/firmware/drivers/tuner/si4700.c b/firmware/drivers/tuner/si4700.c index dfc0e46caf..4747357037 100644 --- a/firmware/drivers/tuner/si4700.c +++ b/firmware/drivers/tuner/si4700.c | |||
@@ -50,6 +50,10 @@ extern int si4700_st(void); | |||
50 | 50 | ||
51 | #define I2C_ADR 0x20 | 51 | #define I2C_ADR 0x20 |
52 | 52 | ||
53 | /* define RSSI range */ | ||
54 | #define RSSI_MIN 0 | ||
55 | #define RSSI_MAX 70 | ||
56 | |||
53 | /** Registers and bits - "x" denotes Si4702/03 only (so they say) **/ | 57 | /** Registers and bits - "x" denotes Si4702/03 only (so they say) **/ |
54 | #define DEVICEID 0x0 | 58 | #define DEVICEID 0x0 |
55 | #define CHIPID 0x1 | 59 | #define CHIPID 0x1 |
@@ -197,7 +201,7 @@ extern int si4700_st(void); | |||
197 | #define STATUSRSSI_BLERA (0x3 << 9) /* x */ | 201 | #define STATUSRSSI_BLERA (0x3 << 9) /* x */ |
198 | #define STATUSRSSI_ST (0x1 << 8) | 202 | #define STATUSRSSI_ST (0x1 << 8) |
199 | #define STATUSRSSI_RSSI (0xff << 0) | 203 | #define STATUSRSSI_RSSI (0xff << 0) |
200 | #define STATUSRSSI_RSSIr(x) ((x) & 0xff) | 204 | #define STATUSRSSI_RSSIr(x) ((x) & 0xff) |
201 | 205 | ||
202 | /* READCHAN (0xB) */ | 206 | /* READCHAN (0xB) */ |
203 | #define READCHAN_BLERB (0x3 << 14) /* x */ | 207 | #define READCHAN_BLERB (0x3 << 14) /* x */ |
@@ -481,6 +485,18 @@ int si4700_get(int setting) | |||
481 | case RADIO_STEREO: | 485 | case RADIO_STEREO: |
482 | val = si4700_st(); | 486 | val = si4700_st(); |
483 | break; | 487 | break; |
488 | |||
489 | case RADIO_RSSI: | ||
490 | val = STATUSRSSI_RSSIr(si4700_read_reg(STATUSRSSI)); | ||
491 | break; | ||
492 | |||
493 | case RADIO_RSSI_MIN: | ||
494 | val = RSSI_MIN; | ||
495 | break; | ||
496 | |||
497 | case RADIO_RSSI_MAX: | ||
498 | val = RSSI_MAX; | ||
499 | break; | ||
484 | } | 500 | } |
485 | 501 | ||
486 | return val; | 502 | return val; |