diff options
author | Jörg Hohensohn <hohensoh@rockbox.org> | 2004-10-18 07:58:59 +0000 |
---|---|---|
committer | Jörg Hohensohn <hohensoh@rockbox.org> | 2004-10-18 07:58:59 +0000 |
commit | 6694212a6f2eda4bd70933ddabbc0243652f32d1 (patch) | |
tree | e91ae3ca579873c1463d5b623a8d9899aa578568 /firmware | |
parent | d8426965a2284fc47bc6e1d9f932d0a9fb1a90ac (diff) | |
download | rockbox-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.h | 2 | ||||
-rw-r--r-- | firmware/tuner_philips.c | 21 | ||||
-rw-r--r-- | firmware/tuner_samsung.c | 4 |
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 */ |
30 | void philips_set(int setting, int value) | 30 | void 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 */ |
68 | int philips_get(int setting) | 65 | int 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: |