brintos

brintos / linux-shallow public Read only

0
0
Text · 1.8 KiB · 939bac3 Raw
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