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

au8522.h (1621B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3    Auvitek AU8522 QAM/8VSB demodulator driver
      4
      5    Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
      6
      7
      8*/
      9
     10#ifndef __AU8522_H__
     11#define __AU8522_H__
     12
     13#include <linux/dvb/frontend.h>
     14
     15enum au8522_if_freq {
     16	AU8522_IF_6MHZ = 0,
     17	AU8522_IF_4MHZ,
     18	AU8522_IF_3_25MHZ,
     19};
     20
     21struct au8522_led_config {
     22	u16 vsb8_strong;
     23	u16 qam64_strong;
     24	u16 qam256_strong;
     25
     26	u16 gpio_output;
     27	/* unset hi bits, set low bits */
     28	u16 gpio_output_enable;
     29	u16 gpio_output_disable;
     30
     31	u16 gpio_leds;
     32	u8 *led_states;
     33	unsigned int num_led_states;
     34};
     35
     36struct au8522_config {
     37	/* the demodulator's i2c address */
     38	u8 demod_address;
     39
     40	/* Return lock status based on tuner lock, or demod lock */
     41#define AU8522_TUNERLOCKING 0
     42#define AU8522_DEMODLOCKING 1
     43	u8 status_mode;
     44
     45	struct au8522_led_config *led_cfg;
     46
     47	enum au8522_if_freq vsb_if;
     48	enum au8522_if_freq qam_if;
     49};
     50
     51#if IS_REACHABLE(CONFIG_DVB_AU8522_DTV)
     52extern struct dvb_frontend *au8522_attach(const struct au8522_config *config,
     53					  struct i2c_adapter *i2c);
     54#else
     55static inline
     56struct dvb_frontend *au8522_attach(const struct au8522_config *config,
     57				   struct i2c_adapter *i2c)
     58{
     59	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
     60	return NULL;
     61}
     62#endif /* CONFIG_DVB_AU8522 */
     63
     64/* Other modes may need to be added later */
     65enum au8522_video_input {
     66	AU8522_COMPOSITE_CH1 = 1,
     67	AU8522_COMPOSITE_CH2,
     68	AU8522_COMPOSITE_CH3,
     69	AU8522_COMPOSITE_CH4,
     70	AU8522_COMPOSITE_CH4_SIF,
     71	AU8522_SVIDEO_CH13,
     72	AU8522_SVIDEO_CH24,
     73};
     74
     75enum au8522_audio_input {
     76	AU8522_AUDIO_NONE,
     77	AU8522_AUDIO_SIF,
     78};
     79#endif /* __AU8522_H__ */