1/* 2 * Support for AltoBeam GB20600 (a.k.a DMB-TH) demodulator 3 * ATBM8830, ATBM8831 4 * 5 * Copyright (C) 2009 David T.L. Wong <davidtlwong@gmail.com> 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 */ 21 22#ifndef __ATBM8830_H__ 23#define __ATBM8830_H__ 24 25#include <linux/dvb/frontend.h> 26#include <linux/i2c.h> 27 28#define ATBM8830_PROD_8830 0 29#define ATBM8830_PROD_8831 1 30 31struct atbm8830_config { 32 33 /* product type */ 34 u8 prod; 35 36 /* the demodulator's i2c address */ 37 u8 demod_address; 38 39 /* parallel or serial transport stream */ 40 u8 serial_ts; 41 42 /* transport stream clock output only when receiving valid stream */ 43 u8 ts_clk_gated; 44 45 /* Decoder sample TS data at rising edge of clock */ 46 u8 ts_sampling_edge; 47 48 /* Oscillator clock frequency */ 49 u32 osc_clk_freq; /* in kHz */ 50 51 /* IF frequency */ 52 u32 if_freq; /* in kHz */ 53 54 /* Swap I/Q for zero IF */ 55 u8 zif_swap_iq; 56 57 /* Tuner AGC settings */ 58 u8 agc_min; 59 u8 agc_max; 60 u8 agc_hold_loop; 61}; 62 63#if defined(CONFIG_DVB_ATBM8830) || \ 64 (defined(CONFIG_DVB_ATBM8830_MODULE) && defined(MODULE)) 65extern struct dvb_frontend *atbm8830_attach(const struct atbm8830_config *config, 66 struct i2c_adapter *i2c); 67#else 68static inline 69struct dvb_frontend *atbm8830_attach(const struct atbm8830_config *config, 70 struct i2c_adapter *i2c) { 71 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 72 return NULL; 73} 74#endif /* CONFIG_DVB_ATBM8830 */ 75 76#endif /* __ATBM8830_H__ */ 77