73 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 Samsung S5H1411 VSB/QAM demodulator driver4 5 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>6 7 8*/9 10#ifndef __S5H1411_H__11#define __S5H1411_H__12 13#include <linux/dvb/frontend.h>14 15#define S5H1411_I2C_TOP_ADDR (0x32 >> 1)16#define S5H1411_I2C_QAM_ADDR (0x34 >> 1)17 18struct s5h1411_config {19 20 /* serial/parallel output */21#define S5H1411_PARALLEL_OUTPUT 022#define S5H1411_SERIAL_OUTPUT 123 u8 output_mode;24 25 /* GPIO Setting */26#define S5H1411_GPIO_OFF 027#define S5H1411_GPIO_ON 128 u8 gpio;29 30 /* MPEG signal timing */31#define S5H1411_MPEGTIMING_CONTINUOUS_INVERTING_CLOCK 032#define S5H1411_MPEGTIMING_CONTINUOUS_NONINVERTING_CLOCK 133#define S5H1411_MPEGTIMING_NONCONTINUOUS_INVERTING_CLOCK 234#define S5H1411_MPEGTIMING_NONCONTINUOUS_NONINVERTING_CLOCK 335 u16 mpeg_timing;36 37 /* IF Freq for QAM and VSB in KHz */38#define S5H1411_IF_3250 325039#define S5H1411_IF_3500 350040#define S5H1411_IF_4000 400041#define S5H1411_IF_5380 538042#define S5H1411_IF_44000 4400043#define S5H1411_VSB_IF_DEFAULT S5H1411_IF_4400044#define S5H1411_QAM_IF_DEFAULT S5H1411_IF_4400045 u16 qam_if;46 u16 vsb_if;47 48 /* Spectral Inversion */49#define S5H1411_INVERSION_OFF 050#define S5H1411_INVERSION_ON 151 u8 inversion;52 53 /* Return lock status based on tuner lock, or demod lock */54#define S5H1411_TUNERLOCKING 055#define S5H1411_DEMODLOCKING 156 u8 status_mode;57};58 59#if IS_REACHABLE(CONFIG_DVB_S5H1411)60extern struct dvb_frontend *s5h1411_attach(const struct s5h1411_config *config,61 struct i2c_adapter *i2c);62#else63static inline struct dvb_frontend *s5h1411_attach(64 const struct s5h1411_config *config,65 struct i2c_adapter *i2c)66{67 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);68 return NULL;69}70#endif /* CONFIG_DVB_S5H1411 */71 72#endif /* __S5H1411_H__ */73