summaryrefslogtreecommitdiff
path: root/firmware/export/tuner.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/tuner.h')
-rw-r--r--firmware/export/tuner.h59
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
46int radio_set(int setting, int value);
47int 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
58int (*_radio_set)(int setting, int value);
59int (*_radio_get)(int setting);
60#endif
61#endif
62
42#if (CONFIG_TUNER & S1A0903X01) 63#if (CONFIG_TUNER & S1A0903X01)
43void samsung_set(int setting, int value); 64int samsung_set(int setting, int value);
44int samsung_get(int setting); 65int samsung_get(int setting);
45#endif 66#endif /* CONFIG_TUNER & S1A0903X01 */
46 67
47#if (CONFIG_TUNER & TEA5767) 68#if (CONFIG_TUNER & TEA5767)
48void philips_set(int setting, int value); 69struct philips_dbg_info
70{
71 unsigned char read_regs[5];
72 unsigned char write_regs[5];
73};
74int philips_set(int setting, int value);
49int philips_get(int setting); 75int philips_get(int setting);
76void 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. */
81static 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