19a0bf528SMauro Carvalho Chehab /*
29a0bf528SMauro Carvalho Chehab     Auvitek AU8522 QAM/8VSB demodulator driver
39a0bf528SMauro Carvalho Chehab 
49a0bf528SMauro Carvalho Chehab     Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
59a0bf528SMauro Carvalho Chehab     Copyright (C) 2008 Devin Heitmueller <dheitmueller@linuxtv.org>
69a0bf528SMauro Carvalho Chehab     Copyright (C) 2005-2008 Auvitek International, Ltd.
79a0bf528SMauro Carvalho Chehab 
89a0bf528SMauro Carvalho Chehab     This program is free software; you can redistribute it and/or modify
99a0bf528SMauro Carvalho Chehab     it under the terms of the GNU General Public License as published by
109a0bf528SMauro Carvalho Chehab     the Free Software Foundation; either version 2 of the License, or
119a0bf528SMauro Carvalho Chehab     (at your option) any later version.
129a0bf528SMauro Carvalho Chehab 
139a0bf528SMauro Carvalho Chehab     This program is distributed in the hope that it will be useful,
149a0bf528SMauro Carvalho Chehab     but WITHOUT ANY WARRANTY; without even the implied warranty of
159a0bf528SMauro Carvalho Chehab     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
169a0bf528SMauro Carvalho Chehab     GNU General Public License for more details.
179a0bf528SMauro Carvalho Chehab 
189a0bf528SMauro Carvalho Chehab     You should have received a copy of the GNU General Public License
199a0bf528SMauro Carvalho Chehab     along with this program; if not, write to the Free Software
209a0bf528SMauro Carvalho Chehab     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
219a0bf528SMauro Carvalho Chehab 
229a0bf528SMauro Carvalho Chehab */
239a0bf528SMauro Carvalho Chehab 
249a0bf528SMauro Carvalho Chehab #include <linux/kernel.h>
259a0bf528SMauro Carvalho Chehab #include <linux/init.h>
269a0bf528SMauro Carvalho Chehab #include <linux/module.h>
279a0bf528SMauro Carvalho Chehab #include <linux/string.h>
289a0bf528SMauro Carvalho Chehab #include <linux/slab.h>
299a0bf528SMauro Carvalho Chehab #include <linux/delay.h>
309a0bf528SMauro Carvalho Chehab #include <linux/videodev2.h>
319a0bf528SMauro Carvalho Chehab #include <media/v4l2-device.h>
325a4bdb4bSHans Verkuil #include <media/v4l2-ctrls.h>
339a0bf528SMauro Carvalho Chehab #include <linux/i2c.h>
349a0bf528SMauro Carvalho Chehab #include "dvb_frontend.h"
359a0bf528SMauro Carvalho Chehab #include "au8522.h"
369a0bf528SMauro Carvalho Chehab #include "tuner-i2c.h"
379a0bf528SMauro Carvalho Chehab 
389a0bf528SMauro Carvalho Chehab #define AU8522_ANALOG_MODE 0
399a0bf528SMauro Carvalho Chehab #define AU8522_DIGITAL_MODE 1
4038fe3510SMauro Carvalho Chehab #define AU8522_SUSPEND_MODE 2
419a0bf528SMauro Carvalho Chehab 
429a0bf528SMauro Carvalho Chehab struct au8522_state {
439a0bf528SMauro Carvalho Chehab 	struct i2c_client *c;
449a0bf528SMauro Carvalho Chehab 	struct i2c_adapter *i2c;
459a0bf528SMauro Carvalho Chehab 
469a0bf528SMauro Carvalho Chehab 	u8 operational_mode;
479a0bf528SMauro Carvalho Chehab 
489a0bf528SMauro Carvalho Chehab 	/* Used for sharing of the state between analog and digital mode */
499a0bf528SMauro Carvalho Chehab 	struct tuner_i2c_props i2c_props;
509a0bf528SMauro Carvalho Chehab 	struct list_head hybrid_tuner_instance_list;
519a0bf528SMauro Carvalho Chehab 
529a0bf528SMauro Carvalho Chehab 	/* configuration settings */
539a0bf528SMauro Carvalho Chehab 	const struct au8522_config *config;
549a0bf528SMauro Carvalho Chehab 
559a0bf528SMauro Carvalho Chehab 	struct dvb_frontend frontend;
569a0bf528SMauro Carvalho Chehab 
579a0bf528SMauro Carvalho Chehab 	u32 current_frequency;
580df289a2SMauro Carvalho Chehab 	enum fe_modulation current_modulation;
599a0bf528SMauro Carvalho Chehab 
609a0bf528SMauro Carvalho Chehab 	u32 fe_status;
619a0bf528SMauro Carvalho Chehab 	unsigned int led_state;
629a0bf528SMauro Carvalho Chehab 
639a0bf528SMauro Carvalho Chehab 	/* Analog settings */
649a0bf528SMauro Carvalho Chehab 	struct v4l2_subdev sd;
659a0bf528SMauro Carvalho Chehab 	v4l2_std_id std;
669a0bf528SMauro Carvalho Chehab 	int vid_input;
679a0bf528SMauro Carvalho Chehab 	int aud_input;
689a0bf528SMauro Carvalho Chehab 	u32 id;
699a0bf528SMauro Carvalho Chehab 	u32 rev;
705a4bdb4bSHans Verkuil 	struct v4l2_ctrl_handler hdl;
719a0bf528SMauro Carvalho Chehab };
729a0bf528SMauro Carvalho Chehab 
739a0bf528SMauro Carvalho Chehab /* These are routines shared by both the VSB/QAM demodulator and the analog
749a0bf528SMauro Carvalho Chehab    decoder */
759a0bf528SMauro Carvalho Chehab int au8522_writereg(struct au8522_state *state, u16 reg, u8 data);
769a0bf528SMauro Carvalho Chehab u8 au8522_readreg(struct au8522_state *state, u16 reg);
779a0bf528SMauro Carvalho Chehab int au8522_init(struct dvb_frontend *fe);
789a0bf528SMauro Carvalho Chehab int au8522_sleep(struct dvb_frontend *fe);
799a0bf528SMauro Carvalho Chehab 
809a0bf528SMauro Carvalho Chehab int au8522_get_state(struct au8522_state **state, struct i2c_adapter *i2c,
819a0bf528SMauro Carvalho Chehab 		     u8 client_address);
829a0bf528SMauro Carvalho Chehab void au8522_release_state(struct au8522_state *state);
839a0bf528SMauro Carvalho Chehab int au8522_i2c_gate_ctrl(struct dvb_frontend *fe, int enable);
849a0bf528SMauro Carvalho Chehab int au8522_analog_i2c_gate_ctrl(struct dvb_frontend *fe, int enable);
859a0bf528SMauro Carvalho Chehab int au8522_led_ctrl(struct au8522_state *state, int led);
869a0bf528SMauro Carvalho Chehab 
879a0bf528SMauro Carvalho Chehab /* REGISTERS */
889a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H			0x081
899a0bf528SMauro Carvalho Chehab #define AU8522_PGA_CONTROL_REG082H			0x082
909a0bf528SMauro Carvalho Chehab #define AU8522_CLAMPING_CONTROL_REG083H			0x083
919a0bf528SMauro Carvalho Chehab 
929a0bf528SMauro Carvalho Chehab #define AU8522_MODULE_CLOCK_CONTROL_REG0A3H		0x0A3
939a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H		0x0A4
949a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H		0x0A5
959a0bf528SMauro Carvalho Chehab #define AU8522_AGC_CONTROL_RANGE_REG0A6H		0x0A6
969a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_GAIN_CONTROL_REG0A7H		0x0A7
979a0bf528SMauro Carvalho Chehab #define AU8522_TUNER_AGC_RF_STOP_REG0A8H  		0x0A8
989a0bf528SMauro Carvalho Chehab #define AU8522_TUNER_AGC_RF_START_REG0A9H		0x0A9
999a0bf528SMauro Carvalho Chehab #define AU8522_TUNER_RF_AGC_DEFAULT_REG0AAH		0x0AA
1009a0bf528SMauro Carvalho Chehab #define AU8522_TUNER_AGC_IF_STOP_REG0ABH		0x0AB
1019a0bf528SMauro Carvalho Chehab #define AU8522_TUNER_AGC_IF_START_REG0ACH		0x0AC
1029a0bf528SMauro Carvalho Chehab #define AU8522_TUNER_AGC_IF_DEFAULT_REG0ADH		0x0AD
1039a0bf528SMauro Carvalho Chehab #define AU8522_TUNER_AGC_STEP_REG0AEH			0x0AE
1049a0bf528SMauro Carvalho Chehab #define AU8522_TUNER_GAIN_STEP_REG0AFH			0x0AF
1059a0bf528SMauro Carvalho Chehab 
1069a0bf528SMauro Carvalho Chehab /* Receiver registers */
1079a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGTHRD1_REG0B0H			0x0B0
1089a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGAGC1H_REG0B1H 			0x0B1
1099a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGSHIFT1_REG0B2H 			0x0B2
1109a0bf528SMauro Carvalho Chehab #define AU8522_TOREGAGC1_REG0B3H 			0x0B3
1119a0bf528SMauro Carvalho Chehab #define AU8522_TOREGASHIFT1_REG0B4H 			0x0B4
1129a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGBBH_REG0B5H			0x0B5
1139a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGBBM_REG0B6H 			0x0B6
1149a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGBBL_REG0B7H     			0x0B7
1159a0bf528SMauro Carvalho Chehab /* 0xB8 TO 0xD7 are the filter coefficients */
1169a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGTHRD2_REG0D8H 			0x0D8
1179a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGAGC2H_REG0D9H 			0x0D9
1189a0bf528SMauro Carvalho Chehab #define AU8522_TOREGAGC2_REG0DAH 			0x0DA
1199a0bf528SMauro Carvalho Chehab #define AU8522_TOREGSHIFT2_REG0DBH 			0x0DB
1209a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGPILOTH_REG0DCH			0x0DC
1219a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGPILOTM_REG0DDH			0x0DD
1229a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGPILOTL_REG0DEH			0x0DE
1239a0bf528SMauro Carvalho Chehab #define AU8522_TOREGFREQ_REG0DFH			0x0DF
1249a0bf528SMauro Carvalho Chehab 
1259a0bf528SMauro Carvalho Chehab #define AU8522_RX_PGA_RFOUT_REG0EBH			0x0EB
1269a0bf528SMauro Carvalho Chehab #define AU8522_RX_PGA_IFOUT_REG0ECH			0x0EC
1279a0bf528SMauro Carvalho Chehab #define AU8522_RX_PGA_PGAOUT_REG0EDH			0x0ED
1289a0bf528SMauro Carvalho Chehab 
1299a0bf528SMauro Carvalho Chehab #define AU8522_CHIP_MODE_REG0FEH			0x0FE
1309a0bf528SMauro Carvalho Chehab 
1319a0bf528SMauro Carvalho Chehab /* I2C bus control registers */
1329a0bf528SMauro Carvalho Chehab #define AU8522_I2C_CONTROL_REG0_REG090H    		0x090
1339a0bf528SMauro Carvalho Chehab #define AU8522_I2C_CONTROL_REG1_REG091H    		0x091
1349a0bf528SMauro Carvalho Chehab #define AU8522_I2C_STATUS_REG092H          		0x092
1359a0bf528SMauro Carvalho Chehab #define AU8522_I2C_WR_DATA0_REG093H			0x093
1369a0bf528SMauro Carvalho Chehab #define AU8522_I2C_WR_DATA1_REG094H			0x094
1379a0bf528SMauro Carvalho Chehab #define AU8522_I2C_WR_DATA2_REG095H			0x095
1389a0bf528SMauro Carvalho Chehab #define AU8522_I2C_WR_DATA3_REG096H			0x096
1399a0bf528SMauro Carvalho Chehab #define AU8522_I2C_WR_DATA4_REG097H			0x097
1409a0bf528SMauro Carvalho Chehab #define AU8522_I2C_WR_DATA5_REG098H			0x098
1419a0bf528SMauro Carvalho Chehab #define AU8522_I2C_WR_DATA6_REG099H			0x099
1429a0bf528SMauro Carvalho Chehab #define AU8522_I2C_WR_DATA7_REG09AH			0x09A
1439a0bf528SMauro Carvalho Chehab #define AU8522_I2C_RD_DATA0_REG09BH			0x09B
1449a0bf528SMauro Carvalho Chehab #define AU8522_I2C_RD_DATA1_REG09CH			0x09C
1459a0bf528SMauro Carvalho Chehab #define AU8522_I2C_RD_DATA2_REG09DH			0x09D
1469a0bf528SMauro Carvalho Chehab #define AU8522_I2C_RD_DATA3_REG09EH			0x09E
1479a0bf528SMauro Carvalho Chehab #define AU8522_I2C_RD_DATA4_REG09FH			0x09F
1489a0bf528SMauro Carvalho Chehab #define AU8522_I2C_RD_DATA5_REG0A0H			0x0A0
1499a0bf528SMauro Carvalho Chehab #define AU8522_I2C_RD_DATA6_REG0A1H			0x0A1
1509a0bf528SMauro Carvalho Chehab #define AU8522_I2C_RD_DATA7_REG0A2H			0x0A2
1519a0bf528SMauro Carvalho Chehab 
1529a0bf528SMauro Carvalho Chehab #define AU8522_ENA_USB_REG101H				0x101
1539a0bf528SMauro Carvalho Chehab 
1549a0bf528SMauro Carvalho Chehab #define AU8522_I2S_CTRL_0_REG110H  			0x110
1559a0bf528SMauro Carvalho Chehab #define AU8522_I2S_CTRL_1_REG111H 			0x111
1569a0bf528SMauro Carvalho Chehab #define AU8522_I2S_CTRL_2_REG112H 			0x112
1579a0bf528SMauro Carvalho Chehab 
1589a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGFFECONTROL_REG121H    		0x121
1599a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGDFECONTROL_REG122H    		0x122
1609a0bf528SMauro Carvalho Chehab 
1619a0bf528SMauro Carvalho Chehab #define AU8522_CARRFREQOFFSET0_REG201H 			0x201
1629a0bf528SMauro Carvalho Chehab #define AU8522_CARRFREQOFFSET1_REG202H			0x202
1639a0bf528SMauro Carvalho Chehab 
1649a0bf528SMauro Carvalho Chehab #define AU8522_DECIMATION_GAIN_REG21AH			0x21A
1659a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGIFSLP_REG21BH 			0x21B
1669a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGTHRDL2_REG21CH 			0x21C
1679a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGSTEP3DB_REG21DH 			0x21D
1689a0bf528SMauro Carvalho Chehab #define AU8522_DAGC_GAIN_ADJUSTMENT_REG21EH		0x21E
1699a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGPLLMODE_REG21FH 			0x21F
1709a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGCSTHRD_REG220H 			0x220
1719a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGCRLOCKDMAX_REG221H 		0x221
1729a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGCRPERIODMASK_REG222H 		0x222
1739a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGCRLOCK0THH_REG223H 		0x223
1749a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGCRLOCK1THH_REG224H 		0x224
1759a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGCRLOCK0THL_REG225H 		0x225
1769a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGCRLOCK1THL_REG226H 		0x226
1779a0bf528SMauro Carvalho Chehab #define AU_FRMREGPLLACQPHASESCL_REG227H			0x227
1789a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGFREQFBCTRL_REG228H 		0x228
1799a0bf528SMauro Carvalho Chehab 
1809a0bf528SMauro Carvalho Chehab /* Analog TV Decoder */
1819a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_STATUS_REG000H			0x000
1829a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_INT_STATUS_REG001H			0x001
1839a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_MACROVISION_STATUS_REG002H 	0x002
1849a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_SHARPNESSREG009H			0x009
1859a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_BRIGHTNESS_REG00AH			0x00A
1869a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_CONTRAST_REG00BH			0x00B
1879a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_SATURATION_CB_REG00CH		0x00C
1889a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_SATURATION_CR_REG00DH		0x00D
1899a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_HUE_H_REG00EH			0x00E
1909a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_HUE_L_REG00FH                   	0x00F
1919a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_INT_MASK_REG010H			0x010
1929a0bf528SMauro Carvalho Chehab #define AU8522_VIDEO_MODE_REG011H			0x011
1939a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_PGA_REG012H			0x012
1949a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_MODE_REG015H			0x015
1959a0bf528SMauro Carvalho Chehab #define AU8522_REG016H                            	0x016
1969a0bf528SMauro Carvalho Chehab #define AU8522_TVDED_DBG_MODE_REG060H			0x060
1979a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H		0x061
1989a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL2_REG062H		0x062
1999a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VCR_DET_LLIM_REG063H		0x063
2009a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VCR_DET_HLIM_REG064H		0x064
2019a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_VDIF_THR1_REG065H		0x065
2029a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_VDIF_THR2_REG066H		0x066
2039a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_VDIF_THR3_REG067H		0x067
2049a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_NOTCH_THR_REG068H		0x068
2059a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_HDIF_THR1_REG069H   		0x069
2069a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_HDIF_THR2_REG06AH		0x06A
2079a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_HDIF_THR3_REG06BH   		0x06B
2089a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DCDIF_THR1_REG06CH  		0x06C
2099a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DCDIF_THR2_REG06DH 		0x06D
2109a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DCDIF_THR3_REG06EH       	0x06E
2119a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_UV_SEP_THR_REG06FH  		0x06F
2129a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DC_THR1_NTSC_REG070H		0x070
2139a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DC_THR2_NTSC_REG073H		0x073
2149a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_DCAGC_CTRL_REG077H			0x077
2159a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_PIC_START_ADJ_REG078H		0x078
2169a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_AGC_HIGH_LIMIT_REG079H		0x079
2179a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_MACROVISION_SYNC_THR_REG07AH	0x07A
2189a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_INTRP_CTRL_REG07BH			0x07B
2199a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_PLL_STATUS_REG07EH			0x07E
2209a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FSC_FREQ_REG07FH			0x07F
2219a0bf528SMauro Carvalho Chehab 
2229a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_AGC_LOW_LIMIT_REG0E4H		0x0E4
2239a0bf528SMauro Carvalho Chehab #define AU8522_TOREGAAGC_REG0E5H			0x0E5
2249a0bf528SMauro Carvalho Chehab 
2259a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_CHROMA_AGC_REG401H		0x401
2269a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_CHROMA_SFT_REG402H		0x402
2279a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R410     		0x410
2289a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R411     		0x411
2299a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R412     		0x412
2309a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R413     		0x413
2319a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R414     		0x414
2329a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R415     		0x415
2339a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R416     		0x416
2349a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R417     		0x417
2359a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R418     		0x418
2369a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R419     		0x419
2379a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R41A     		0x41A
2389a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R41B     		0x41B
2399a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R41C     		0x41C
2409a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R41D     		0x41D
2419a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R41E     		0x41E
2429a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R41F     		0x41F
2439a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R420     		0x420
2449a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R421     		0x421
2459a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R422     		0x422
2469a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R423     		0x423
2479a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R424     		0x424
2489a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R425     		0x425
2499a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R426     		0x426
2509a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R427     		0x427
2519a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R428     		0x428
2529a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R429     		0x429
2539a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R42A     		0x42A
2549a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R42B     		0x42B
2559a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R42C     		0x42C
2569a0bf528SMauro Carvalho Chehab #define AU8522_FILTER_COEF_R42D     		0x42D
2579a0bf528SMauro Carvalho Chehab 
2589a0bf528SMauro Carvalho Chehab /* VBI Control Registers */
2599a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_RX_FIFO_CONTAIN_REG004H  	0x004
2609a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_TX_FIFO_CONTAIN_REG005H  	0x005
2619a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_RX_FIFO_READ_REG006H      	0x006
2629a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_FIFO_STATUS_REG007H       	0x007
2639a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_CTRL_H_REG017H			0x017
2649a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_CTRL_L_REG018H			0x018
2659a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_TOTAL_BITS_REG019H	0x019
2669a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_TUNIT_H_REG01AH		0x01A
2679a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_TUNIT_L_REG01BH		0x01B
2689a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_THRESH1_REG01CH		0x01C
2699a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_FRAME_PAT2_REG01EH	0x01E
2709a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_FRAME_PAT1_REG01FH   	0x01F
2719a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_FRAME_PAT0_REG020H   	0x020
2729a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_FRAME_MASK2_REG021H 	0x021
2739a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_FRAME_MASK1_REG022H  	0x022
2749a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_USER_FRAME_MASK0_REG023H	0x023
2759a0bf528SMauro Carvalho Chehab 
2769a0bf528SMauro Carvalho Chehab #define AU8522_REG071H					0x071
2779a0bf528SMauro Carvalho Chehab #define AU8522_REG072H					0x072
2789a0bf528SMauro Carvalho Chehab #define AU8522_REG074H					0x074
2799a0bf528SMauro Carvalho Chehab #define AU8522_REG075H					0x075
2809a0bf528SMauro Carvalho Chehab 
2819a0bf528SMauro Carvalho Chehab /* Digital Demodulator Registers */
2829a0bf528SMauro Carvalho Chehab #define AU8522_FRAME_COUNT0_REG084H			0x084
2839a0bf528SMauro Carvalho Chehab #define AU8522_RS_STATUS_G0_REG085H			0x085
2849a0bf528SMauro Carvalho Chehab #define AU8522_RS_STATUS_B0_REG086H			0x086
2859a0bf528SMauro Carvalho Chehab #define AU8522_RS_STATUS_E_REG087H			0x087
2869a0bf528SMauro Carvalho Chehab #define AU8522_DEMODULATION_STATUS_REG088H		0x088
2879a0bf528SMauro Carvalho Chehab #define AU8522_TOREGTRESTATUS_REG0E6H			0x0E6
2889a0bf528SMauro Carvalho Chehab #define AU8522_TSPORT_CONTROL_REG10BH			0x10B
2899a0bf528SMauro Carvalho Chehab #define AU8522_TSTHES_REG10CH				0x10C
2909a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGDFEKEEP_REG301H			0x301
2919a0bf528SMauro Carvalho Chehab #define AU8522_DFE_AVERAGE_REG302H			0x302
2929a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGEQLERRWIN_REG303H			0x303
2939a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGFFEKEEP_REG304H			0x304
2949a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGDFECONTROL1_REG305H		0x305
2959a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGEQLERRLOW_REG306H			0x306
2969a0bf528SMauro Carvalho Chehab 
2979a0bf528SMauro Carvalho Chehab #define AU8522_REG42EH				0x42E
2989a0bf528SMauro Carvalho Chehab #define AU8522_REG42FH				0x42F
2999a0bf528SMauro Carvalho Chehab #define AU8522_REG430H				0x430
3009a0bf528SMauro Carvalho Chehab #define AU8522_REG431H				0x431
3019a0bf528SMauro Carvalho Chehab #define AU8522_REG432H				0x432
3029a0bf528SMauro Carvalho Chehab #define AU8522_REG433H				0x433
3039a0bf528SMauro Carvalho Chehab #define AU8522_REG434H				0x434
3049a0bf528SMauro Carvalho Chehab #define AU8522_REG435H				0x435
3059a0bf528SMauro Carvalho Chehab #define AU8522_REG436H				0x436
3069a0bf528SMauro Carvalho Chehab 
3079a0bf528SMauro Carvalho Chehab /* GPIO Registers */
3089a0bf528SMauro Carvalho Chehab #define AU8522_GPIO_CONTROL_REG0E0H			0x0E0
3099a0bf528SMauro Carvalho Chehab #define AU8522_GPIO_STATUS_REG0E1H			0x0E1
3109a0bf528SMauro Carvalho Chehab #define AU8522_GPIO_DATA_REG0E2H			0x0E2
3119a0bf528SMauro Carvalho Chehab 
3129a0bf528SMauro Carvalho Chehab /* Audio Control Registers */
3139a0bf528SMauro Carvalho Chehab #define AU8522_AUDIOAGC_REG0EEH 			0x0EE
3149a0bf528SMauro Carvalho Chehab #define AU8522_AUDIO_STATUS_REG0F0H 			0x0F0
3159a0bf528SMauro Carvalho Chehab #define AU8522_AUDIO_MODE_REG0F1H 			0x0F1
3169a0bf528SMauro Carvalho Chehab #define AU8522_AUDIO_VOLUME_L_REG0F2H 			0x0F2
3179a0bf528SMauro Carvalho Chehab #define AU8522_AUDIO_VOLUME_R_REG0F3H 			0x0F3
3189a0bf528SMauro Carvalho Chehab #define AU8522_AUDIO_VOLUME_REG0F4H 			0x0F4
3199a0bf528SMauro Carvalho Chehab #define AU8522_FRMREGAUPHASE_REG0F7H 			0x0F7
3209a0bf528SMauro Carvalho Chehab #define AU8522_REG0F9H					0x0F9
3219a0bf528SMauro Carvalho Chehab 
3229a0bf528SMauro Carvalho Chehab #define AU8522_AUDIOAGC2_REG605H 			0x605
3239a0bf528SMauro Carvalho Chehab #define AU8522_AUDIOFREQ_REG606H 			0x606
3249a0bf528SMauro Carvalho Chehab 
3259a0bf528SMauro Carvalho Chehab 
3269a0bf528SMauro Carvalho Chehab /**************************************************************/
3279a0bf528SMauro Carvalho Chehab 
3289a0bf528SMauro Carvalho Chehab /* Format control 1 */
3299a0bf528SMauro Carvalho Chehab 
3309a0bf528SMauro Carvalho Chehab /* VCR Mode 7-6 */
3319a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_VCR_MODE_YES		0x80
3329a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_VCR_MODE_NO		0x40
3339a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_VCR_MODE_AUTO		0x00
3349a0bf528SMauro Carvalho Chehab /* Field len 5-4 */
3359a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_FIELD_LEN_625		0x20
3369a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_FIELD_LEN_525		0x10
3379a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_FIELD_LEN_AUTO	0x00
3389a0bf528SMauro Carvalho Chehab /* Line len (us) 3-2 */
3399a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_LINE_LEN_64_000	0x0b
3409a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_LINE_LEN_63_492	0x08
3419a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_LINE_LEN_63_556	0x04
3429a0bf528SMauro Carvalho Chehab /* Subcarrier freq 1-0 */
3439a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_SUBCARRIER_NTSC_AUTO	0x03
3449a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_SUBCARRIER_NTSC_443	0x02
3459a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_SUBCARRIER_NTSC_MN	0x01
3469a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL1_REG061H_SUBCARRIER_NTSC_50	0x00
3479a0bf528SMauro Carvalho Chehab 
3489a0bf528SMauro Carvalho Chehab /* Format control 2 */
3499a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL2_REG062H_STD_AUTODETECT	0x00
3509a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL2_REG062H_STD_NTSC		0x01
351f2fd7ce6SMauro Carvalho Chehab #define AU8522_TVDEC_FORMAT_CTRL2_REG062H_STD_PAL_M		0x02
3529a0bf528SMauro Carvalho Chehab 
3539a0bf528SMauro Carvalho Chehab 
3549a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_ATSC               	0xC4
3559a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_ATVRF			0xC4
3569a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_ATVRF13			0xC4
3579a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_J83B64             	0xC4
3589a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_J83B256            	0xC4
3599a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_CVBS               	0x20
3609a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_CVBS_CH1			0xA2
3619a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_CVBS_CH2			0xA0
3629a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_CVBS_CH3			0x69
3639a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_CVBS_CH4			0x68
3649a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_CVBS_CH4_SIF        	0x28
3659a0bf528SMauro Carvalho Chehab /* CH1 AS Y,CH3 AS C */
3669a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_SVIDEO_CH13        	0x23
3679a0bf528SMauro Carvalho Chehab /* CH2 AS Y,CH4 AS C */
3689a0bf528SMauro Carvalho Chehab #define AU8522_INPUT_CONTROL_REG081H_SVIDEO_CH24        	0x20
3699a0bf528SMauro Carvalho Chehab #define AU8522_MODULE_CLOCK_CONTROL_REG0A3H_ATSC        	0x0C
3709a0bf528SMauro Carvalho Chehab #define AU8522_MODULE_CLOCK_CONTROL_REG0A3H_J83B64      	0x09
3719a0bf528SMauro Carvalho Chehab #define AU8522_MODULE_CLOCK_CONTROL_REG0A3H_J83B256    		0x09
3729a0bf528SMauro Carvalho Chehab #define AU8522_MODULE_CLOCK_CONTROL_REG0A3H_CVBS        	0x12
3739a0bf528SMauro Carvalho Chehab #define AU8522_MODULE_CLOCK_CONTROL_REG0A3H_ATVRF       	0x1A
3749a0bf528SMauro Carvalho Chehab #define AU8522_MODULE_CLOCK_CONTROL_REG0A3H_ATVRF13		0x1A
3759a0bf528SMauro Carvalho Chehab #define AU8522_MODULE_CLOCK_CONTROL_REG0A3H_SVIDEO		0x02
3769a0bf528SMauro Carvalho Chehab 
3779a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_CLEAR		0x00
3789a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_SVIDEO		0x9C
3799a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_CVBS     	0x9D
3809a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_ATSC		0xE8
3819a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_J83B256 		0xCA
3829a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_J83B64  		0xCA
3839a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_ATVRF   		0xDD
3849a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_ATVRF13		0xDD
3859a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_PAL		0xDD
3869a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_FM		0xDD
3879a0bf528SMauro Carvalho Chehab 
3889a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_ATSC		0x80
3899a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_J83B256 		0x80
3909a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_J83B64  		0x80
3919a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_DONGLE_ATSC	0x40
3929a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_DONGLE_J83B256	0x40
3939a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_DONGLE_J83B64	0x40
3949a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_DONGLE_CLEAR	0x00
3959a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_ATVRF		0x01
3969a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_ATVRF13		0x01
3979a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_SVIDEO  		0x04
3989a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_CVBS		0x01
3999a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_PWM     		0x03
4009a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_IIS      	0x09
4019a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_PAL		0x01
4029a0bf528SMauro Carvalho Chehab #define AU8522_SYSTEM_MODULE_CONTROL_1_REG0A5H_FM		0x01
4039a0bf528SMauro Carvalho Chehab 
4049a0bf528SMauro Carvalho Chehab /* STILL NEED TO BE REFACTORED @@@@@@@@@@@@@@ */
4059a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_CONTRAST_REG00BH_CVBS			0x79
4069a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_SATURATION_CB_REG00CH_CVBS			0x80
4079a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_SATURATION_CR_REG00DH_CVBS			0x80
4089a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_HUE_H_REG00EH_CVBS				0x00
4099a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_HUE_L_REG00FH_CVBS				0x00
4109a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_PGA_REG012H_CVBS				0x0F
4119a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_MODE_REG015H_CVBS			0x00
4129a0bf528SMauro Carvalho Chehab #define AU8522_REG016H_CVBS					0x00
4139a0bf528SMauro Carvalho Chehab #define AU8522_TVDED_DBG_MODE_REG060H_CVBS			0x00
4149a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VCR_DET_LLIM_REG063H_CVBS			0x19
4159a0bf528SMauro Carvalho Chehab #define AU8522_REG0F9H_AUDIO					0x20
4169a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VCR_DET_HLIM_REG064H_CVBS			0xA7
4179a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_VDIF_THR1_REG065H_CVBS		0x0A
4189a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_VDIF_THR2_REG066H_CVBS		0x32
4199a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_VDIF_THR3_REG067H_CVBS		0x19
4209a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_NOTCH_THR_REG068H_CVBS		0x23
4219a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_HDIF_THR1_REG069H_CVBS		0x41
4229a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_HDIF_THR2_REG06AH_CVBS		0x0A
4239a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_HDIF_THR3_REG06BH_CVBS		0x32
4249a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DCDIF_THR1_REG06CH_CVBS		0x34
4259a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DCDIF_THR1_REG06CH_SVIDEO		0x2a
4269a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DCDIF_THR2_REG06DH_CVBS		0x05
4279a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DCDIF_THR2_REG06DH_SVIDEO		0x15
4289a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DCDIF_THR3_REG06EH_CVBS		0x6E
4299a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_UV_SEP_THR_REG06FH_CVBS			0x0F
4309a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DC_THR1_NTSC_REG070H_CVBS		0x80
4319a0bf528SMauro Carvalho Chehab #define AU8522_REG071H_CVBS					0x18
4329a0bf528SMauro Carvalho Chehab #define AU8522_REG072H_CVBS					0x30
4339a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_COMB_DC_THR2_NTSC_REG073H_CVBS		0xF0
4349a0bf528SMauro Carvalho Chehab #define AU8522_REG074H_CVBS					0x80
4359a0bf528SMauro Carvalho Chehab #define AU8522_REG075H_CVBS					0xF0
4369a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_DCAGC_CTRL_REG077H_CVBS			0xFB
4379a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_PIC_START_ADJ_REG078H_CVBS			0x04
4389a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_AGC_HIGH_LIMIT_REG079H_CVBS		0x00
4399a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_MACROVISION_SYNC_THR_REG07AH_CVBS		0x00
4409a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_INTRP_CTRL_REG07BH_CVBS			0xEE
4419a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_AGC_LOW_LIMIT_REG0E4H_CVBS			0xFE
4429a0bf528SMauro Carvalho Chehab #define AU8522_TOREGAAGC_REG0E5H_CVBS				0x00
4439a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI6A_REG035H_CVBS				0x40
4449a0bf528SMauro Carvalho Chehab 
4459a0bf528SMauro Carvalho Chehab /* Enables Closed captioning */
4469a0bf528SMauro Carvalho Chehab #define AU8522_TVDEC_VBI_CTRL_H_REG017H_CCON			0x21
447