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; | |
5af0c8f6 HV |
60 | u8 has_nicam; |
61 | u8 has_radio; | |
62 | u8 has_headphones; | |
63 | u8 has_ntsc_jp_d_k3; | |
64 | u8 has_scart4; | |
65 | u8 has_scart23_in_scart2_out; | |
66 | u8 has_scart2_out_volume; | |
67 | u8 has_i2s_conf; | |
68 | u8 has_subwoofer; | |
69 | u8 has_sound_processing; | |
70 | u8 has_virtual_dolby_surround; | |
71 | u8 has_dolby_pro_logic; | |
7560d7a4 HV |
72 | |
73 | int radio; | |
53b0a1c6 | 74 | int opmode; |
5af0c8f6 | 75 | int std; |
53b0a1c6 | 76 | int mode; |
5af0c8f6 | 77 | v4l2_std_id v4l2_std; |
53b0a1c6 HV |
78 | int nicam_on; |
79 | int acb; | |
80 | int in_scart; | |
81 | int i2s_mode; | |
82 | int main, second; /* sound carrier */ | |
83 | int input; | |
84 | int source; /* see msp34xxg_set_source */ | |
85 | ||
86 | /* v4l2 */ | |
87 | int audmode; | |
88 | int rxsubchans; | |
89 | ||
d312a46e HV |
90 | int volume, muted; |
91 | int balance, loudness; | |
53b0a1c6 HV |
92 | int bass, treble; |
93 | ||
94 | /* thread */ | |
95 | struct task_struct *kthread; | |
96 | wait_queue_head_t wq; | |
97 | int restart:1; | |
98 | int watch_stereo:1; | |
99 | }; | |
100 | ||
53b0a1c6 HV |
101 | /* msp3400-driver.c */ |
102 | int msp_write_dem(struct i2c_client *client, int addr, int val); | |
103 | int msp_write_dsp(struct i2c_client *client, int addr, int val); | |
104 | int msp_read_dem(struct i2c_client *client, int addr); | |
105 | int msp_read_dsp(struct i2c_client *client, int addr); | |
106 | int msp_reset(struct i2c_client *client); | |
107 | void msp_set_scart(struct i2c_client *client, int in, int out); | |
108 | void msp_set_mute(struct i2c_client *client); | |
109 | void msp_set_audio(struct i2c_client *client); | |
7560d7a4 | 110 | int msp_modus(struct i2c_client *client); |
53b0a1c6 HV |
111 | int msp_sleep(struct msp_state *state, int timeout); |
112 | ||
113 | /* msp3400-kthreads.c */ | |
5af0c8f6 | 114 | const char *msp_standard_std_name(int std); |
53b0a1c6 HV |
115 | void msp3400c_setcarrier(struct i2c_client *client, int cdo1, int cdo2); |
116 | void msp3400c_setmode(struct i2c_client *client, int type); | |
117 | void msp3400c_setstereo(struct i2c_client *client, int mode); | |
118 | int autodetect_stereo(struct i2c_client *client); | |
119 | int msp3400c_thread(void *data); | |
120 | int msp3410d_thread(void *data); | |
121 | int msp34xxg_thread(void *data); | |
122 | void msp34xxg_detect_stereo(struct i2c_client *client); | |
123 | void msp34xxg_set_audmode(struct i2c_client *client, int audmode); | |
124 | ||
1da177e4 | 125 | #endif /* MSP3400_H */ |