1c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
29a0bf528SMauro Carvalho Chehab /*
39a0bf528SMauro Carvalho Chehab  * Realtek RTL2830 DVB-T demodulator driver
49a0bf528SMauro Carvalho Chehab  *
59a0bf528SMauro Carvalho Chehab  * Copyright (C) 2011 Antti Palosaari <crope@iki.fi>
69a0bf528SMauro Carvalho Chehab  */
79a0bf528SMauro Carvalho Chehab 
89a0bf528SMauro Carvalho Chehab #ifndef RTL2830_PRIV_H
99a0bf528SMauro Carvalho Chehab #define RTL2830_PRIV_H
109a0bf528SMauro Carvalho Chehab 
11fada1935SMauro Carvalho Chehab #include <media/dvb_frontend.h>
12*f97fa3dcSAndy Shevchenko #include <linux/int_log.h>
139a0bf528SMauro Carvalho Chehab #include "rtl2830.h"
1428c08799SAntti Palosaari #include <linux/i2c-mux.h>
156dcfe3ccSAntti Palosaari #include <linux/math64.h>
1615d37f38SAntti Palosaari #include <linux/regmap.h>
174a7e445bSAntti Palosaari #include <linux/bitops.h>
189a0bf528SMauro Carvalho Chehab 
19f544f100SAntti Palosaari struct rtl2830_dev {
20b8cb50d2SAntti Palosaari 	struct rtl2830_platform_data *pdata;
2147b4dbffSAntti Palosaari 	struct i2c_client *client;
2215d37f38SAntti Palosaari 	struct regmap *regmap;
23a0119159SPeter Rosin 	struct i2c_mux_core *muxc;
249a0bf528SMauro Carvalho Chehab 	struct dvb_frontend fe;
259a0bf528SMauro Carvalho Chehab 	bool sleeping;
26df70ddadSAntti Palosaari 	unsigned long filters;
270df289a2SMauro Carvalho Chehab 	enum fe_status fe_status;
28f491391cSAntti Palosaari 	u64 post_bit_error_prev; /* for old DVBv3 read_ber() calculation */
295bb11ca5SAntti Palosaari 	u64 post_bit_error;
305bb11ca5SAntti Palosaari 	u64 post_bit_count;
319a0bf528SMauro Carvalho Chehab };
329a0bf528SMauro Carvalho Chehab 
339a0bf528SMauro Carvalho Chehab struct rtl2830_reg_val_mask {
349a0bf528SMauro Carvalho Chehab 	u16 reg;
359a0bf528SMauro Carvalho Chehab 	u8  val;
369a0bf528SMauro Carvalho Chehab 	u8  mask;
379a0bf528SMauro Carvalho Chehab };
389a0bf528SMauro Carvalho Chehab 
399a0bf528SMauro Carvalho Chehab #endif /* RTL2830_PRIV_H */
40