Steven Toth | 265a651 | 2008-04-18 21:34:00 -0300 | [diff] [blame] | 1 | /* |
| 2 | Auvitek AU8522 QAM/8VSB demodulator driver |
| 3 | |
Steven Toth | 6d89761 | 2008-09-03 17:12:12 -0300 | [diff] [blame] | 4 | Copyright (C) 2008 Steven Toth <stoth@linuxtv.org> |
Steven Toth | 265a651 | 2008-04-18 21:34:00 -0300 | [diff] [blame] | 5 | |
| 6 | This program is free software; you can redistribute it and/or modify |
| 7 | it under the terms of the GNU General Public License as published by |
| 8 | the Free Software Foundation; either version 2 of the License, or |
| 9 | (at your option) any later version. |
| 10 | |
| 11 | This program is distributed in the hope that it will be useful, |
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 14 | GNU General Public License for more details. |
| 15 | |
| 16 | You should have received a copy of the GNU General Public License |
| 17 | along with this program; if not, write to the Free Software |
| 18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
| 19 | |
| 20 | */ |
| 21 | |
| 22 | #ifndef __AU8522_H__ |
| 23 | #define __AU8522_H__ |
| 24 | |
Mauro Carvalho Chehab | 782d8b7 | 2013-03-21 16:11:54 -0300 | [diff] [blame] | 25 | #include <linux/kconfig.h> |
Steven Toth | 265a651 | 2008-04-18 21:34:00 -0300 | [diff] [blame] | 26 | #include <linux/dvb/frontend.h> |
| 27 | |
Michael Krufky | 2e7acd7 | 2008-09-03 16:46:35 -0300 | [diff] [blame] | 28 | enum au8522_if_freq { |
| 29 | AU8522_IF_6MHZ = 0, |
| 30 | AU8522_IF_4MHZ, |
| 31 | AU8522_IF_3_25MHZ, |
| 32 | }; |
| 33 | |
Michael Krufky | adeeac3 | 2008-04-05 20:55:14 -0300 | [diff] [blame] | 34 | struct au8522_led_config { |
| 35 | u16 vsb8_strong; |
| 36 | u16 qam64_strong; |
| 37 | u16 qam256_strong; |
| 38 | |
| 39 | u16 gpio_output; |
| 40 | /* unset hi bits, set low bits */ |
| 41 | u16 gpio_output_enable; |
| 42 | u16 gpio_output_disable; |
| 43 | |
| 44 | u16 gpio_leds; |
| 45 | u8 *led_states; |
| 46 | unsigned int num_led_states; |
| 47 | }; |
| 48 | |
Mauro Carvalho Chehab | 18d73c5 | 2008-04-18 22:12:52 -0300 | [diff] [blame] | 49 | struct au8522_config { |
Steven Toth | 265a651 | 2008-04-18 21:34:00 -0300 | [diff] [blame] | 50 | /* the demodulator's i2c address */ |
| 51 | u8 demod_address; |
| 52 | |
| 53 | /* Return lock status based on tuner lock, or demod lock */ |
| 54 | #define AU8522_TUNERLOCKING 0 |
| 55 | #define AU8522_DEMODLOCKING 1 |
| 56 | u8 status_mode; |
Michael Krufky | 2e7acd7 | 2008-09-03 16:46:35 -0300 | [diff] [blame] | 57 | |
Michael Krufky | adeeac3 | 2008-04-05 20:55:14 -0300 | [diff] [blame] | 58 | struct au8522_led_config *led_cfg; |
| 59 | |
Michael Krufky | 2e7acd7 | 2008-09-03 16:46:35 -0300 | [diff] [blame] | 60 | enum au8522_if_freq vsb_if; |
| 61 | enum au8522_if_freq qam_if; |
Steven Toth | 265a651 | 2008-04-18 21:34:00 -0300 | [diff] [blame] | 62 | }; |
| 63 | |
Arnd Bergmann | 9b17452 | 2015-02-18 14:12:42 -0300 | [diff] [blame] | 64 | #if IS_REACHABLE(CONFIG_DVB_AU8522_DTV) |
Michael Krufky | e059b0f | 2008-04-02 18:59:48 -0300 | [diff] [blame] | 65 | extern struct dvb_frontend *au8522_attach(const struct au8522_config *config, |
| 66 | struct i2c_adapter *i2c); |
Steven Toth | 265a651 | 2008-04-18 21:34:00 -0300 | [diff] [blame] | 67 | #else |
Michael Krufky | e059b0f | 2008-04-02 18:59:48 -0300 | [diff] [blame] | 68 | static inline |
| 69 | struct dvb_frontend *au8522_attach(const struct au8522_config *config, |
| 70 | struct i2c_adapter *i2c) |
Steven Toth | 265a651 | 2008-04-18 21:34:00 -0300 | [diff] [blame] | 71 | { |
Michael Krufky | ce1719a | 2008-04-02 18:59:48 -0300 | [diff] [blame] | 72 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); |
Steven Toth | 265a651 | 2008-04-18 21:34:00 -0300 | [diff] [blame] | 73 | return NULL; |
| 74 | } |
| 75 | #endif /* CONFIG_DVB_AU8522 */ |
| 76 | |
Devin Heitmueller | 968cf78 | 2009-03-11 03:00:38 -0300 | [diff] [blame] | 77 | /* Other modes may need to be added later */ |
| 78 | enum au8522_video_input { |
| 79 | AU8522_COMPOSITE_CH1 = 1, |
| 80 | AU8522_COMPOSITE_CH2, |
| 81 | AU8522_COMPOSITE_CH3, |
| 82 | AU8522_COMPOSITE_CH4, |
| 83 | AU8522_COMPOSITE_CH4_SIF, |
| 84 | AU8522_SVIDEO_CH13, |
| 85 | AU8522_SVIDEO_CH24, |
| 86 | }; |
| 87 | |
| 88 | enum au8522_audio_input { |
| 89 | AU8522_AUDIO_NONE, |
| 90 | AU8522_AUDIO_SIF, |
| 91 | }; |
Steven Toth | 265a651 | 2008-04-18 21:34:00 -0300 | [diff] [blame] | 92 | #endif /* __AU8522_H__ */ |