| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2007-04-21 19:37:17 -03:00
										 |  |  |     TDA10021/TDA10023  - Single Chip Cable Channel Receiver driver module | 
					
						
							|  |  |  | 			 used on the the Siemens DVB-C cards | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de> | 
					
						
							|  |  |  |     Copyright (C) 2004 Markus Schulz <msc@antzsystem.de> | 
					
						
							| 
									
										
										
										
											2005-12-12 00:37:24 -08:00
										 |  |  | 		   Support for TDA10021 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |     it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  |     the Free Software Foundation; either version 2 of the License, or | 
					
						
							|  |  |  |     (at your option) any later version. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |     but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |     GNU General Public License for more details. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |     along with this program; if not, write to the Free Software | 
					
						
							|  |  |  |     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-04-21 19:37:17 -03:00
										 |  |  | #ifndef TDA1002x_H
 | 
					
						
							|  |  |  | #define TDA1002x_H
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <linux/dvb/frontend.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-17 22:58:04 -03:00
										 |  |  | struct tda1002x_config { | 
					
						
							|  |  |  | 	/* the demodulator's i2c address */ | 
					
						
							|  |  |  | 	u8 demod_address; | 
					
						
							|  |  |  | 	u8 invert; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-09 22:53:04 -03:00
										 |  |  | enum tda10023_output_mode { | 
					
						
							|  |  |  | 	TDA10023_OUTPUT_MODE_PARALLEL_A = 0xe0, | 
					
						
							|  |  |  | 	TDA10023_OUTPUT_MODE_PARALLEL_B = 0xa1, | 
					
						
							|  |  |  | 	TDA10023_OUTPUT_MODE_PARALLEL_C = 0xa0, | 
					
						
							|  |  |  | 	TDA10023_OUTPUT_MODE_SERIAL, /* TODO: not implemented */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-17 22:58:04 -03:00
										 |  |  | struct tda10023_config { | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	/* the demodulator's i2c address */ | 
					
						
							|  |  |  | 	u8 demod_address; | 
					
						
							| 
									
										
										
										
											2007-04-21 19:44:10 -03:00
										 |  |  | 	u8 invert; | 
					
						
							| 
									
										
										
										
											2008-05-17 22:58:04 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* clock settings */ | 
					
						
							|  |  |  | 	u32 xtal; /* defaults: 28920000 */ | 
					
						
							|  |  |  | 	u8 pll_m; /* defaults: 8 */ | 
					
						
							|  |  |  | 	u8 pll_p; /* defaults: 4 */ | 
					
						
							|  |  |  | 	u8 pll_n; /* defaults: 1 */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-09 22:53:04 -03:00
										 |  |  | 	/* MPEG2 TS output mode */ | 
					
						
							|  |  |  | 	u8 output_mode; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-17 22:58:04 -03:00
										 |  |  | 	/* input freq offset + baseband conversion type */ | 
					
						
							|  |  |  | 	u16 deltaf; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-20 01:32:56 -03:00
										 |  |  | #if IS_ENABLED(CONFIG_DVB_TDA10021)
 | 
					
						
							| 
									
										
										
										
											2007-04-21 19:37:17 -03:00
										 |  |  | extern struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config, | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 					    struct i2c_adapter* i2c, u8 pwm); | 
					
						
							| 
									
										
										
										
											2006-08-08 09:10:08 -03:00
										 |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2007-04-21 19:37:17 -03:00
										 |  |  | static inline struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config, | 
					
						
							| 
									
										
										
										
											2006-08-08 09:10:08 -03:00
										 |  |  | 					    struct i2c_adapter* i2c, u8 pwm) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2008-04-08 23:20:00 -03:00
										 |  |  | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
					
						
							| 
									
										
										
										
											2006-08-08 09:10:08 -03:00
										 |  |  | 	return NULL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif // CONFIG_DVB_TDA10021
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-20 01:32:56 -03:00
										 |  |  | #if IS_ENABLED(CONFIG_DVB_TDA10023)
 | 
					
						
							| 
									
										
										
										
											2008-05-17 22:58:04 -03:00
										 |  |  | extern struct dvb_frontend *tda10023_attach( | 
					
						
							|  |  |  | 	const struct tda10023_config *config, | 
					
						
							|  |  |  | 	struct i2c_adapter *i2c, u8 pwm); | 
					
						
							| 
									
										
										
										
											2007-04-21 19:37:17 -03:00
										 |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2008-05-17 22:58:04 -03:00
										 |  |  | static inline struct dvb_frontend *tda10023_attach( | 
					
						
							| 
									
										
										
										
											2008-07-15 19:36:46 -03:00
										 |  |  | 	const struct tda10023_config *config, | 
					
						
							| 
									
										
										
										
											2008-05-17 22:58:04 -03:00
										 |  |  | 	struct i2c_adapter *i2c, u8 pwm) | 
					
						
							| 
									
										
										
										
											2007-04-21 19:37:17 -03:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2008-04-08 23:20:00 -03:00
										 |  |  | 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 
					
						
							| 
									
										
										
										
											2007-04-21 19:37:17 -03:00
										 |  |  | 	return NULL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif // CONFIG_DVB_TDA10023
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // TDA1002x_H
 |