1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* |
3 | Auvitek AU8522 QAM/8VSB demodulator driver |
4 | |
5 | Copyright (C) 2008 Steven Toth <stoth@linuxtv.org> |
6 | |
7 | |
8 | */ |
9 | |
10 | #ifndef __AU8522_H__ |
11 | #define __AU8522_H__ |
12 | |
13 | #include <linux/dvb/frontend.h> |
14 | |
15 | enum au8522_if_freq { |
16 | AU8522_IF_6MHZ = 0, |
17 | AU8522_IF_4MHZ, |
18 | AU8522_IF_3_25MHZ, |
19 | }; |
20 | |
21 | struct au8522_led_config { |
22 | u16 vsb8_strong; |
23 | u16 qam64_strong; |
24 | u16 qam256_strong; |
25 | |
26 | u16 gpio_output; |
27 | /* unset hi bits, set low bits */ |
28 | u16 gpio_output_enable; |
29 | u16 gpio_output_disable; |
30 | |
31 | u16 gpio_leds; |
32 | u8 *led_states; |
33 | unsigned int num_led_states; |
34 | }; |
35 | |
36 | struct au8522_config { |
37 | /* the demodulator's i2c address */ |
38 | u8 demod_address; |
39 | |
40 | /* Return lock status based on tuner lock, or demod lock */ |
41 | #define AU8522_TUNERLOCKING 0 |
42 | #define AU8522_DEMODLOCKING 1 |
43 | u8 status_mode; |
44 | |
45 | struct au8522_led_config *led_cfg; |
46 | |
47 | enum au8522_if_freq vsb_if; |
48 | enum au8522_if_freq qam_if; |
49 | }; |
50 | |
51 | #if IS_REACHABLE(CONFIG_DVB_AU8522_DTV) |
52 | extern struct dvb_frontend *au8522_attach(const struct au8522_config *config, |
53 | struct i2c_adapter *i2c); |
54 | #else |
55 | static inline |
56 | struct dvb_frontend *au8522_attach(const struct au8522_config *config, |
57 | struct i2c_adapter *i2c) |
58 | { |
59 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n" , __func__); |
60 | return NULL; |
61 | } |
62 | #endif /* CONFIG_DVB_AU8522 */ |
63 | |
64 | /* Other modes may need to be added later */ |
65 | enum au8522_video_input { |
66 | AU8522_COMPOSITE_CH1 = 1, |
67 | AU8522_COMPOSITE_CH2, |
68 | AU8522_COMPOSITE_CH3, |
69 | AU8522_COMPOSITE_CH4, |
70 | AU8522_COMPOSITE_CH4_SIF, |
71 | AU8522_SVIDEO_CH13, |
72 | AU8522_SVIDEO_CH24, |
73 | }; |
74 | |
75 | enum au8522_audio_input { |
76 | AU8522_AUDIO_NONE, |
77 | AU8522_AUDIO_SIF, |
78 | }; |
79 | #endif /* __AU8522_H__ */ |
80 | |