xref: /openbmc/linux/drivers/media/i2c/tvp5150_reg.h (revision cb7a01ac324bf2ee2c666f37ac867e4135f9785a)
1*cb7a01acSMauro Carvalho Chehab /*
2*cb7a01acSMauro Carvalho Chehab  * tvp5150 - Texas Instruments TVP5150A/AM1 video decoder registers
3*cb7a01acSMauro Carvalho Chehab  *
4*cb7a01acSMauro Carvalho Chehab  * Copyright (c) 2005,2006 Mauro Carvalho Chehab (mchehab@infradead.org)
5*cb7a01acSMauro Carvalho Chehab  * This code is placed under the terms of the GNU General Public License v2
6*cb7a01acSMauro Carvalho Chehab  */
7*cb7a01acSMauro Carvalho Chehab 
8*cb7a01acSMauro Carvalho Chehab #define TVP5150_VD_IN_SRC_SEL_1      0x00 /* Video input source selection #1 */
9*cb7a01acSMauro Carvalho Chehab #define TVP5150_ANAL_CHL_CTL         0x01 /* Analog channel controls */
10*cb7a01acSMauro Carvalho Chehab #define TVP5150_OP_MODE_CTL          0x02 /* Operation mode controls */
11*cb7a01acSMauro Carvalho Chehab #define TVP5150_MISC_CTL             0x03 /* Miscellaneous controls */
12*cb7a01acSMauro Carvalho Chehab #define TVP5150_AUTOSW_MSK           0x04 /* Autoswitch mask: TVP5150A / TVP5150AM */
13*cb7a01acSMauro Carvalho Chehab 
14*cb7a01acSMauro Carvalho Chehab /* Reserved 05h */
15*cb7a01acSMauro Carvalho Chehab 
16*cb7a01acSMauro Carvalho Chehab #define TVP5150_COLOR_KIL_THSH_CTL   0x06 /* Color killer threshold control */
17*cb7a01acSMauro Carvalho Chehab #define TVP5150_LUMA_PROC_CTL_1      0x07 /* Luminance processing control #1 */
18*cb7a01acSMauro Carvalho Chehab #define TVP5150_LUMA_PROC_CTL_2      0x08 /* Luminance processing control #2 */
19*cb7a01acSMauro Carvalho Chehab #define TVP5150_BRIGHT_CTL           0x09 /* Brightness control */
20*cb7a01acSMauro Carvalho Chehab #define TVP5150_SATURATION_CTL       0x0a /* Color saturation control */
21*cb7a01acSMauro Carvalho Chehab #define TVP5150_HUE_CTL              0x0b /* Hue control */
22*cb7a01acSMauro Carvalho Chehab #define TVP5150_CONTRAST_CTL         0x0c /* Contrast control */
23*cb7a01acSMauro Carvalho Chehab #define TVP5150_DATA_RATE_SEL        0x0d /* Outputs and data rates select */
24*cb7a01acSMauro Carvalho Chehab #define TVP5150_LUMA_PROC_CTL_3      0x0e /* Luminance processing control #3 */
25*cb7a01acSMauro Carvalho Chehab #define TVP5150_CONF_SHARED_PIN      0x0f /* Configuration shared pins */
26*cb7a01acSMauro Carvalho Chehab 
27*cb7a01acSMauro Carvalho Chehab /* Reserved 10h */
28*cb7a01acSMauro Carvalho Chehab 
29*cb7a01acSMauro Carvalho Chehab #define TVP5150_ACT_VD_CROP_ST_MSB   0x11 /* Active video cropping start MSB */
30*cb7a01acSMauro Carvalho Chehab #define TVP5150_ACT_VD_CROP_ST_LSB   0x12 /* Active video cropping start LSB */
31*cb7a01acSMauro Carvalho Chehab #define TVP5150_ACT_VD_CROP_STP_MSB  0x13 /* Active video cropping stop MSB */
32*cb7a01acSMauro Carvalho Chehab #define TVP5150_ACT_VD_CROP_STP_LSB  0x14 /* Active video cropping stop LSB */
33*cb7a01acSMauro Carvalho Chehab #define TVP5150_GENLOCK              0x15 /* Genlock/RTC */
34*cb7a01acSMauro Carvalho Chehab #define TVP5150_HORIZ_SYNC_START     0x16 /* Horizontal sync start */
35*cb7a01acSMauro Carvalho Chehab 
36*cb7a01acSMauro Carvalho Chehab /* Reserved 17h */
37*cb7a01acSMauro Carvalho Chehab 
38*cb7a01acSMauro Carvalho Chehab #define TVP5150_VERT_BLANKING_START 0x18 /* Vertical blanking start */
39*cb7a01acSMauro Carvalho Chehab #define TVP5150_VERT_BLANKING_STOP  0x19 /* Vertical blanking stop */
40*cb7a01acSMauro Carvalho Chehab #define TVP5150_CHROMA_PROC_CTL_1   0x1a /* Chrominance processing control #1 */
41*cb7a01acSMauro Carvalho Chehab #define TVP5150_CHROMA_PROC_CTL_2   0x1b /* Chrominance processing control #2 */
42*cb7a01acSMauro Carvalho Chehab #define TVP5150_INT_RESET_REG_B     0x1c /* Interrupt reset register B */
43*cb7a01acSMauro Carvalho Chehab #define TVP5150_INT_ENABLE_REG_B    0x1d /* Interrupt enable register B */
44*cb7a01acSMauro Carvalho Chehab #define TVP5150_INTT_CONFIG_REG_B   0x1e /* Interrupt configuration register B */
45*cb7a01acSMauro Carvalho Chehab 
46*cb7a01acSMauro Carvalho Chehab /* Reserved 1Fh-27h */
47*cb7a01acSMauro Carvalho Chehab 
48*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_MASK			 (0x07 >> 1)
49*cb7a01acSMauro Carvalho Chehab #define TVP5150_VIDEO_STD                0x28 /* Video standard */
50*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_AUTO_SWITCH_BIT	 0x00
51*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_NTSC_MJ_BIT		 0x02
52*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_PAL_BDGHIN_BIT	 0x04
53*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_PAL_M_BIT		 0x06
54*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_PAL_COMBINATION_N_BIT	 0x08
55*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_NTSC_4_43_BIT		 0x0a
56*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_SECAM_BIT		 0x0c
57*cb7a01acSMauro Carvalho Chehab 
58*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_NTSC_MJ_BIT_AS                 0x01
59*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_PAL_BDGHIN_BIT_AS              0x03
60*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_PAL_M_BIT_AS		         0x05
61*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_PAL_COMBINATION_N_BIT_AS	 0x07
62*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_NTSC_4_43_BIT_AS		 0x09
63*cb7a01acSMauro Carvalho Chehab #define VIDEO_STD_SECAM_BIT_AS		         0x0b
64*cb7a01acSMauro Carvalho Chehab 
65*cb7a01acSMauro Carvalho Chehab /* Reserved 29h-2bh */
66*cb7a01acSMauro Carvalho Chehab 
67*cb7a01acSMauro Carvalho Chehab #define TVP5150_CB_GAIN_FACT        0x2c /* Cb gain factor */
68*cb7a01acSMauro Carvalho Chehab #define TVP5150_CR_GAIN_FACTOR      0x2d /* Cr gain factor */
69*cb7a01acSMauro Carvalho Chehab #define TVP5150_MACROVISION_ON_CTR  0x2e /* Macrovision on counter */
70*cb7a01acSMauro Carvalho Chehab #define TVP5150_MACROVISION_OFF_CTR 0x2f /* Macrovision off counter */
71*cb7a01acSMauro Carvalho Chehab #define TVP5150_REV_SELECT          0x30 /* revision select (TVP5150AM1 only) */
72*cb7a01acSMauro Carvalho Chehab 
73*cb7a01acSMauro Carvalho Chehab /* Reserved	31h-7Fh */
74*cb7a01acSMauro Carvalho Chehab 
75*cb7a01acSMauro Carvalho Chehab #define TVP5150_MSB_DEV_ID          0x80 /* MSB of device ID */
76*cb7a01acSMauro Carvalho Chehab #define TVP5150_LSB_DEV_ID          0x81 /* LSB of device ID */
77*cb7a01acSMauro Carvalho Chehab #define TVP5150_ROM_MAJOR_VER       0x82 /* ROM major version */
78*cb7a01acSMauro Carvalho Chehab #define TVP5150_ROM_MINOR_VER       0x83 /* ROM minor version */
79*cb7a01acSMauro Carvalho Chehab #define TVP5150_VERT_LN_COUNT_MSB   0x84 /* Vertical line count MSB */
80*cb7a01acSMauro Carvalho Chehab #define TVP5150_VERT_LN_COUNT_LSB   0x85 /* Vertical line count LSB */
81*cb7a01acSMauro Carvalho Chehab #define TVP5150_INT_STATUS_REG_B    0x86 /* Interrupt status register B */
82*cb7a01acSMauro Carvalho Chehab #define TVP5150_INT_ACTIVE_REG_B    0x87 /* Interrupt active register B */
83*cb7a01acSMauro Carvalho Chehab #define TVP5150_STATUS_REG_1        0x88 /* Status register #1 */
84*cb7a01acSMauro Carvalho Chehab #define TVP5150_STATUS_REG_2        0x89 /* Status register #2 */
85*cb7a01acSMauro Carvalho Chehab #define TVP5150_STATUS_REG_3        0x8a /* Status register #3 */
86*cb7a01acSMauro Carvalho Chehab #define TVP5150_STATUS_REG_4        0x8b /* Status register #4 */
87*cb7a01acSMauro Carvalho Chehab #define TVP5150_STATUS_REG_5        0x8c /* Status register #5 */
88*cb7a01acSMauro Carvalho Chehab /* Reserved	8Dh-8Fh */
89*cb7a01acSMauro Carvalho Chehab  /* Closed caption data registers */
90*cb7a01acSMauro Carvalho Chehab #define TVP5150_CC_DATA_INI         0x90
91*cb7a01acSMauro Carvalho Chehab #define TVP5150_CC_DATA_END         0x93
92*cb7a01acSMauro Carvalho Chehab 
93*cb7a01acSMauro Carvalho Chehab  /* WSS data registers */
94*cb7a01acSMauro Carvalho Chehab #define TVP5150_WSS_DATA_INI        0x94
95*cb7a01acSMauro Carvalho Chehab #define TVP5150_WSS_DATA_END        0x99
96*cb7a01acSMauro Carvalho Chehab 
97*cb7a01acSMauro Carvalho Chehab /* VPS data registers */
98*cb7a01acSMauro Carvalho Chehab #define TVP5150_VPS_DATA_INI        0x9a
99*cb7a01acSMauro Carvalho Chehab #define TVP5150_VPS_DATA_END        0xa6
100*cb7a01acSMauro Carvalho Chehab 
101*cb7a01acSMauro Carvalho Chehab /* VITC data registers */
102*cb7a01acSMauro Carvalho Chehab #define TVP5150_VITC_DATA_INI       0xa7
103*cb7a01acSMauro Carvalho Chehab #define TVP5150_VITC_DATA_END       0xaf
104*cb7a01acSMauro Carvalho Chehab 
105*cb7a01acSMauro Carvalho Chehab #define TVP5150_VBI_FIFO_READ_DATA  0xb0 /* VBI FIFO read data */
106*cb7a01acSMauro Carvalho Chehab 
107*cb7a01acSMauro Carvalho Chehab /* Teletext filter 1 */
108*cb7a01acSMauro Carvalho Chehab #define TVP5150_TELETEXT_FIL1_INI  0xb1
109*cb7a01acSMauro Carvalho Chehab #define TVP5150_TELETEXT_FIL1_END  0xb5
110*cb7a01acSMauro Carvalho Chehab 
111*cb7a01acSMauro Carvalho Chehab /* Teletext filter 2 */
112*cb7a01acSMauro Carvalho Chehab #define TVP5150_TELETEXT_FIL2_INI  0xb6
113*cb7a01acSMauro Carvalho Chehab #define TVP5150_TELETEXT_FIL2_END  0xba
114*cb7a01acSMauro Carvalho Chehab 
115*cb7a01acSMauro Carvalho Chehab #define TVP5150_TELETEXT_FIL_ENA    0xbb /* Teletext filter enable */
116*cb7a01acSMauro Carvalho Chehab /* Reserved	BCh-BFh */
117*cb7a01acSMauro Carvalho Chehab #define TVP5150_INT_STATUS_REG_A    0xc0 /* Interrupt status register A */
118*cb7a01acSMauro Carvalho Chehab #define TVP5150_INT_ENABLE_REG_A    0xc1 /* Interrupt enable register A */
119*cb7a01acSMauro Carvalho Chehab #define TVP5150_INT_CONF            0xc2 /* Interrupt configuration */
120*cb7a01acSMauro Carvalho Chehab #define TVP5150_VDP_CONF_RAM_DATA   0xc3 /* VDP configuration RAM data */
121*cb7a01acSMauro Carvalho Chehab #define TVP5150_CONF_RAM_ADDR_LOW   0xc4 /* Configuration RAM address low byte */
122*cb7a01acSMauro Carvalho Chehab #define TVP5150_CONF_RAM_ADDR_HIGH  0xc5 /* Configuration RAM address high byte */
123*cb7a01acSMauro Carvalho Chehab #define TVP5150_VDP_STATUS_REG      0xc6 /* VDP status register */
124*cb7a01acSMauro Carvalho Chehab #define TVP5150_FIFO_WORD_COUNT     0xc7 /* FIFO word count */
125*cb7a01acSMauro Carvalho Chehab #define TVP5150_FIFO_INT_THRESHOLD  0xc8 /* FIFO interrupt threshold */
126*cb7a01acSMauro Carvalho Chehab #define TVP5150_FIFO_RESET          0xc9 /* FIFO reset */
127*cb7a01acSMauro Carvalho Chehab #define TVP5150_LINE_NUMBER_INT     0xca /* Line number interrupt */
128*cb7a01acSMauro Carvalho Chehab #define TVP5150_PIX_ALIGN_REG_LOW   0xcb /* Pixel alignment register low byte */
129*cb7a01acSMauro Carvalho Chehab #define TVP5150_PIX_ALIGN_REG_HIGH  0xcc /* Pixel alignment register high byte */
130*cb7a01acSMauro Carvalho Chehab #define TVP5150_FIFO_OUT_CTRL       0xcd /* FIFO output control */
131*cb7a01acSMauro Carvalho Chehab /* Reserved	CEh */
132*cb7a01acSMauro Carvalho Chehab #define TVP5150_FULL_FIELD_ENA      0xcf /* Full field enable 1 */
133*cb7a01acSMauro Carvalho Chehab 
134*cb7a01acSMauro Carvalho Chehab /* Line mode registers */
135*cb7a01acSMauro Carvalho Chehab #define TVP5150_LINE_MODE_INI       0xd0
136*cb7a01acSMauro Carvalho Chehab #define TVP5150_LINE_MODE_END       0xfb
137*cb7a01acSMauro Carvalho Chehab 
138*cb7a01acSMauro Carvalho Chehab #define TVP5150_FULL_FIELD_MODE_REG 0xfc /* Full field mode register */
139*cb7a01acSMauro Carvalho Chehab /* Reserved	FDh-FFh */
140