1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 STV6110(A) Silicon tuner driver 4 5 Copyright (C) Manu Abraham <abraham.manu@gmail.com> 6 7 Copyright (C) ST Microelectronics 8 9 */ 10 11 #ifndef __STV6110x_PRIV_H 12 #define __STV6110x_PRIV_H 13 14 #define FE_ERROR 0 15 #define FE_NOTICE 1 16 #define FE_INFO 2 17 #define FE_DEBUG 3 18 #define FE_DEBUGREG 4 19 20 #define dprintk(__y, __z, format, arg...) do { \ 21 if (__z) { \ 22 if ((verbose > FE_ERROR) && (verbose > __y)) \ 23 printk(KERN_ERR "%s: " format "\n", __func__, ##arg); \ 24 else if ((verbose > FE_NOTICE) && (verbose > __y)) \ 25 printk(KERN_NOTICE "%s: " format "\n", __func__, ##arg); \ 26 else if ((verbose > FE_INFO) && (verbose > __y)) \ 27 printk(KERN_INFO "%s: " format "\n", __func__, ##arg); \ 28 else if ((verbose > FE_DEBUG) && (verbose > __y)) \ 29 printk(KERN_DEBUG "%s: " format "\n", __func__, ##arg); \ 30 } else { \ 31 if (verbose > __y) \ 32 printk(format, ##arg); \ 33 } \ 34 } while (0) 35 36 37 #define STV6110x_SETFIELD(mask, bitf, val) \ 38 (mask = (mask & (~(((1 << STV6110x_WIDTH_##bitf) - 1) << \ 39 STV6110x_OFFST_##bitf))) | \ 40 (val << STV6110x_OFFST_##bitf)) 41 42 #define STV6110x_GETFIELD(bitf, val) \ 43 ((val >> STV6110x_OFFST_##bitf) & \ 44 ((1 << STV6110x_WIDTH_##bitf) - 1)) 45 46 #define MAKEWORD16(a, b) (((a) << 8) | (b)) 47 48 #define LSB(x) ((x & 0xff)) 49 #define MSB(y) ((y >> 8) & 0xff) 50 51 #define TRIALS 10 52 #define R_DIV(__div) (1 << (__div + 1)) 53 #define REFCLOCK_kHz (stv6110x->config->refclk / 1000) 54 #define REFCLOCK_MHz (stv6110x->config->refclk / 1000000) 55 56 struct stv6110x_state { 57 struct dvb_frontend *frontend; 58 struct i2c_adapter *i2c; 59 const struct stv6110x_config *config; 60 u8 regs[8]; 61 62 struct stv6110x_devctl *devctl; 63 }; 64 65 #endif /* __STV6110x_PRIV_H */ 66