linux/drivers/media/video/tvp514x_regs.h
<<
>>
Prefs
   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