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