linux-kernel-test/drivers/media/dvb/frontends/lgdt330x_priv.h
Trent Piepho 19be685a4a V4L/DVB (4789): Lgdt330x: SNR and signal strength reporting
Update the SNR calculations to use the new dvb_math log function, and add
SNR calculations for all supported modulations for both lg dt3302 and dt3303.
The QAM equations don't appear in the dt3302 datasheet, so the ones from the
dt3303 datasheet were used.
SNR returned is the actual value in dB as 8.8 fixed point.
Reporting of real signal strength isn't supported, so rather than return 0,
which confuses some software and users, a re-scaled SNR value is returned.
Code originally by Rusty Scott.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Rusty Scott <rustys@ieee.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-12-10 08:51:09 -02:00

78 lines
2.1 KiB
C

/*
* Support for LGDT3302 and LGDT3303 - VSB/QAM
*
* Copyright (C) 2005 Wilson Michaels <wilsonmichaels@earthlink.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifndef _LGDT330X_PRIV_
#define _LGDT330X_PRIV_
/* i2c control register addresses */
enum I2C_REG {
TOP_CONTROL= 0x00,
IRQ_MASK= 0x01,
IRQ_STATUS= 0x02,
VSB_CARRIER_FREQ0= 0x16,
VSB_CARRIER_FREQ1= 0x17,
VSB_CARRIER_FREQ2= 0x18,
VSB_CARRIER_FREQ3= 0x19,
CARRIER_MSEQAM1= 0x1a,
CARRIER_MSEQAM2= 0x1b,
CARRIER_LOCK= 0x1c,
TIMING_RECOVERY= 0x1d,
AGC_DELAY0= 0x2a,
AGC_DELAY1= 0x2b,
AGC_DELAY2= 0x2c,
AGC_RF_BANDWIDTH0= 0x2d,
AGC_RF_BANDWIDTH1= 0x2e,
AGC_RF_BANDWIDTH2= 0x2f,
AGC_LOOP_BANDWIDTH0= 0x30,
AGC_LOOP_BANDWIDTH1= 0x31,
AGC_FUNC_CTRL1= 0x32,
AGC_FUNC_CTRL2= 0x33,
AGC_FUNC_CTRL3= 0x34,
AGC_RFIF_ACC0= 0x39,
AGC_RFIF_ACC1= 0x3a,
AGC_RFIF_ACC2= 0x3b,
AGC_STATUS= 0x3f,
SYNC_STATUS_VSB= 0x43,
DEMUX_CONTROL= 0x66,
LGDT3302_EQPH_ERR0= 0x47,
LGDT3302_EQ_ERR1= 0x48,
LGDT3302_EQ_ERR2= 0x49,
LGDT3302_PH_ERR1= 0x4a,
LGDT3302_PH_ERR2= 0x4b,
LGDT3302_PACKET_ERR_COUNTER1= 0x6a,
LGDT3302_PACKET_ERR_COUNTER2= 0x6b,
LGDT3303_EQPH_ERR0= 0x6e,
LGDT3303_EQ_ERR1= 0x6f,
LGDT3303_EQ_ERR2= 0x70,
LGDT3303_PH_ERR1= 0x71,
LGDT3303_PH_ERR2= 0x72,
LGDT3303_PACKET_ERR_COUNTER1= 0x8b,
LGDT3303_PACKET_ERR_COUNTER2= 0x8c,
};
#endif /* _LGDT330X_PRIV_ */
/*
* Local variables:
* c-basic-offset: 8
* End:
*/