summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorJörg Hohensohn <hohensoh@rockbox.org>2004-10-18 07:58:59 +0000
committerJörg Hohensohn <hohensoh@rockbox.org>2004-10-18 07:58:59 +0000
commit6694212a6f2eda4bd70933ddabbc0243652f32d1 (patch)
treee91ae3ca579873c1463d5b623a8d9899aa578568 /firmware
parentd8426965a2284fc47bc6e1d9f932d0a9fb1a90ac (diff)
downloadrockbox-6694212a6f2eda4bd70933ddabbc0243652f32d1.tar.gz
rockbox-6694212a6f2eda4bd70933ddabbc0243652f32d1.zip
minor touchup, to make the tuner interface independent from the IF
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5302 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/export/tuner.h2
-rw-r--r--firmware/tuner_philips.c21
-rw-r--r--firmware/tuner_samsung.c4
3 files changed, 12 insertions, 15 deletions
diff --git a/firmware/export/tuner.h b/firmware/export/tuner.h
index ae31c6d354..c399bb391b 100644
--- a/firmware/export/tuner.h
+++ b/firmware/export/tuner.h
@@ -29,7 +29,7 @@
29#define RADIO_FORCE_MONO 5 29#define RADIO_FORCE_MONO 5
30/* readback from the tuner layer */ 30/* readback from the tuner layer */
31#define RADIO_PRESENT 0 31#define RADIO_PRESENT 0
32#define RADIO_IF_MEASURED 1 32#define RADIO_DEVIATION 1
33#define RADIO_STEREO 2 33#define RADIO_STEREO 2
34 34
35#ifdef CONFIG_TUNER 35#ifdef CONFIG_TUNER
diff --git a/firmware/tuner_philips.c b/firmware/tuner_philips.c
index e63d063bfd..3fdf0f7cd0 100644
--- a/firmware/tuner_philips.c
+++ b/firmware/tuner_philips.c
@@ -29,7 +29,6 @@ static unsigned char write_bytes[5];
29/* tuner abstraction layer: set something to the tuner */ 29/* tuner abstraction layer: set something to the tuner */
30void philips_set(int setting, int value) 30void philips_set(int setting, int value)
31{ 31{
32 (void)value;
33 switch(setting) 32 switch(setting)
34 { 33 {
35 case RADIO_INIT: 34 case RADIO_INIT:
@@ -42,33 +41,31 @@ void philips_set(int setting, int value)
42 n = (4 * (value - 225000)) / 50000; 41 n = (4 * (value - 225000)) / 50000;
43 write_bytes[0] = (write_bytes[0] & 0xC0) | (n >> 8); 42 write_bytes[0] = (write_bytes[0] & 0xC0) | (n >> 8);
44 write_bytes[1] = n & 0xFF; 43 write_bytes[1] = n & 0xFF;
45 fmradio_i2c_write(I2C_ADR, write_bytes, sizeof(write_bytes));
46 } 44 }
47 break; 45 break;
48 46
49 case RADIO_MUTE: 47 case RADIO_MUTE:
50 write_bytes[0] = (write_bytes[0] & 0x7F) | (value ? 0x80 : 0); 48 write_bytes[0] = (write_bytes[0] & 0x7F) | (value ? 0x80 : 0);
51 fmradio_i2c_write(I2C_ADR, write_bytes, sizeof(write_bytes));
52 break;
53
54 case RADIO_IF_MEASUREMENT:
55 break;
56
57 case RADIO_SENSITIVITY:
58 break; 49 break;
59 50
60 case RADIO_FORCE_MONO: 51 case RADIO_FORCE_MONO:
61 write_bytes[2] = (write_bytes[2] & 0xF7) | (value ? 0x08 : 0); 52 write_bytes[2] = (write_bytes[2] & 0xF7) | (value ? 0x08 : 0);
62 fmradio_i2c_write(I2C_ADR, write_bytes, sizeof(write_bytes)); 53 fmradio_i2c_write(I2C_ADR, write_bytes, sizeof(write_bytes));
63 break; 54 break;
55
56 case RADIO_IF_MEASUREMENT:
57 case RADIO_SENSITIVITY:
58 default:
59 return;
64 } 60 }
61 fmradio_i2c_write(I2C_ADR, write_bytes, sizeof(write_bytes));
65} 62}
66 63
67/* tuner abstraction layer: read something from the tuner */ 64/* tuner abstraction layer: read something from the tuner */
68int philips_get(int setting) 65int philips_get(int setting)
69{ 66{
70 unsigned char read_bytes[5]; 67 unsigned char read_bytes[5];
71 int val = -1; 68 int val = -1; /* default for unsupported query */
72 69
73 fmradio_i2c_read(I2C_ADR, read_bytes, sizeof(read_bytes)); 70 fmradio_i2c_read(I2C_ADR, read_bytes, sizeof(read_bytes));
74 71
@@ -78,9 +75,9 @@ int philips_get(int setting)
78 val = 1; /* true */ 75 val = 1; /* true */
79 break; 76 break;
80 77
81 case RADIO_IF_MEASURED: 78 case RADIO_DEVIATION:
82 val = read_bytes[2] & 0x7F; 79 val = read_bytes[2] & 0x7F;
83 val = 1070 + (val-55)/2; 80 val = 222 - val*4; /* convert to kHz */
84 break; 81 break;
85 82
86 case RADIO_STEREO: 83 case RADIO_STEREO:
diff --git a/firmware/tuner_samsung.c b/firmware/tuner_samsung.c
index 781a4bcd3e..98166e1d4d 100644
--- a/firmware/tuner_samsung.c
+++ b/firmware/tuner_samsung.c
@@ -96,9 +96,9 @@ int samsung_get(int setting)
96 val = (val == 0x140885); 96 val = (val == 0x140885);
97 break; 97 break;
98 98
99 case RADIO_IF_MEASURED: 99 case RADIO_DEVIATION:
100 val = fmradio_read(3); 100 val = fmradio_read(3);
101 val = (val & 0x7ffff) / 80; /* convert to kHz */ 101 val = 10700 - ((val & 0x7ffff) / 8); /* convert to kHz */
102 break; 102 break;
103 103
104 case RADIO_STEREO: 104 case RADIO_STEREO: