Commit | Line | Data |
---|---|---|
56fc08ca | 1 | /* |
56fc08ca MCC |
2 | */ |
3 | ||
1da177e4 LT |
4 | #ifndef MSP3400_H |
5 | #define MSP3400_H | |
6 | ||
7 | /* ---------------------------------------------------------------------- */ | |
8 | ||
1da177e4 LT |
9 | struct msp_matrix { |
10 | int input; | |
11 | int output; | |
12 | }; | |
13 | ||
1da177e4 LT |
14 | /* ioctl for MSP_SET_MATRIX will have to be registered */ |
15 | #define MSP_SET_MATRIX _IOW('m',17,struct msp_matrix) | |
16 | ||
53b0a1c6 HV |
17 | /* This macro is allowed for *constants* only, gcc must calculate it |
18 | at compile time. Remember -- no floats in kernel mode */ | |
19 | #define MSP_CARRIER(freq) ((int)((float)(freq / 18.432) * (1 << 24))) | |
20 | ||
21 | #define MSP_MODE_AM_DETECT 0 | |
22 | #define MSP_MODE_FM_RADIO 2 | |
23 | #define MSP_MODE_FM_TERRA 3 | |
24 | #define MSP_MODE_FM_SAT 4 | |
25 | #define MSP_MODE_FM_NICAM1 5 | |
26 | #define MSP_MODE_FM_NICAM2 6 | |
27 | #define MSP_MODE_AM_NICAM 7 | |
28 | #define MSP_MODE_BTSC 8 | |
29 | #define MSP_MODE_EXTERN 9 | |
30 | ||
1da177e4 LT |
31 | #define SCART_MASK 0 |
32 | #define SCART_IN1 1 | |
33 | #define SCART_IN2 2 | |
34 | #define SCART_IN1_DA 3 | |
35 | #define SCART_IN2_DA 4 | |
36 | #define SCART_IN3 5 | |
37 | #define SCART_IN4 6 | |
38 | #define SCART_MONO 7 | |
39 | #define SCART_MUTE 8 | |
40 | ||
41 | #define SCART_DSP_IN 0 | |
42 | #define SCART1_OUT 1 | |
43 | #define SCART2_OUT 2 | |
44 | ||
53b0a1c6 HV |
45 | #define OPMODE_AUTO -1 |
46 | #define OPMODE_MANUAL 0 | |
47 | #define OPMODE_AUTODETECT 1 /* use autodetect (>= msp3410 only) */ | |
48 | #define OPMODE_AUTOSELECT 2 /* use autodetect & autoselect (>= msp34xxG) */ | |
49 | ||
50 | /* module parameters */ | |
51 | extern int debug; | |
52 | extern int once; | |
53 | extern int amsound; | |
54 | extern int standard; | |
55 | extern int dolby; | |
56 | extern int stereo_threshold; | |
57 | ||
58 | struct msp_state { | |
59 | int rev1, rev2; | |
60 | ||
61 | int opmode; | |
62 | int mode; | |
63 | int norm; | |
64 | int stereo; | |
65 | int nicam_on; | |
66 | int acb; | |
67 | int in_scart; | |
68 | int i2s_mode; | |
69 | int main, second; /* sound carrier */ | |
70 | int input; | |
71 | int source; /* see msp34xxg_set_source */ | |
72 | ||
73 | /* v4l2 */ | |
74 | int audmode; | |
75 | int rxsubchans; | |
76 | ||
77 | int muted; | |
78 | int volume, balance; | |
79 | int bass, treble; | |
80 | ||
81 | /* thread */ | |
82 | struct task_struct *kthread; | |
83 | wait_queue_head_t wq; | |
84 | int restart:1; | |
85 | int watch_stereo:1; | |
86 | }; | |
87 | ||
88 | #define VIDEO_MODE_RADIO 16 /* norm magic for radio mode */ | |
89 | ||
90 | #define HAVE_NICAM(state) (((state->rev2 >> 8) & 0xff) != 0) | |
91 | #define HAVE_RADIO(state) ((state->rev1 & 0x0f) >= 'G'-'@') | |
92 | ||
93 | /* msp3400-driver.c */ | |
94 | int msp_write_dem(struct i2c_client *client, int addr, int val); | |
95 | int msp_write_dsp(struct i2c_client *client, int addr, int val); | |
96 | int msp_read_dem(struct i2c_client *client, int addr); | |
97 | int msp_read_dsp(struct i2c_client *client, int addr); | |
98 | int msp_reset(struct i2c_client *client); | |
99 | void msp_set_scart(struct i2c_client *client, int in, int out); | |
100 | void msp_set_mute(struct i2c_client *client); | |
101 | void msp_set_audio(struct i2c_client *client); | |
102 | int msp_modus(struct i2c_client *client, int norm); | |
103 | int msp_standard(int norm); | |
104 | int msp_sleep(struct msp_state *state, int timeout); | |
105 | ||
106 | /* msp3400-kthreads.c */ | |
107 | const char *msp_standard_mode_name(int mode); | |
108 | void msp3400c_setcarrier(struct i2c_client *client, int cdo1, int cdo2); | |
109 | void msp3400c_setmode(struct i2c_client *client, int type); | |
110 | void msp3400c_setstereo(struct i2c_client *client, int mode); | |
111 | int autodetect_stereo(struct i2c_client *client); | |
112 | int msp3400c_thread(void *data); | |
113 | int msp3410d_thread(void *data); | |
114 | int msp34xxg_thread(void *data); | |
115 | void msp34xxg_detect_stereo(struct i2c_client *client); | |
116 | void msp34xxg_set_audmode(struct i2c_client *client, int audmode); | |
117 | ||
1da177e4 | 118 | #endif /* MSP3400_H */ |