blob: fae78ed785221c782cfa8d95692d419a1d787fbf [file] [log] [blame]
Thomas Gleixnerc942fdd2019-05-27 08:55:06 +02001/* SPDX-License-Identifier: GPL-2.0-or-later */
Antti Palosaaric0adca72011-07-08 23:34:09 -03002/*
3 * Realtek RTL2830 DVB-T demodulator driver
4 *
5 * Copyright (C) 2011 Antti Palosaari <crope@iki.fi>
Antti Palosaaric0adca72011-07-08 23:34:09 -03006 */
7
8#ifndef RTL2830_PRIV_H
9#define RTL2830_PRIV_H
10
Mauro Carvalho Chehabfada1932017-12-28 13:03:51 -050011#include <media/dvb_frontend.h>
12#include <media/dvb_math.h>
Antti Palosaaric0adca72011-07-08 23:34:09 -030013#include "rtl2830.h"
Antti Palosaari28c08792014-12-07 04:07:29 -030014#include <linux/i2c-mux.h>
Antti Palosaari6dcfe3c2014-12-09 10:48:10 -030015#include <linux/math64.h>
Antti Palosaari15d37f32014-12-12 01:03:51 -030016#include <linux/regmap.h>
Antti Palosaari4a7e4452016-06-29 20:40:56 -030017#include <linux/bitops.h>
Antti Palosaaric0adca72011-07-08 23:34:09 -030018
Antti Palosaarif544f102014-12-08 22:31:28 -030019struct rtl2830_dev {
Antti Palosaarib8cb50d22014-12-09 00:24:13 -030020 struct rtl2830_platform_data *pdata;
Antti Palosaari47b4dbf2014-12-09 06:14:36 -030021 struct i2c_client *client;
Antti Palosaari15d37f32014-12-12 01:03:51 -030022 struct regmap *regmap;
Peter Rosina0119152016-04-20 08:41:13 +020023 struct i2c_mux_core *muxc;
Antti Palosaaric0adca72011-07-08 23:34:09 -030024 struct dvb_frontend fe;
Antti Palosaaria8567cf2012-01-21 22:40:58 -030025 bool sleeping;
Antti Palosaaridf70dda2014-12-09 16:08:44 -030026 unsigned long filters;
Mauro Carvalho Chehab0df289a2015-06-07 14:53:52 -030027 enum fe_status fe_status;
Antti Palosaarif4913912014-12-09 10:27:32 -030028 u64 post_bit_error_prev; /* for old DVBv3 read_ber() calculation */
Antti Palosaari5bb11ca2014-12-09 09:45:16 -030029 u64 post_bit_error;
30 u64 post_bit_count;
Antti Palosaaric0adca72011-07-08 23:34:09 -030031};
32
33struct rtl2830_reg_val_mask {
34 u16 reg;
35 u8 val;
36 u8 mask;
37};
38
39#endif /* RTL2830_PRIV_H */