atbm8830.h (1366B)
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* 3 * Support for AltoBeam GB20600 (a.k.a DMB-TH) demodulator 4 * ATBM8830, ATBM8831 5 * 6 * Copyright (C) 2009 David T.L. Wong <davidtlwong@gmail.com> 7 */ 8 9#ifndef __ATBM8830_H__ 10#define __ATBM8830_H__ 11 12#include <linux/dvb/frontend.h> 13#include <linux/i2c.h> 14 15#define ATBM8830_PROD_8830 0 16#define ATBM8830_PROD_8831 1 17 18struct atbm8830_config { 19 20 /* product type */ 21 u8 prod; 22 23 /* the demodulator's i2c address */ 24 u8 demod_address; 25 26 /* parallel or serial transport stream */ 27 u8 serial_ts; 28 29 /* transport stream clock output only when receiving valid stream */ 30 u8 ts_clk_gated; 31 32 /* Decoder sample TS data at rising edge of clock */ 33 u8 ts_sampling_edge; 34 35 /* Oscillator clock frequency */ 36 u32 osc_clk_freq; /* in kHz */ 37 38 /* IF frequency */ 39 u32 if_freq; /* in kHz */ 40 41 /* Swap I/Q for zero IF */ 42 u8 zif_swap_iq; 43 44 /* Tuner AGC settings */ 45 u8 agc_min; 46 u8 agc_max; 47 u8 agc_hold_loop; 48}; 49 50#if IS_REACHABLE(CONFIG_DVB_ATBM8830) 51extern struct dvb_frontend *atbm8830_attach(const struct atbm8830_config *config, 52 struct i2c_adapter *i2c); 53#else 54static inline 55struct dvb_frontend *atbm8830_attach(const struct atbm8830_config *config, 56 struct i2c_adapter *i2c) { 57 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 58 return NULL; 59} 60#endif /* CONFIG_DVB_ATBM8830 */ 61 62#endif /* __ATBM8830_H__ */