• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/media/video/
1/*
2 * drivers/media/video/tvp514x_regs.h
3 *
4 * Copyright (C) 2008 Texas Instruments Inc
5 * Author: Vaibhav Hiremath <hvaibhav@ti.com>
6 *
7 * Contributors:
8 *     Sivaraj R <sivaraj@ti.com>
9 *     Brijesh R Jadav <brijesh.j@ti.com>
10 *     Hardik Shah <hardik.shah@ti.com>
11 *     Manjunath Hadli <mrh@ti.com>
12 *     Karicheri Muralidharan <m-karicheri2@ti.com>
13 *
14 * This package is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License version 2 as
16 * published by the Free Software Foundation.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26 *
27 */
28
29#ifndef _TVP514X_REGS_H
30#define _TVP514X_REGS_H
31
32/*
33 * TVP5146/47 registers
34 */
35#define REG_INPUT_SEL			(0x00)
36#define REG_AFE_GAIN_CTRL		(0x01)
37#define REG_VIDEO_STD			(0x02)
38#define REG_OPERATION_MODE		(0x03)
39#define REG_AUTOSWITCH_MASK		(0x04)
40
41#define REG_COLOR_KILLER		(0x05)
42#define REG_LUMA_CONTROL1		(0x06)
43#define REG_LUMA_CONTROL2		(0x07)
44#define REG_LUMA_CONTROL3		(0x08)
45
46#define REG_BRIGHTNESS			(0x09)
47#define REG_CONTRAST			(0x0A)
48#define REG_SATURATION			(0x0B)
49#define REG_HUE				(0x0C)
50
51#define REG_CHROMA_CONTROL1		(0x0D)
52#define REG_CHROMA_CONTROL2		(0x0E)
53
54/* 0x0F Reserved */
55
56#define REG_COMP_PR_SATURATION		(0x10)
57#define REG_COMP_Y_CONTRAST		(0x11)
58#define REG_COMP_PB_SATURATION		(0x12)
59
60/* 0x13 Reserved */
61
62#define REG_COMP_Y_BRIGHTNESS		(0x14)
63
64/* 0x15 Reserved */
65
66#define REG_AVID_START_PIXEL_LSB	(0x16)
67#define REG_AVID_START_PIXEL_MSB	(0x17)
68#define REG_AVID_STOP_PIXEL_LSB		(0x18)
69#define REG_AVID_STOP_PIXEL_MSB		(0x19)
70
71#define REG_HSYNC_START_PIXEL_LSB	(0x1A)
72#define REG_HSYNC_START_PIXEL_MSB	(0x1B)
73#define REG_HSYNC_STOP_PIXEL_LSB	(0x1C)
74#define REG_HSYNC_STOP_PIXEL_MSB	(0x1D)
75
76#define REG_VSYNC_START_LINE_LSB	(0x1E)
77#define REG_VSYNC_START_LINE_MSB	(0x1F)
78#define REG_VSYNC_STOP_LINE_LSB		(0x20)
79#define REG_VSYNC_STOP_LINE_MSB		(0x21)
80
81#define REG_VBLK_START_LINE_LSB		(0x22)
82#define REG_VBLK_START_LINE_MSB		(0x23)
83#define REG_VBLK_STOP_LINE_LSB		(0x24)
84#define REG_VBLK_STOP_LINE_MSB		(0x25)
85
86/* 0x26 - 0x27 Reserved */
87
88#define REG_FAST_SWTICH_CONTROL		(0x28)
89
90/* 0x29 Reserved */
91
92#define REG_FAST_SWTICH_SCART_DELAY	(0x2A)
93
94/* 0x2B Reserved */
95
96#define REG_SCART_DELAY			(0x2C)
97#define REG_CTI_DELAY			(0x2D)
98#define REG_CTI_CONTROL			(0x2E)
99
100/* 0x2F - 0x31 Reserved */
101
102#define REG_SYNC_CONTROL		(0x32)
103#define REG_OUTPUT_FORMATTER1		(0x33)
104#define REG_OUTPUT_FORMATTER2		(0x34)
105#define REG_OUTPUT_FORMATTER3		(0x35)
106#define REG_OUTPUT_FORMATTER4		(0x36)
107#define REG_OUTPUT_FORMATTER5		(0x37)
108#define REG_OUTPUT_FORMATTER6		(0x38)
109#define REG_CLEAR_LOST_LOCK		(0x39)
110
111#define REG_STATUS1			(0x3A)
112#define REG_STATUS2			(0x3B)
113
114#define REG_AGC_GAIN_STATUS_LSB		(0x3C)
115#define REG_AGC_GAIN_STATUS_MSB		(0x3D)
116
117/* 0x3E Reserved */
118
119#define REG_VIDEO_STD_STATUS		(0x3F)
120#define REG_GPIO_INPUT1			(0x40)
121#define REG_GPIO_INPUT2			(0x41)
122
123/* 0x42 - 0x45 Reserved */
124
125#define REG_AFE_COARSE_GAIN_CH1		(0x46)
126#define REG_AFE_COARSE_GAIN_CH2		(0x47)
127#define REG_AFE_COARSE_GAIN_CH3		(0x48)
128#define REG_AFE_COARSE_GAIN_CH4		(0x49)
129
130#define REG_AFE_FINE_GAIN_PB_B_LSB	(0x4A)
131#define REG_AFE_FINE_GAIN_PB_B_MSB	(0x4B)
132#define REG_AFE_FINE_GAIN_Y_G_CHROMA_LSB	(0x4C)
133#define REG_AFE_FINE_GAIN_Y_G_CHROMA_MSB	(0x4D)
134#define REG_AFE_FINE_GAIN_PR_R_LSB	(0x4E)
135#define REG_AFE_FINE_GAIN_PR_R_MSB	(0x4F)
136#define REG_AFE_FINE_GAIN_CVBS_LUMA_LSB	(0x50)
137#define REG_AFE_FINE_GAIN_CVBS_LUMA_MSB	(0x51)
138
139/* 0x52 - 0x68 Reserved */
140
141#define REG_FBIT_VBIT_CONTROL1		(0x69)
142
143/* 0x6A - 0x6B Reserved */
144
145#define REG_BACKEND_AGC_CONTROL		(0x6C)
146
147/* 0x6D - 0x6E Reserved */
148
149#define REG_AGC_DECREMENT_SPEED_CONTROL	(0x6F)
150#define REG_ROM_VERSION			(0x70)
151
152/* 0x71 - 0x73 Reserved */
153
154#define REG_AGC_WHITE_PEAK_PROCESSING	(0x74)
155#define REG_FBIT_VBIT_CONTROL2		(0x75)
156#define REG_VCR_TRICK_MODE_CONTROL	(0x76)
157#define REG_HORIZONTAL_SHAKE_INCREMENT	(0x77)
158#define REG_AGC_INCREMENT_SPEED		(0x78)
159#define REG_AGC_INCREMENT_DELAY		(0x79)
160
161/* 0x7A - 0x7F Reserved */
162
163#define REG_CHIP_ID_MSB			(0x80)
164#define REG_CHIP_ID_LSB			(0x81)
165
166/* 0x82 Reserved */
167
168#define REG_CPLL_SPEED_CONTROL		(0x83)
169
170/* 0x84 - 0x96 Reserved */
171
172#define REG_STATUS_REQUEST		(0x97)
173
174/* 0x98 - 0x99 Reserved */
175
176#define REG_VERTICAL_LINE_COUNT_LSB	(0x9A)
177#define REG_VERTICAL_LINE_COUNT_MSB	(0x9B)
178
179/* 0x9C - 0x9D Reserved */
180
181#define REG_AGC_DECREMENT_DELAY		(0x9E)
182
183/* 0x9F - 0xB0 Reserved */
184
185#define REG_VDP_TTX_FILTER_1_MASK1	(0xB1)
186#define REG_VDP_TTX_FILTER_1_MASK2	(0xB2)
187#define REG_VDP_TTX_FILTER_1_MASK3	(0xB3)
188#define REG_VDP_TTX_FILTER_1_MASK4	(0xB4)
189#define REG_VDP_TTX_FILTER_1_MASK5	(0xB5)
190#define REG_VDP_TTX_FILTER_2_MASK1	(0xB6)
191#define REG_VDP_TTX_FILTER_2_MASK2	(0xB7)
192#define REG_VDP_TTX_FILTER_2_MASK3	(0xB8)
193#define REG_VDP_TTX_FILTER_2_MASK4	(0xB9)
194#define REG_VDP_TTX_FILTER_2_MASK5	(0xBA)
195#define REG_VDP_TTX_FILTER_CONTROL	(0xBB)
196#define REG_VDP_FIFO_WORD_COUNT		(0xBC)
197#define REG_VDP_FIFO_INTERRUPT_THRLD	(0xBD)
198
199/* 0xBE Reserved */
200
201#define REG_VDP_FIFO_RESET		(0xBF)
202#define REG_VDP_FIFO_OUTPUT_CONTROL	(0xC0)
203#define REG_VDP_LINE_NUMBER_INTERRUPT	(0xC1)
204#define REG_VDP_PIXEL_ALIGNMENT_LSB	(0xC2)
205#define REG_VDP_PIXEL_ALIGNMENT_MSB	(0xC3)
206
207/* 0xC4 - 0xD5 Reserved */
208
209#define REG_VDP_LINE_START		(0xD6)
210#define REG_VDP_LINE_STOP		(0xD7)
211#define REG_VDP_GLOBAL_LINE_MODE	(0xD8)
212#define REG_VDP_FULL_FIELD_ENABLE	(0xD9)
213#define REG_VDP_FULL_FIELD_MODE		(0xDA)
214
215/* 0xDB - 0xDF Reserved */
216
217#define REG_VBUS_DATA_ACCESS_NO_VBUS_ADDR_INCR	(0xE0)
218#define REG_VBUS_DATA_ACCESS_VBUS_ADDR_INCR	(0xE1)
219#define REG_FIFO_READ_DATA			(0xE2)
220
221/* 0xE3 - 0xE7 Reserved */
222
223#define REG_VBUS_ADDRESS_ACCESS1	(0xE8)
224#define REG_VBUS_ADDRESS_ACCESS2	(0xE9)
225#define REG_VBUS_ADDRESS_ACCESS3	(0xEA)
226
227/* 0xEB - 0xEF Reserved */
228
229#define REG_INTERRUPT_RAW_STATUS0	(0xF0)
230#define REG_INTERRUPT_RAW_STATUS1	(0xF1)
231#define REG_INTERRUPT_STATUS0		(0xF2)
232#define REG_INTERRUPT_STATUS1		(0xF3)
233#define REG_INTERRUPT_MASK0		(0xF4)
234#define REG_INTERRUPT_MASK1		(0xF5)
235#define REG_INTERRUPT_CLEAR0		(0xF6)
236#define REG_INTERRUPT_CLEAR1		(0xF7)
237
238/* 0xF8 - 0xFF Reserved */
239
240/*
241 * Mask and bit definitions of TVP5146/47 registers
242 */
243/* The ID values we are looking for */
244#define TVP514X_CHIP_ID_MSB		(0x51)
245#define TVP5146_CHIP_ID_LSB		(0x46)
246#define TVP5147_CHIP_ID_LSB		(0x47)
247
248#define VIDEO_STD_MASK			(0x07)
249#define VIDEO_STD_AUTO_SWITCH_BIT	(0x00)
250#define VIDEO_STD_NTSC_MJ_BIT		(0x01)
251#define VIDEO_STD_PAL_BDGHIN_BIT	(0x02)
252#define VIDEO_STD_PAL_M_BIT		(0x03)
253#define VIDEO_STD_PAL_COMBINATION_N_BIT	(0x04)
254#define VIDEO_STD_NTSC_4_43_BIT		(0x05)
255#define VIDEO_STD_SECAM_BIT		(0x06)
256#define VIDEO_STD_PAL_60_BIT		(0x07)
257
258/*
259 * Status bit
260 */
261#define STATUS_TV_VCR_BIT		(1<<0)
262#define STATUS_HORZ_SYNC_LOCK_BIT	(1<<1)
263#define STATUS_VIRT_SYNC_LOCK_BIT	(1<<2)
264#define STATUS_CLR_SUBCAR_LOCK_BIT	(1<<3)
265#define STATUS_LOST_LOCK_DETECT_BIT	(1<<4)
266#define STATUS_FEILD_RATE_BIT		(1<<5)
267#define STATUS_LINE_ALTERNATING_BIT	(1<<6)
268#define STATUS_PEAK_WHITE_DETECT_BIT	(1<<7)
269
270/* Tokens for register write */
271#define TOK_WRITE                       (0)     /* token for write operation */
272#define TOK_TERM                        (1)     /* terminating token */
273#define TOK_DELAY                       (2)     /* delay token for reg list */
274#define TOK_SKIP                        (3)     /* token to skip a register */
275/**
276 * struct tvp514x_reg - Structure for TVP5146/47 register initialization values
277 * @token - Token: TOK_WRITE, TOK_TERM etc..
278 * @reg - Register offset
279 * @val - Register Value for TOK_WRITE or delay in ms for TOK_DELAY
280 */
281struct tvp514x_reg {
282	u8 token;
283	u8 reg;
284	u32 val;
285};
286
287#endif				/* ifndef _TVP514X_REGS_H */
288