diff options
Diffstat (limited to 'firmware/export')
-rw-r--r-- | firmware/export/tuner.h | 59 |
1 files changed, 53 insertions, 6 deletions
diff --git a/firmware/export/tuner.h b/firmware/export/tuner.h index 0a13613711..590e61dedb 100644 --- a/firmware/export/tuner.h +++ b/firmware/export/tuner.h | |||
@@ -20,34 +20,81 @@ | |||
20 | #ifndef __TUNER_SAMSUNG_H__ | 20 | #ifndef __TUNER_SAMSUNG_H__ |
21 | #define __TUNER_SAMSUNG_H__ | 21 | #define __TUNER_SAMSUNG_H__ |
22 | 22 | ||
23 | #include "hwcompat.h" | ||
24 | |||
23 | /* settings to the tuner layer */ | 25 | /* settings to the tuner layer */ |
26 | #define RADIO_ALL -1 /* debug */ | ||
24 | #define RADIO_SLEEP 0 | 27 | #define RADIO_SLEEP 0 |
25 | #define RADIO_FREQUENCY 1 | 28 | #define RADIO_FREQUENCY 1 |
26 | #define RADIO_MUTE 2 | 29 | #define RADIO_MUTE 2 |
27 | #define RADIO_IF_MEASUREMENT 3 | 30 | #define RADIO_IF_MEASUREMENT 3 |
28 | #define RADIO_SENSITIVITY 4 | 31 | #define RADIO_SENSITIVITY 4 |
29 | #define RADIO_FORCE_MONO 5 | 32 | #define RADIO_FORCE_MONO 5 |
33 | #define RADIO_SCAN_FREQUENCY 6 | ||
30 | #if (CONFIG_TUNER & TEA5767) | 34 | #if (CONFIG_TUNER & TEA5767) |
31 | #define RADIO_SET_DEEMPHASIS 6 | 35 | #define RADIO_SET_DEEMPHASIS 7 |
32 | #define RADIO_SET_BAND 7 | 36 | #define RADIO_SET_BAND 8 |
33 | #endif | 37 | #endif |
34 | /* readback from the tuner layer */ | 38 | /* readback from the tuner layer */ |
35 | #define RADIO_PRESENT 0 | 39 | #define RADIO_PRESENT 0 |
36 | #define RADIO_TUNED 1 | 40 | #define RADIO_TUNED 1 |
37 | #define RADIO_STEREO 2 | 41 | #define RADIO_STEREO 2 |
38 | #define RADIO_ALL 3 /* debug */ | ||
39 | 42 | ||
40 | #if CONFIG_TUNER | 43 | #if CONFIG_TUNER |
41 | 44 | ||
45 | #ifdef SIMULATOR | ||
46 | int radio_set(int setting, int value); | ||
47 | int radio_get(int setting); | ||
48 | #else | ||
49 | #if CONFIG_TUNER == S1A0903X01 /* FM recorder */ | ||
50 | #define radio_set samsung_set | ||
51 | #define radio_get samsung_get | ||
52 | #elif CONFIG_TUNER == TEA5767 /* iRiver, iAudio */ | ||
53 | #define radio_set philips_set | ||
54 | #define radio_get philips_get | ||
55 | #elif CONFIG_TUNER == (S1A0903X01 | TEA5767) /* OndioFM */ | ||
56 | #define radio_set _radio_set | ||
57 | #define radio_get _radio_get | ||
58 | int (*_radio_set)(int setting, int value); | ||
59 | int (*_radio_get)(int setting); | ||
60 | #endif | ||
61 | #endif | ||
62 | |||
42 | #if (CONFIG_TUNER & S1A0903X01) | 63 | #if (CONFIG_TUNER & S1A0903X01) |
43 | void samsung_set(int setting, int value); | 64 | int samsung_set(int setting, int value); |
44 | int samsung_get(int setting); | 65 | int samsung_get(int setting); |
45 | #endif | 66 | #endif /* CONFIG_TUNER & S1A0903X01 */ |
46 | 67 | ||
47 | #if (CONFIG_TUNER & TEA5767) | 68 | #if (CONFIG_TUNER & TEA5767) |
48 | void philips_set(int setting, int value); | 69 | struct philips_dbg_info |
70 | { | ||
71 | unsigned char read_regs[5]; | ||
72 | unsigned char write_regs[5]; | ||
73 | }; | ||
74 | int philips_set(int setting, int value); | ||
49 | int philips_get(int setting); | 75 | int philips_get(int setting); |
76 | void philips_dbg_info(struct philips_dbg_info *info); | ||
77 | #endif /* CONFIG_TUNER & TEA5767 */ | ||
78 | |||
79 | /* Just inline here since only radio screen needs this atm and | ||
80 | there's no tuner.c. */ | ||
81 | static inline void tuner_init(void) | ||
82 | { | ||
83 | #ifndef SIMULATOR | ||
84 | #if CONFIG_TUNER == (S1A0903X01 | TEA5767) | ||
85 | if (read_hw_mask() & TUNER_MODEL) | ||
86 | { | ||
87 | _radio_set = philips_set; | ||
88 | _radio_get = philips_get; | ||
89 | } | ||
90 | else | ||
91 | { | ||
92 | _radio_set = samsung_set; | ||
93 | _radio_get = samsung_get; | ||
94 | } | ||
95 | #endif | ||
50 | #endif | 96 | #endif |
97 | } | ||
51 | 98 | ||
52 | #endif /* #if CONFIG_TUNER */ | 99 | #endif /* #if CONFIG_TUNER */ |
53 | 100 | ||