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