summaryrefslogtreecommitdiff
path: root/firmware/drivers/tuner/si4700.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/si4700.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/si4700.c')
-rw-r--r--firmware/drivers/tuner/si4700.c18
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;