cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

xc2028.h (1752B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * xc2028
      4 *
      5 * Copyright (c) 2007-2008 Mauro Carvalho Chehab <mchehab@kernel.org>
      6 */
      7
      8#ifndef __TUNER_XC2028_H__
      9#define __TUNER_XC2028_H__
     10
     11#include <media/dvb_frontend.h>
     12
     13#define XC2028_DEFAULT_FIRMWARE "xc3028-v27.fw"
     14#define XC3028L_DEFAULT_FIRMWARE "xc3028L-v36.fw"
     15
     16/*      Dmoduler		IF (kHz) */
     17#define	XC3028_FE_DEFAULT	0		/* Don't load SCODE */
     18#define XC3028_FE_LG60		6000
     19#define	XC3028_FE_ATI638	6380
     20#define	XC3028_FE_OREN538	5380
     21#define	XC3028_FE_OREN36	3600
     22#define	XC3028_FE_TOYOTA388	3880
     23#define	XC3028_FE_TOYOTA794	7940
     24#define	XC3028_FE_DIBCOM52	5200
     25#define	XC3028_FE_ZARLINK456	4560
     26#define	XC3028_FE_CHINA		5200
     27
     28enum firmware_type {
     29	XC2028_AUTO = 0,        /* By default, auto-detects */
     30	XC2028_D2633,
     31	XC2028_D2620,
     32};
     33
     34struct xc2028_ctrl {
     35	char			*fname;
     36	int			max_len;
     37	int			msleep;
     38	unsigned int		scode_table;
     39	unsigned int		mts   :1;
     40	unsigned int		input1:1;
     41	unsigned int		vhfbw7:1;
     42	unsigned int		uhfbw8:1;
     43	unsigned int		disable_power_mgmt:1;
     44	unsigned int            read_not_reliable:1;
     45	unsigned int		demod;
     46	enum firmware_type	type:2;
     47};
     48
     49struct xc2028_config {
     50	struct i2c_adapter *i2c_adap;
     51	u8		   i2c_addr;
     52	struct xc2028_ctrl *ctrl;
     53};
     54
     55/* xc2028 commands for callback */
     56#define XC2028_TUNER_RESET	0
     57#define XC2028_RESET_CLK	1
     58#define XC2028_I2C_FLUSH	2
     59
     60#if IS_REACHABLE(CONFIG_MEDIA_TUNER_XC2028)
     61extern struct dvb_frontend *xc2028_attach(struct dvb_frontend *fe,
     62					  struct xc2028_config *cfg);
     63#else
     64static inline struct dvb_frontend *xc2028_attach(struct dvb_frontend *fe,
     65						 struct xc2028_config *cfg)
     66{
     67	printk(KERN_INFO "%s: not probed - driver disabled by Kconfig\n",
     68	       __func__);
     69	return NULL;
     70}
     71#endif
     72
     73#endif /* __TUNER_XC2028_H__ */