/*
 *  Driver for the Conexant CX25821 PCIe bridge
 *
 *  Copyright (C) 2009 Conexant Systems Inc.
 *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#ifndef __CX25821_REGISTERS__
#define __CX25821_REGISTERS__

/* Risc Instructions */
#define RISC_CNT_INC	 0x00010000
#define RISC_CNT_RESET	 0x00030000
#define RISC_IRQ1		 0x01000000
#define RISC_IRQ2		 0x02000000
#define RISC_EOL		 0x04000000
#define RISC_SOL		 0x08000000
#define RISC_WRITE		 0x10000000
#define RISC_SKIP		 0x20000000
#define RISC_JUMP		 0x70000000
#define RISC_SYNC		 0x80000000
#define RISC_RESYNC		 0x80008000
#define RISC_READ		 0x90000000
#define RISC_WRITERM	 0xB0000000
#define RISC_WRITECM	 0xC0000000
#define RISC_WRITECR	 0xD0000000
#define RISC_WRITEC		 0x50000000
#define RISC_READC		 0xA0000000

#define RISC_SYNC_ODD		 0x00000000
#define RISC_SYNC_EVEN		 0x00000200
#define RISC_SYNC_ODD_VBI	 0x00000006
#define RISC_SYNC_EVEN_VBI	 0x00000207
#define RISC_NOOP			 0xF0000000

/*****************************************************************************
* ASB SRAM
 *****************************************************************************/
#define  TX_SRAM                   0x000000	/* Transmit SRAM */

/*****************************************************************************/
#define  RX_RAM                    0x010000	/* Receive SRAM */

/*****************************************************************************
* Application Layer (AL)
 *****************************************************************************/
#define  DEV_CNTRL2                0x040000	/* Device control */
#define  FLD_RUN_RISC              0x00000020

/* ***************************************************************************** */
#define  PCI_INT_MSK               0x040010	/* PCI interrupt mask */
#define  PCI_INT_STAT              0x040014	/* PCI interrupt status */
#define  PCI_INT_MSTAT             0x040018	/* PCI interrupt masked status */
#define  FLD_HAMMERHEAD_INT        (1 << 27)
#define  FLD_UART_INT              (1 << 26)
#define  FLD_IRQN_INT              (1 << 25)
#define  FLD_TM_INT                (1 << 28)
#define  FLD_I2C_3_RACK            (1 << 27)
#define  FLD_I2C_3_INT             (1 << 26)
#define  FLD_I2C_2_RACK            (1 << 25)
#define  FLD_I2C_2_INT             (1 << 24)
#define  FLD_I2C_1_RACK            (1 << 23)
#define  FLD_I2C_1_INT             (1 << 22)

#define  FLD_APB_DMA_BERR_INT      (1 << 21)
#define  FLD_AL_WR_BERR_INT        (1 << 20)
#define  FLD_AL_RD_BERR_INT        (1 << 19)
#define  FLD_RISC_WR_BERR_INT      (1 << 18)
#define  FLD_RISC_RD_BERR_INT      (1 << 17)

#define  FLD_VID_I_INT             (1 << 8)
#define  FLD_VID_H_INT             (1 << 7)
#define  FLD_VID_G_INT             (1 << 6)
#define  FLD_VID_F_INT             (1 << 5)
#define  FLD_VID_E_INT             (1 << 4)
#define  FLD_VID_D_INT             (1 << 3)
#define  FLD_VID_C_INT             (1 << 2)
#define  FLD_VID_B_INT             (1 << 1)
#define  FLD_VID_A_INT             (1 << 0)

/* ***************************************************************************** */
#define  VID_A_INT_MSK             0x040020	/* Video A interrupt mask */
#define  VID_A_INT_STAT            0x040024	/* Video A interrupt status */
#define  VID_A_INT_MSTAT           0x040028	/* Video A interrupt masked status */
#define  VID_A_INT_SSTAT           0x04002C	/* Video A interrupt set status */

/* ***************************************************************************** */
#define  VID_B_INT_MSK             0x040030	/* Video B interrupt mask */
#define  VID_B_INT_STAT            0x040034	/* Video B interrupt status */
#define  VID_B_INT_MSTAT           0x040038	/* Video B interrupt masked status */
#define  VID_B_INT_SSTAT           0x04003C	/* Video B interrupt set status */

/* ***************************************************************************** */
#define  VID_C_INT_MSK             0x040040	/* Video C interrupt mask */
#define  VID_C_INT_STAT            0x040044	/* Video C interrupt status */
#define  VID_C_INT_MSTAT           0x040048	/* Video C interrupt masked status */
#define  VID_C_INT_SSTAT           0x04004C	/* Video C interrupt set status */

/* ***************************************************************************** */
#define  VID_D_INT_MSK             0x040050	/* Video D interrupt mask */
#define  VID_D_INT_STAT            0x040054	/* Video D interrupt status */
#define  VID_D_INT_MSTAT           0x040058	/* Video D interrupt masked status */
#define  VID_D_INT_SSTAT           0x04005C	/* Video D interrupt set status */

/* ***************************************************************************** */
#define  VID_E_INT_MSK             0x040060	/* Video E interrupt mask */
#define  VID_E_INT_STAT            0x040064	/* Video E interrupt status */
#define  VID_E_INT_MSTAT           0x040068	/* Video E interrupt masked status */
#define  VID_E_INT_SSTAT           0x04006C	/* Video E interrupt set status */

/* ***************************************************************************** */
#define  VID_F_INT_MSK             0x040070	/* Video F interrupt mask */
#define  VID_F_INT_STAT            0x040074	/* Video F interrupt status */
#define  VID_F_INT_MSTAT           0x040078	/* Video F interrupt masked status */
#define  VID_F_INT_SSTAT           0x04007C	/* Video F interrupt set status */

/* ***************************************************************************** */
#define  VID_G_INT_MSK             0x040080	/* Video G interrupt mask */
#define  VID_G_INT_STAT            0x040084	/* Video G interrupt status */
#define  VID_G_INT_MSTAT           0x040088	/* Video G interrupt masked status */
#define  VID_G_INT_SSTAT           0x04008C	/* Video G interrupt set status */

/* ***************************************************************************** */
#define  VID_H_INT_MSK             0x040090	/* Video H interrupt mask */
#define  VID_H_INT_STAT            0x040094	/* Video H interrupt status */
#define  VID_H_INT_MSTAT           0x040098	/* Video H interrupt masked status */
#define  VID_H_INT_SSTAT           0x04009C	/* Video H interrupt set status */

/* ***************************************************************************** */
#define  VID_I_INT_MSK             0x0400A0	/* Video I interrupt mask */
#define  VID_I_INT_STAT            0x0400A4	/* Video I interrupt status */
#define  VID_I_INT_MSTAT           0x0400A8	/* Video I interrupt masked status */
#define  VID_I_INT_SSTAT           0x0400AC	/* Video I interrupt set status */

/* ***************************************************************************** */
#define  VID_J_INT_MSK             0x0400B0	/* Video J interrupt mask */
#define  VID_J_INT_STAT            0x0400B4	/* Video J interrupt status */
#define  VID_J_INT_MSTAT           0x0400B8	/* Video J interrupt masked status */
#define  VID_J_INT_SSTAT           0x0400BC	/* Video J interrupt set status */

#define  FLD_VID_SRC_OPC_ERR       0x00020000
#define  FLD_VID_DST_OPC_ERR       0x00010000
#define  FLD_VID_SRC_SYNC          0x00002000
#define  FLD_VID_DST_SYNC          0x00001000
#define  FLD_VID_SRC_UF            0x00000200
#define  FLD_VID_DST_OF            0x00000100
#define  FLD_VID_SRC_RISC2         0x00000020
#define  FLD_VID_DST_RISC2         0x00000010
#define  FLD_VID_SRC_RISC1         0x00000002
#define  FLD_VID_DST_RISC1         0x00000001
#define  FLD_VID_SRC_ERRORS		(FLD_VID_SRC_OPC_ERR | FLD_VID_SRC_SYNC | FLD_VID_SRC_UF)
#define  FLD_VID_DST_ERRORS		(FLD_VID_DST_OPC_ERR | FLD_VID_DST_SYNC | FLD_VID_DST_OF)

/* ***************************************************************************** */
#define  AUD_A_INT_MSK             0x0400C0	/* Audio Int interrupt mask */
#define  AUD_A_INT_STAT            0x0400C4	/* Audio Int interrupt status */
#define  AUD_A_INT_MSTAT           0x0400C8	/* Audio Int interrupt masked status */
#define  AUD_A_INT_SSTAT           0x0400CC	/* Audio Int interrupt set status */

/* ***************************************************************************** */
#define  AUD_B_INT_MSK             0x0400D0	/* Audio Int interrupt mask */
#define  AUD_B_INT_STAT            0x0400D4	/* Audio Int interrupt status */
#define  AUD_B_INT_MSTAT           0x0400D8	/* Audio Int interrupt masked status */
#define  AUD_B_INT_SSTAT           0x0400DC	/* Audio Int interrupt set status */

/* ***************************************************************************** */
#define  AUD_C_INT_MSK             0x0400E0	/* Audio Int interrupt mask */
#define  AUD_C_INT_STAT            0x0400E4	/* Audio Int interrupt status */
#define  AUD_C_INT_MSTAT           0x0400E8	/* Audio Int interrupt masked status */
#define  AUD_C_INT_SSTAT           0x0400EC	/* Audio Int interrupt set status */

/* ***************************************************************************** */
#define  AUD_D_INT_MSK             0x0400F0	/* Audio Int interrupt mask */
#define  AUD_D_INT_STAT            0x0400F4	/* Audio Int interrupt status */
#define  AUD_D_INT_MSTAT           0x0400F8	/* Audio Int interrupt masked status */
#define  AUD_D_INT_SSTAT           0x0400FC	/* Audio Int interrupt set status */

/* ***************************************************************************** */
#define  AUD_E_INT_MSK             0x040100	/* Audio Int interrupt mask */
#define  AUD_E_INT_STAT            0x040104	/* Audio Int interrupt status */
#define  AUD_E_INT_MSTAT           0x040108	/* Audio Int interrupt masked status */
#define  AUD_E_INT_SSTAT           0x04010C	/* Audio Int interrupt set status */

#define  FLD_AUD_SRC_OPC_ERR       0x00020000
#define  FLD_AUD_DST_OPC_ERR       0x00010000
#define  FLD_AUD_SRC_SYNC          0x00002000
#define  FLD_AUD_DST_SYNC          0x00001000
#define  FLD_AUD_SRC_OF            0x00000200
#define  FLD_AUD_DST_OF            0x00000100
#define  FLD_AUD_SRC_RISCI2        0x00000020
#define  FLD_AUD_DST_RISCI2        0x00000010
#define  FLD_AUD_SRC_RISCI1        0x00000002
#define  FLD_AUD_DST_RISCI1        0x00000001

/* ***************************************************************************** */
#define  MBIF_A_INT_MSK             0x040110	/* MBIF Int interrupt mask */
#define  MBIF_A_INT_STAT            0x040114	/* MBIF Int interrupt status */
#define  MBIF_A_INT_MSTAT           0x040118	/* MBIF Int interrupt masked status */
#define  MBIF_A_INT_SSTAT           0x04011C	/* MBIF Int interrupt set status */

/* ***************************************************************************** */
#define  MBIF_B_INT_MSK             0x040120	/* MBIF Int interrupt mask */
#define  MBIF_B_INT_STAT            0x040124	/* MBIF Int interrupt status */
#define  MBIF_B_INT_MSTAT           0x040128	/* MBIF Int interrupt masked status */
#define  MBIF_B_INT_SSTAT           0x04012C	/* MBIF Int interrupt set status */

#define  FLD_MBIF_DST_OPC_ERR       0x00010000
#define  FLD_MBIF_DST_SYNC          0x00001000
#define  FLD_MBIF_DST_OF            0x00000100
#define  FLD_MBIF_DST_RISCI2        0x00000010
#define  FLD_MBIF_DST_RISCI1        0x00000001

/* ***************************************************************************** */
#define  AUD_EXT_INT_MSK           0x040060	/* Audio Ext interrupt mask */
#define  AUD_EXT_INT_STAT          0x040064	/* Audio Ext interrupt status */
#define  AUD_EXT_INT_MSTAT         0x040068	/* Audio Ext interrupt masked status */
#define  AUD_EXT_INT_SSTAT         0x04006C	/* Audio Ext interrupt set status */
#define  FLD_AUD_EXT_OPC_ERR       0x00010000
#define  FLD_AUD_EXT_SYNC          0x00001000
#define  FLD_AUD_EXT_OF            0x00000100
#define  FLD_AUD_EXT_RISCI2        0x00000010
#define  FLD_AUD_EXT_RISCI1        0x00000001

/* ***************************************************************************** */
#define  GPIO_LO                   0x110010	/* Lower  of GPIO pins [31:0] */
#define  GPIO_HI                   0x110014	/* Upper WORD  of GPIO pins [47:31] */

#define  GPIO_LO_OE                0x110018	/* Lower  of GPIO output enable [31:0] */
#define  GPIO_HI_OE                0x11001C	/* Upper word  of GPIO output enable [47:32] */

#define  GPIO_LO_INT_MSK           0x11003C	/* GPIO interrupt mask */
#define  GPIO_LO_INT_STAT          0x110044	/* GPIO interrupt status */
#define  GPIO_LO_INT_MSTAT         0x11004C	/* GPIO interrupt masked status */
#define  GPIO_LO_ISM_SNS           0x110054	/* GPIO interrupt sensitivity */
#define  GPIO_LO_ISM_POL           0x11005C	/* GPIO interrupt polarity */

#define  GPIO_HI_INT_MSK           0x110040	/* GPIO interrupt mask */
#define  GPIO_HI_INT_STAT          0x110048	/* GPIO interrupt status */
#define  GPIO_HI_INT_MSTAT         0x110050	/* GPIO interrupt masked status */
#define  GPIO_HI_ISM_SNS           0x110058	/* GPIO interrupt sensitivity */
#define  GPIO_HI_ISM_POL           0x110060	/* GPIO interrupt polarity */

#define  FLD_GPIO43_INT            (1 << 11)
#define  FLD_GPIO42_INT            (1 << 10)
#define  FLD_GPIO41_INT            (1 << 9)
#define  FLD_GPIO40_INT            (1 << 8)

#define  FLD_GPIO9_INT             (1 << 9)
#define  FLD_GPIO8_INT             (1 << 8)
#define  FLD_GPIO7_INT             (1 << 7)
#define  FLD_GPIO6_INT             (1 << 6)
#define  FLD_GPIO5_INT             (1 << 5)
#define  FLD_GPIO4_INT             (1 << 4)
#define  FLD_GPIO3_INT             (1 << 3)
#define  FLD_GPIO2_INT             (1 << 2)
#define  FLD_GPIO1_INT             (1 << 1)
#define  FLD_GPIO0_INT             (1 << 0)

/* ***************************************************************************** */
#define  TC_REQ                    0x040090	/* Rider PCI Express traFFic class request */

/* ***************************************************************************** */
#define  TC_REQ_SET                0x040094	/* Rider PCI Express traFFic class request set */

/* ***************************************************************************** */
/* Rider */
/* ***************************************************************************** */

/* PCI Compatible Header */
/* ***************************************************************************** */
#define  RDR_CFG0                  0x050000
#define  RDR_VENDOR_DEVICE_ID_CFG  0x050000

/* ***************************************************************************** */
#define  RDR_CFG1                  0x050004

/* ***************************************************************************** */
#define  RDR_CFG2                  0x050008

/* ***************************************************************************** */
#define  RDR_CFG3                  0x05000C

/* ***************************************************************************** */
#define  RDR_CFG4                  0x050010

/* ***************************************************************************** */
#define  RDR_CFG5                  0x050014

/* ***************************************************************************** */
#define  RDR_CFG6                  0x050018

/* ***************************************************************************** */
#define  RDR_CFG7                  0x05001C

/* ***************************************************************************** */
#define  RDR_CFG8                  0x050020

/* ***************************************************************************** */
#define  RDR_CFG9                  0x050024

/* ***************************************************************************** */
#define  RDR_CFGA                  0x050028

/* ***************************************************************************** */
#define  RDR_CFGB                  0x05002C
#define  RDR_SUSSYSTEM_ID_CFG      0x05002C

/* ***************************************************************************** */
#define  RDR_CFGC                  0x050030

/* ***************************************************************************** */
#define  RDR_CFGD                  0x050034

/* ***************************************************************************** */
#define  RDR_CFGE                  0x050038

/* ***************************************************************************** */
#define  RDR_CFGF                  0x05003C

/* ***************************************************************************** */
/* PCI-Express Capabilities */
/* ***************************************************************************** */
#define  RDR_PECAP                 0x050040

/* ***************************************************************************** */
#define  RDR_PEDEVCAP              0x050044

/* ***************************************************************************** */
#define  RDR_PEDEVSC               0x050048

/* ***************************************************************************** */
#define  RDR_PELINKCAP             0x05004C

/* ***************************************************************************** */
#define  RDR_PELINKSC              0x050050

/* ***************************************************************************** */
#define  RDR_PMICAP                0x050080

/* ***************************************************************************** */
#define  RDR_PMCSR                 0x050084

/* ***************************************************************************** */
#define  RDR_VPDCAP                0x050090

/* ***************************************************************************** */
#define  RDR_VPDDATA               0x050094

/* ***************************************************************************** */
#define  RDR_MSICAP                0x0500A0

/* ***************************************************************************** */
#define  RDR_MSIARL                0x0500A4

/* ***************************************************************************** */
#define  RDR_MSIARU                0x0500A8

/* ***************************************************************************** */
#define  RDR_MSIDATA               0x0500AC

/* ***************************************************************************** */
/* PCI Express Extended Capabilities */
/* ***************************************************************************** */
#define  RDR_AERXCAP               0x050100

/* ***************************************************************************** */
#define  RDR_AERUESTA              0x050104

/* ***************************************************************************** */
#define  RDR_AERUEMSK              0x050108

/* ***************************************************************************** */
#define  RDR_AERUESEV              0x05010C

/* ***************************************************************************** */
#define  RDR_AERCESTA              0x050110

/* ***************************************************************************** */
#define  RDR_AERCEMSK              0x050114

/* ***************************************************************************** */
#define  RDR_AERCC                 0x050118

/* ***************************************************************************** */
#define  RDR_AERHL0                0x05011C

/* ***************************************************************************** */
#define  RDR_AERHL1                0x050120

/* ***************************************************************************** */
#define  RDR_AERHL2                0x050124

/* ***************************************************************************** */
#define  RDR_AERHL3                0x050128

/* ***************************************************************************** */
#define  RDR_VCXCAP                0x050200

/* ***************************************************************************** */
#define  RDR_VCCAP1                0x050204

/* ***************************************************************************** */
#define  RDR_VCCAP2                0x050208

/* ***************************************************************************** */
#define  RDR_VCSC                  0x05020C

/* ***************************************************************************** */
#define  RDR_VCR0_CAP              0x050210

/* ***************************************************************************** */
#define  RDR_VCR0_CTRL             0x050214

/* ***************************************************************************** */
#define  RDR_VCR0_STAT             0x050218

/* ***************************************************************************** */
#define  RDR_VCR1_CAP              0x05021C

/* ***************************************************************************** */
#define  RDR_VCR1_CTRL             0x050220

/* ***************************************************************************** */
#define  RDR_VCR1_STAT             0x050224

/* ***************************************************************************** */
#define  RDR_VCR2_CAP              0x050228

/* ***************************************************************************** */
#define  RDR_VCR2_CTRL             0x05022C

/* ***************************************************************************** */
#define  RDR_VCR2_STAT             0x050230

/* ***************************************************************************** */
#define  RDR_VCR3_CAP              0x050234

/* ***************************************************************************** */
#define  RDR_VCR3_CTRL             0x050238

/* ***************************************************************************** */
#define  RDR_VCR3_STAT             0x05023C

/* ***************************************************************************** */
#define  RDR_VCARB0                0x050240

/* ***************************************************************************** */
#define  RDR_VCARB1                0x050244

/* ***************************************************************************** */
#define  RDR_VCARB2                0x050248

/* ***************************************************************************** */
#define  RDR_VCARB3                0x05024C

/* ***************************************************************************** */
#define  RDR_VCARB4                0x050250

/* ***************************************************************************** */
#define  RDR_VCARB5                0x050254

/* ***************************************************************************** */
#define  RDR_VCARB6                0x050258

/* ***************************************************************************** */
#define  RDR_VCARB7                0x05025C

/* ***************************************************************************** */
#define  RDR_RDRSTAT0              0x050300

/* ***************************************************************************** */
#define  RDR_RDRSTAT1              0x050304

/* ***************************************************************************** */
#define  RDR_RDRCTL0               0x050308

/* ***************************************************************************** */
#define  RDR_RDRCTL1               0x05030C

/* ***************************************************************************** */
/* Transaction Layer Registers */
/* ***************************************************************************** */
#define  RDR_TLSTAT0               0x050310

/* ***************************************************************************** */
#define  RDR_TLSTAT1               0x050314

/* ***************************************************************************** */
#define  RDR_TLCTL0                0x050318
#define  FLD_CFG_UR_CPL_MODE       0x00000040
#define  FLD_CFG_CORR_ERR_QUITE    0x00000020
#define  FLD_CFG_RCB_CK_EN         0x00000010
#define  FLD_CFG_BNDRY_CK_EN       0x00000008
#define  FLD_CFG_BYTE_EN_CK_EN     0x00000004
#define  FLD_CFG_RELAX_ORDER_MSK   0x00000002
#define  FLD_CFG_TAG_ORDER_EN      0x00000001

/* ***************************************************************************** */
#define  RDR_TLCTL1                0x05031C

/* ***************************************************************************** */
#define  RDR_REQRCAL               0x050320

/* ***************************************************************************** */
#define  RDR_REQRCAU               0x050324

/* ***************************************************************************** */
#define  RDR_REQEPA                0x050328

/* ***************************************************************************** */
#define  RDR_REQCTRL               0x05032C

/* ***************************************************************************** */
#define  RDR_REQSTAT               0x050330

/* ***************************************************************************** */
#define  RDR_TL_TEST               0x050334

/* ***************************************************************************** */
#define  RDR_VCR01_CTL             0x050348

/* ***************************************************************************** */
#define  RDR_VCR23_CTL             0x05034C

/* ***************************************************************************** */
#define  RDR_RX_VCR0_FC            0x050350

/* ***************************************************************************** */
#define  RDR_RX_VCR1_FC            0x050354

/* ***************************************************************************** */
#define  RDR_RX_VCR2_FC            0x050358

/* ***************************************************************************** */
#define  RDR_RX_VCR3_FC            0x05035C

/* ***************************************************************************** */
/* Data Link Layer Registers */
/* ***************************************************************************** */
#define  RDR_DLLSTAT               0x050360

/* ***************************************************************************** */
#define  RDR_DLLCTRL               0x050364

/* ***************************************************************************** */
#define  RDR_REPLAYTO              0x050368

/* ***************************************************************************** */
#define  RDR_ACKLATTO              0x05036C

/* ***************************************************************************** */
/* MAC Layer Registers */
/* ***************************************************************************** */
#define  RDR_MACSTAT0              0x050380

/* ***************************************************************************** */
#define  RDR_MACSTAT1              0x050384

/* ***************************************************************************** */
#define  RDR_MACCTRL0              0x050388

/* ***************************************************************************** */
#define  RDR_MACCTRL1              0x05038C

/* ***************************************************************************** */
#define  RDR_MACCTRL2              0x050390

/* ***************************************************************************** */
#define  RDR_MAC_LB_DATA           0x050394

/* ***************************************************************************** */
#define  RDR_L0S_EXIT_LAT          0x050398

/* ***************************************************************************** */
/* DMAC */
/* ***************************************************************************** */
#define  DMA1_PTR1                 0x100000	/* DMA Current Ptr : Ch#1 */

/* ***************************************************************************** */
#define  DMA2_PTR1                 0x100004	/* DMA Current Ptr : Ch#2 */

/* ***************************************************************************** */
#define  DMA3_PTR1                 0x100008	/* DMA Current Ptr : Ch#3 */

/* ***************************************************************************** */
#define  DMA4_PTR1                 0x10000C	/* DMA Current Ptr : Ch#4 */

/* ***************************************************************************** */
#define  DMA5_PTR1                 0x100010	/* DMA Current Ptr : Ch#5 */

/* ***************************************************************************** */
#define  DMA6_PTR1                 0x100014	/* DMA Current Ptr : Ch#6 */

/* ***************************************************************************** */
#define  DMA7_PTR1                 0x100018	/* DMA Current Ptr : Ch#7 */

/* ***************************************************************************** */
#define  DMA8_PTR1                 0x10001C	/* DMA Current Ptr : Ch#8 */

/* ***************************************************************************** */
#define  DMA9_PTR1                 0x100020	/* DMA Current Ptr : Ch#9 */

/* ***************************************************************************** */
#define  DMA10_PTR1                0x100024	/* DMA Current Ptr : Ch#10 */

/* ***************************************************************************** */
#define  DMA11_PTR1                0x100028	/* DMA Current Ptr : Ch#11 */

/* ***************************************************************************** */
#define  DMA12_PTR1                0x10002C	/* DMA Current Ptr : Ch#12 */

/* ***************************************************************************** */
#define  DMA13_PTR1                0x100030	/* DMA Current Ptr : Ch#13 */

/* ***************************************************************************** */
#define  DMA14_PTR1                0x100034	/* DMA Current Ptr : Ch#14 */

/* ***************************************************************************** */
#define  DMA15_PTR1                0x100038	/* DMA Current Ptr : Ch#15 */

/* ***************************************************************************** */
#define  DMA16_PTR1                0x10003C	/* DMA Current Ptr : Ch#16 */

/* ***************************************************************************** */
#define  DMA17_PTR1                0x100040	/* DMA Current Ptr : Ch#17 */

/* ***************************************************************************** */
#define  DMA18_PTR1                0x100044	/* DMA Current Ptr : Ch#18 */

/* ***************************************************************************** */
#define  DMA19_PTR1                0x100048	/* DMA Current Ptr : Ch#19 */

/* ***************************************************************************** */
#define  DMA20_PTR1                0x10004C	/* DMA Current Ptr : Ch#20 */

/* ***************************************************************************** */
#define  DMA21_PTR1                0x100050	/* DMA Current Ptr : Ch#21 */

/* ***************************************************************************** */
#define  DMA22_PTR1                0x100054	/* DMA Current Ptr : Ch#22 */

/* ***************************************************************************** */
#define  DMA23_PTR1                0x100058	/* DMA Current Ptr : Ch#23 */

/* ***************************************************************************** */
#define  DMA24_PTR1                0x10005C	/* DMA Current Ptr : Ch#24 */

/* ***************************************************************************** */
#define  DMA25_PTR1                0x100060	/* DMA Current Ptr : Ch#25 */

/* ***************************************************************************** */
#define  DMA26_PTR1                0x100064	/* DMA Current Ptr : Ch#26 */

/* ***************************************************************************** */
#define  DMA1_PTR2                 0x100080	/* DMA Tab Ptr : Ch#1 */

/* ***************************************************************************** */
#define  DMA2_PTR2                 0x100084	/* DMA Tab Ptr : Ch#2 */

/* ***************************************************************************** */
#define  DMA3_PTR2                 0x100088	/* DMA Tab Ptr : Ch#3 */

/* ***************************************************************************** */
#define  DMA4_PTR2                 0x10008C	/* DMA Tab Ptr : Ch#4 */

/* ***************************************************************************** */
#define  DMA5_PTR2                 0x100090	/* DMA Tab Ptr : Ch#5 */

/* ***************************************************************************** */
#define  DMA6_PTR2                 0x100094	/* DMA Tab Ptr : Ch#6 */

/* ***************************************************************************** */
#define  DMA7_PTR2                 0x100098	/* DMA Tab Ptr : Ch#7 */

/* ***************************************************************************** */
#define  DMA8_PTR2                 0x10009C	/* DMA Tab Ptr : Ch#8 */

/* ***************************************************************************** */
#define  DMA9_PTR2                 0x1000A0	/* DMA Tab Ptr : Ch#9 */

/* ***************************************************************************** */
#define  DMA10_PTR2                0x1000A4	/* DMA Tab Ptr : Ch#10 */

/* ***************************************************************************** */
#define  DMA11_PTR2                0x1000A8	/* DMA Tab Ptr : Ch#11 */

/* ***************************************************************************** */
#define  DMA12_PTR2                0x1000AC	/* DMA Tab Ptr : Ch#12 */

/* ***************************************************************************** */
#define  DMA13_PTR2                0x1000B0	/* DMA Tab Ptr : Ch#13 */

/* ***************************************************************************** */
#define  DMA14_PTR2                0x1000B4	/* DMA Tab Ptr : Ch#14 */

/* ***************************************************************************** */
#define  DMA15_PTR2                0x1000B8	/* DMA Tab Ptr : Ch#15 */

/* ***************************************************************************** */
#define  DMA16_PTR2                0x1000BC	/* DMA Tab Ptr : Ch#16 */

/* ***************************************************************************** */
#define  DMA17_PTR2                0x1000C0	/* DMA Tab Ptr : Ch#17 */

/* ***************************************************************************** */
#define  DMA18_PTR2                0x1000C4	/* DMA Tab Ptr : Ch#18 */

/* ***************************************************************************** */
#define  DMA19_PTR2                0x1000C8	/* DMA Tab Ptr : Ch#19 */

/* ***************************************************************************** */
#define  DMA20_PTR2                0x1000CC	/* DMA Tab Ptr : Ch#20 */

/* ***************************************************************************** */
#define  DMA21_PTR2                0x1000D0	/* DMA Tab Ptr : Ch#21 */

/* ***************************************************************************** */
#define  DMA22_PTR2                0x1000D4	/* DMA Tab Ptr : Ch#22 */

/* ***************************************************************************** */
#define  DMA23_PTR2                0x1000D8	/* DMA Tab Ptr : Ch#23 */

/* ***************************************************************************** */
#define  DMA24_PTR2                0x1000DC	/* DMA Tab Ptr : Ch#24 */

/* ***************************************************************************** */
#define  DMA25_PTR2                0x1000E0	/* DMA Tab Ptr : Ch#25 */

/* ***************************************************************************** */
#define  DMA26_PTR2                0x1000E4	/* DMA Tab Ptr : Ch#26 */

/* ***************************************************************************** */
#define  DMA1_CNT1                 0x100100	/* DMA BuFFer Size : Ch#1 */

/* ***************************************************************************** */
#define  DMA2_CNT1                 0x100104	/* DMA BuFFer Size : Ch#2 */

/* ***************************************************************************** */
#define  DMA3_CNT1                 0x100108	/* DMA BuFFer Size : Ch#3 */

/* ***************************************************************************** */
#define  DMA4_CNT1                 0x10010C	/* DMA BuFFer Size : Ch#4 */

/* ***************************************************************************** */
#define  DMA5_CNT1                 0x100110	/* DMA BuFFer Size : Ch#5 */

/* ***************************************************************************** */
#define  DMA6_CNT1                 0x100114	/* DMA BuFFer Size : Ch#6 */

/* ***************************************************************************** */
#define  DMA7_CNT1                 0x100118	/* DMA BuFFer Size : Ch#7 */

/* ***************************************************************************** */
#define  DMA8_CNT1                 0x10011C	/* DMA BuFFer Size : Ch#8 */

/* ***************************************************************************** */
#define  DMA9_CNT1                 0x100120	/* DMA BuFFer Size : Ch#9 */

/* ***************************************************************************** */
#define  DMA10_CNT1                0x100124	/* DMA BuFFer Size : Ch#10 */

/* ***************************************************************************** */
#define  DMA11_CNT1                0x100128	/* DMA BuFFer Size : Ch#11 */

/* ***************************************************************************** */
#define  DMA12_CNT1                0x10012C	/* DMA BuFFer Size : Ch#12 */

/* ***************************************************************************** */
#define  DMA13_CNT1                0x100130	/* DMA BuFFer Size : Ch#13 */

/* ***************************************************************************** */
#define  DMA14_CNT1                0x100134	/* DMA BuFFer Size : Ch#14 */

/* ***************************************************************************** */
#define  DMA15_CNT1                0x100138	/* DMA BuFFer Size : Ch#15 */

/* ***************************************************************************** */
#define  DMA16_CNT1                0x10013C	/* DMA BuFFer Size : Ch#16 */

/* ***************************************************************************** */
#define  DMA17_CNT1                0x100140	/* DMA BuFFer Size : Ch#17 */

/* ***************************************************************************** */
#define  DMA18_CNT1                0x100144	/* DMA BuFFer Size : Ch#18 */

/* ***************************************************************************** */
#define  DMA19_CNT1                0x100148	/* DMA BuFFer Size : Ch#19 */

/* ***************************************************************************** */
#define  DMA20_CNT1                0x10014C	/* DMA BuFFer Size : Ch#20 */

/* ***************************************************************************** */
#define  DMA21_CNT1                0x100150	/* DMA BuFFer Size : Ch#21 */

/* ***************************************************************************** */
#define  DMA22_CNT1                0x100154	/* DMA BuFFer Size : Ch#22 */

/* ***************************************************************************** */
#define  DMA23_CNT1                0x100158	/* DMA BuFFer Size : Ch#23 */

/* ***************************************************************************** */
#define  DMA24_CNT1                0x10015C	/* DMA BuFFer Size : Ch#24 */

/* ***************************************************************************** */
#define  DMA25_CNT1                0x100160	/* DMA BuFFer Size : Ch#25 */

/* ***************************************************************************** */
#define  DMA26_CNT1                0x100164	/* DMA BuFFer Size : Ch#26 */

/* ***************************************************************************** */
#define  DMA1_CNT2                 0x100180	/* DMA Table Size : Ch#1 */

/* ***************************************************************************** */
#define  DMA2_CNT2                 0x100184	/* DMA Table Size : Ch#2 */

/* ***************************************************************************** */
#define  DMA3_CNT2                 0x100188	/* DMA Table Size : Ch#3 */

/* ***************************************************************************** */
#define  DMA4_CNT2                 0x10018C	/* DMA Table Size : Ch#4 */

/* ***************************************************************************** */
#define  DMA5_CNT2                 0x100190	/* DMA Table Size : Ch#5 */

/* ***************************************************************************** */
#define  DMA6_CNT2                 0x100194	/* DMA Table Size : Ch#6 */

/* ***************************************************************************** */
#define  DMA7_CNT2                 0x100198	/* DMA Table Size : Ch#7 */

/* ***************************************************************************** */
#define  DMA8_CNT2                 0x10019C	/* DMA Table Size : Ch#8 */

/* ***************************************************************************** */
#define  DMA9_CNT2                 0x1001A0	/* DMA Table Size : Ch#9 */

/* ***************************************************************************** */
#define  DMA10_CNT2                0x1001A4	/* DMA Table Size : Ch#10 */

/* ***************************************************************************** */
#define  DMA11_CNT2                0x1001A8	/* DMA Table Size : Ch#11 */

/* ***************************************************************************** */
#define  DMA12_CNT2                0x1001AC	/* DMA Table Size : Ch#12 */

/* ***************************************************************************** */
#define  DMA13_CNT2                0x1001B0	/* DMA Table Size : Ch#13 */

/* ***************************************************************************** */
#define  DMA14_CNT2                0x1001B4	/* DMA Table Size : Ch#14 */

/* ***************************************************************************** */
#define  DMA15_CNT2                0x1001B8	/* DMA Table Size : Ch#15 */

/* ***************************************************************************** */
#define  DMA16_CNT2                0x1001BC	/* DMA Table Size : Ch#16 */

/* ***************************************************************************** */
#define  DMA17_CNT2                0x1001C0	/* DMA Table Size : Ch#17 */

/* ***************************************************************************** */
#define  DMA18_CNT2                0x1001C4	/* DMA Table Size : Ch#18 */

/* ***************************************************************************** */
#define  DMA19_CNT2                0x1001C8	/* DMA Table Size : Ch#19 */

/* ***************************************************************************** */
#define  DMA20_CNT2                0x1001CC	/* DMA Table Size : Ch#20 */

/* ***************************************************************************** */
#define  DMA21_CNT2                0x1001D0	/* DMA Table Size : Ch#21 */

/* ***************************************************************************** */
#define  DMA22_CNT2                0x1001D4	/* DMA Table Size : Ch#22 */

/* ***************************************************************************** */
#define  DMA23_CNT2                0x1001D8	/* DMA Table Size : Ch#23 */

/* ***************************************************************************** */
#define  DMA24_CNT2                0x1001DC	/* DMA Table Size : Ch#24 */

/* ***************************************************************************** */
#define  DMA25_CNT2                0x1001E0	/* DMA Table Size : Ch#25 */

/* ***************************************************************************** */
#define  DMA26_CNT2                0x1001E4	/* DMA Table Size : Ch#26 */

/* ***************************************************************************** */
 /* ITG */
/* ***************************************************************************** */
#define  TM_CNT_LDW                0x110000	/* Timer : Counter low */

/* ***************************************************************************** */
#define  TM_CNT_UW                 0x110004	/* Timer : Counter high word */

/* ***************************************************************************** */
#define  TM_LMT_LDW                0x110008	/* Timer : Limit low */

/* ***************************************************************************** */
#define  TM_LMT_UW                 0x11000C	/* Timer : Limit high word */

/* ***************************************************************************** */
#define  GP0_IO                    0x110010	/* GPIO output enables data I/O */
#define  FLD_GP_OE                 0x00FF0000	/* GPIO: GP_OE output enable */
#define  FLD_GP_IN                 0x0000FF00	/* GPIO: GP_IN status */
#define  FLD_GP_OUT                0x000000FF	/* GPIO: GP_OUT control */

/* ***************************************************************************** */
#define  GPIO_ISM                  0x110014	/* GPIO interrupt sensitivity mode */
#define  FLD_GP_ISM_SNS            0x00000070
#define  FLD_GP_ISM_POL            0x00000007

/* ***************************************************************************** */
#define  SOFT_RESET                0x11001C	/* Output system reset reg */
#define  FLD_PECOS_SOFT_RESET      0x00000001

/* ***************************************************************************** */
#define  MC416_RWD                 0x110020	/* MC416 GPIO[18:3] pin */
#define  MC416_OEN                 0x110024	/* Output enable of GPIO[18:3] */
#define  MC416_CTL                 0x110028

/* ***************************************************************************** */
#define  ALT_PIN_OUT_SEL           0x11002C	/* Alternate GPIO output select */

#define  FLD_ALT_GPIO_OUT_SEL      0xF0000000
/* 0          Disabled <-- default */
/* 1          GPIO[0] */
/* 2          GPIO[10] */
/* 3          VIP_656_DATA_VAL */
/* 4          VIP_656_DATA[0] */
/* 5          VIP_656_CLK */
/* 6          VIP_656_DATA_EXT[1] */
/* 7          VIP_656_DATA_EXT[0] */
/* 8          ATT_IF */

#define  FLD_AUX_PLL_CLK_ALT_SEL   0x0F000000
/* 0          AUX_PLL_CLK<-- default */
/* 1          GPIO[2] */
/* 2          GPIO[10] */
/* 3          VIP_656_DATA_VAL */
/* 4          VIP_656_DATA[0] */
/* 5          VIP_656_CLK */
/* 6          VIP_656_DATA_EXT[1] */
/* 7          VIP_656_DATA_EXT[0] */

#define  FLD_IR_TX_ALT_SEL         0x00F00000
/* 0          IR_TX <-- default */
/* 1          GPIO[1] */
/* 2          GPIO[10] */
/* 3          VIP_656_DATA_VAL */
/* 4          VIP_656_DATA[0] */
/* 5          VIP_656_CLK */
/* 6          VIP_656_DATA_EXT[1] */
/* 7          VIP_656_DATA_EXT[0] */

#define  FLD_IR_RX_ALT_SEL         0x000F0000
/* 0          IR_RX <-- default */
/* 1          GPIO[0] */
/* 2          GPIO[10] */
/* 3          VIP_656_DATA_VAL */
/* 4          VIP_656_DATA[0] */
/* 5          VIP_656_CLK */
/* 6          VIP_656_DATA_EXT[1] */
/* 7          VIP_656_DATA_EXT[0] */

#define  FLD_GPIO10_ALT_SEL        0x0000F000
/* 0          GPIO[10] <-- default */
/* 1          GPIO[0] */
/* 2          GPIO[10] */
/* 3          VIP_656_DATA_VAL */
/* 4          VIP_656_DATA[0] */
/* 5          VIP_656_CLK */
/* 6          VIP_656_DATA_EXT[1] */
/* 7          VIP_656_DATA_EXT[0] */

#define  FLD_GPIO2_ALT_SEL         0x00000F00
/* 0          GPIO[2] <-- default */
/* 1          GPIO[1] */
/* 2          GPIO[10] */
/* 3          VIP_656_DATA_VAL */
/* 4          VIP_656_DATA[0] */
/* 5          VIP_656_CLK */
/* 6          VIP_656_DATA_EXT[1] */
/* 7          VIP_656_DATA_EXT[0] */

#define  FLD_GPIO1_ALT_SEL         0x000000F0
/* 0          GPIO[1] <-- default */
/* 1          GPIO[0] */
/* 2          GPIO[10] */
/* 3          VIP_656_DATA_VAL */
/* 4          VIP_656_DATA[0] */
/* 5          VIP_656_CLK */
/* 6          VIP_656_DATA_EXT[1] */
/* 7          VIP_656_DATA_EXT[0] */

#define  FLD_GPIO0_ALT_SEL         0x0000000F
/* 0          GPIO[0] <-- default */
/* 1          GPIO[1] */
/* 2          GPIO[10] */
/* 3          VIP_656_DATA_VAL */
/* 4          VIP_656_DATA[0] */
/* 5          VIP_656_CLK */
/* 6          VIP_656_DATA_EXT[1] */
/* 7          VIP_656_DATA_EXT[0] */

#define  ALT_PIN_IN_SEL            0x110030	/* Alternate GPIO input select */

#define  FLD_GPIO10_ALT_IN_SEL     0x0000F000
/* 0          GPIO[10] <-- default */
/* 1          IR_RX */
/* 2          IR_TX */
/* 3          AUX_PLL_CLK */
/* 4          IF_ATT_SEL */
/* 5          GPIO[0] */
/* 6          GPIO[1] */
/* 7          GPIO[2] */

#define  FLD_GPIO2_ALT_IN_SEL      0x00000F00
/* 0          GPIO[2] <-- default */
/* 1          IR_RX */
/* 2          IR_TX */
/* 3          AUX_PLL_CLK */
/* 4          IF_ATT_SEL */

#define  FLD_GPIO1_ALT_IN_SEL      0x000000F0
/* 0          GPIO[1] <-- default */
/* 1          IR_RX */
/* 2          IR_TX */
/* 3          AUX_PLL_CLK */
/* 4          IF_ATT_SEL */

#define  FLD_GPIO0_ALT_IN_SEL      0x0000000F
/* 0          GPIO[0] <-- default */
/* 1          IR_RX */
/* 2          IR_TX */
/* 3          AUX_PLL_CLK */
/* 4          IF_ATT_SEL */

/* ***************************************************************************** */
#define  TEST_BUS_CTL1             0x110040	/* Test bus control register #1 */

/* ***************************************************************************** */
#define  TEST_BUS_CTL2             0x110044	/* Test bus control register #2 */

/* ***************************************************************************** */
#define  CLK_DELAY                 0x110048	/* Clock delay */
#define  FLD_MOE_CLK_DIS           0x80000000	/* Disable MoE clock */

/* ***************************************************************************** */
#define  PAD_CTRL                  0x110068	/* Pad drive strength control */

/* ***************************************************************************** */
#define  MBIST_CTRL                0x110050	/* SRAM memory built-in self test control */

/* ***************************************************************************** */
#define  MBIST_STAT                0x110054	/* SRAM memory built-in self test status */

/* ***************************************************************************** */
/* PLL registers */
/* ***************************************************************************** */
#define  PLL_A_INT_FRAC            0x110088
#define  PLL_A_POST_STAT_BIST      0x11008C
#define  PLL_B_INT_FRAC            0x110090
#define  PLL_B_POST_STAT_BIST      0x110094
#define  PLL_C_INT_FRAC            0x110098
#define  PLL_C_POST_STAT_BIST      0x11009C
#define  PLL_D_INT_FRAC            0x1100A0
#define  PLL_D_POST_STAT_BIST      0x1100A4

#define  CLK_RST                   0x11002C
#define  FLD_VID_I_CLK_NOE         0x00001000
#define  FLD_VID_J_CLK_NOE         0x00002000
#define  FLD_USE_ALT_PLL_REF       0x00004000

#define  VID_CH_MODE_SEL           0x110078
#define  VID_CH_CLK_SEL            0x11007C

/* ***************************************************************************** */
#define  VBI_A_DMA                 0x130008	/* VBI A DMA data port */

/* ***************************************************************************** */
#define  VID_A_VIP_CTL             0x130080	/* Video A VIP format control */
#define  FLD_VIP_MODE              0x00000001

/* ***************************************************************************** */
#define  VID_A_PIXEL_FRMT          0x130084	/* Video A pixel format */
#define  FLD_VID_A_GAMMA_DIS       0x00000008
#define  FLD_VID_A_FORMAT          0x00000007
#define  FLD_VID_A_GAMMA_FACTOR    0x00000010

/* ***************************************************************************** */
#define  VID_A_VBI_CTL             0x130088	/* Video A VBI miscellaneous control */
#define  FLD_VID_A_VIP_EXT         0x00000003

/* ***************************************************************************** */
#define  VID_B_DMA                 0x130100	/* Video B DMA data port */

/* ***************************************************************************** */
#define  VBI_B_DMA                 0x130108	/* VBI B DMA data port */

/* ***************************************************************************** */
#define  VID_B_SRC_SEL             0x130144	/* Video B source select */
#define  FLD_VID_B_SRC_SEL         0x00000000

/* ***************************************************************************** */
#define  VID_B_LNGTH               0x130150	/* Video B line length */
#define  FLD_VID_B_LN_LNGTH        0x00000FFF

/* ***************************************************************************** */
#define  VID_B_VIP_CTL             0x130180	/* Video B VIP format control */

/* ***************************************************************************** */
#define  VID_B_PIXEL_FRMT          0x130184	/* Video B pixel format */
#define  FLD_VID_B_GAMMA_DIS       0x00000008
#define  FLD_VID_B_FORMAT          0x00000007
#define  FLD_VID_B_GAMMA_FACTOR    0x00000010

/* ***************************************************************************** */
#define  VID_C_DMA                 0x130200	/* Video C DMA data port */

/* ***************************************************************************** */
#define  VID_C_LNGTH               0x130250	/* Video C line length */
#define  FLD_VID_C_LN_LNGTH        0x00000FFF

/* ***************************************************************************** */
/* Video Destination Channels */
/* ***************************************************************************** */

#define  VID_DST_A_GPCNT           0x130020	/* Video A general purpose counter */
#define  VID_DST_B_GPCNT           0x130120	/* Video B general purpose counter */
#define  VID_DST_C_GPCNT           0x130220	/* Video C general purpose counter */
#define  VID_DST_D_GPCNT           0x130320	/* Video D general purpose counter */
#define  VID_DST_E_GPCNT           0x130420	/* Video E general purpose counter */
#define  VID_DST_F_GPCNT           0x130520	/* Video F general purpose counter */
#define  VID_DST_G_GPCNT           0x130620	/* Video G general purpose counter */
#define  VID_DST_H_GPCNT           0x130720	/* Video H general purpose counter */

/* ***************************************************************************** */

#define  VID_DST_A_GPCNT_CTL       0x130030	/* Video A general purpose control */
#define  VID_DST_B_GPCNT_CTL       0x130130	/* Video B general purpose control */
#define  VID_DST_C_GPCNT_CTL       0x130230	/* Video C general purpose control */
#define  VID_DST_D_GPCNT_CTL       0x130330	/* Video D general purpose control */
#define  VID_DST_E_GPCNT_CTL       0x130430	/* Video E general purpose control */
#define  VID_DST_F_GPCNT_CTL       0x130530	/* Video F general purpose control */
#define  VID_DST_G_GPCNT_CTL       0x130630	/* Video G general purpose control */
#define  VID_DST_H_GPCNT_CTL       0x130730	/* Video H general purpose control */

/* ***************************************************************************** */

#define  VID_DST_A_DMA_CTL         0x130040	/* Video A DMA control */
#define  VID_DST_B_DMA_CTL         0x130140	/* Video B DMA control */
#define  VID_DST_C_DMA_CTL         0x130240	/* Video C DMA control */
#define  VID_DST_D_DMA_CTL         0x130340	/* Video D DMA control */
#define  VID_DST_E_DMA_CTL         0x130440	/* Video E DMA control */
#define  VID_DST_F_DMA_CTL         0x130540	/* Video F DMA control */
#define  VID_DST_G_DMA_CTL         0x130640	/* Video G DMA control */
#define  VID_DST_H_DMA_CTL         0x130740	/* Video H DMA control */

#define  FLD_VID_RISC_EN           0x00000010
#define  FLD_VID_FIFO_EN           0x00000001

/* ***************************************************************************** */

#define  VID_DST_A_VIP_CTL         0x130080	/* Video A VIP control */
#define  VID_DST_B_VIP_CTL         0x130180	/* Video B VIP control */
#define  VID_DST_C_VIP_CTL         0x130280	/* Video C VIP control */
#define  VID_DST_D_VIP_CTL         0x130380	/* Video D VIP control */
#define  VID_DST_E_VIP_CTL         0x130480	/* Video E VIP control */
#define  VID_DST_F_VIP_CTL         0x130580	/* Video F VIP control */
#define  VID_DST_G_VIP_CTL         0x130680	/* Video G VIP control */
#define  VID_DST_H_VIP_CTL         0x130780	/* Video H VIP control */

/* ***************************************************************************** */

#define  VID_DST_A_PIX_FRMT        0x130084	/* Video A Pixel format */
#define  VID_DST_B_PIX_FRMT        0x130184	/* Video B Pixel format */
#define  VID_DST_C_PIX_FRMT        0x130284	/* Video C Pixel format */
#define  VID_DST_D_PIX_FRMT        0x130384	/* Video D Pixel format */
#define  VID_DST_E_PIX_FRMT        0x130484	/* Video E Pixel format */
#define  VID_DST_F_PIX_FRMT        0x130584	/* Video F Pixel format */
#define  VID_DST_G_PIX_FRMT        0x130684	/* Video G Pixel format */
#define  VID_DST_H_PIX_FRMT        0x130784	/* Video H Pixel format */

/* ***************************************************************************** */
/* Video Source Channels */
/* ***************************************************************************** */

#define  VID_SRC_A_GPCNT_CTL       0x130804	/* Video A general purpose control */
#define  VID_SRC_B_GPCNT_CTL       0x130904	/* Video B general purpose control */
#define  VID_SRC_C_GPCNT_CTL       0x130A04	/* Video C general purpose control */
#define  VID_SRC_D_GPCNT_CTL       0x130B04	/* Video D general purpose control */
#define  VID_SRC_E_GPCNT_CTL       0x130C04	/* Video E general purpose control */
#define  VID_SRC_F_GPCNT_CTL       0x130D04	/* Video F general purpose control */
#define  VID_SRC_I_GPCNT_CTL       0x130E04	/* Video I general purpose control */
#define  VID_SRC_J_GPCNT_CTL       0x130F04	/* Video J general purpose control */

/* ***************************************************************************** */

#define  VID_SRC_A_GPCNT           0x130808	/* Video A general purpose counter */
#define  VID_SRC_B_GPCNT           0x130908	/* Video B general purpose counter */
#define  VID_SRC_C_GPCNT           0x130A08	/* Video C general purpose counter */
#define  VID_SRC_D_GPCNT           0x130B08	/* Video D general purpose counter */
#define  VID_SRC_E_GPCNT           0x130C08	/* Video E general purpose counter */
#define  VID_SRC_F_GPCNT           0x130D08	/* Video F general purpose counter */
#define  VID_SRC_I_GPCNT           0x130E08	/* Video I general purpose counter */
#define  VID_SRC_J_GPCNT           0x130F08	/* Video J general purpose counter */

/* ***************************************************************************** */

#define  VID_SRC_A_DMA_CTL         0x13080C	/* Video A DMA control */
#define  VID_SRC_B_DMA_CTL         0x13090C	/* Video B DMA control */
#define  VID_SRC_C_DMA_CTL         0x130A0C	/* Video C DMA control */
#define  VID_SRC_D_DMA_CTL         0x130B0C	/* Video D DMA control */
#define  VID_SRC_E_DMA_CTL         0x130C0C	/* Video E DMA control */
#define  VID_SRC_F_DMA_CTL         0x130D0C	/* Video F DMA control */
#define  VID_SRC_I_DMA_CTL         0x130E0C	/* Video I DMA control */
#define  VID_SRC_J_DMA_CTL         0x130F0C	/* Video J DMA control */

#define  FLD_APB_RISC_EN           0x00000010
#define  FLD_APB_FIFO_EN           0x00000001

/* ***************************************************************************** */

#define  VID_SRC_A_FMT_CTL         0x130810	/* Video A format control */
#define  VID_SRC_B_FMT_CTL         0x130910	/* Video B format control */
#define  VID_SRC_C_FMT_CTL         0x130A10	/* Video C format control */
#define  VID_SRC_D_FMT_CTL         0x130B10	/* Video D format control */
#define  VID_SRC_E_FMT_CTL         0x130C10	/* Video E format control */
#define  VID_SRC_F_FMT_CTL         0x130D10	/* Video F format control */
#define  VID_SRC_I_FMT_CTL         0x130E10	/* Video I format control */
#define  VID_SRC_J_FMT_CTL         0x130F10	/* Video J format control */

/* ***************************************************************************** */

#define  VID_SRC_A_ACTIVE_CTL1     0x130814	/* Video A active control      1 */
#define  VID_SRC_B_ACTIVE_CTL1     0x130914	/* Video B active control      1 */
#define  VID_SRC_C_ACTIVE_CTL1     0x130A14	/* Video C active control      1 */
#define  VID_SRC_D_ACTIVE_CTL1     0x130B14	/* Video D active control      1 */
#define  VID_SRC_E_ACTIVE_CTL1     0x130C14	/* Video E active control      1 */
#define  VID_SRC_F_ACTIVE_CTL1     0x130D14	/* Video F active control      1 */
#define  VID_SRC_I_ACTIVE_CTL1     0x130E14	/* Video I active control      1 */
#define  VID_SRC_J_ACTIVE_CTL1     0x130F14	/* Video J active control      1 */

/* ***************************************************************************** */

#define  VID_SRC_A_ACTIVE_CTL2     0x130818	/* Video A active control      2 */
#define  VID_SRC_B_ACTIVE_CTL2     0x130918	/* Video B active control      2 */
#define  VID_SRC_C_ACTIVE_CTL2     0x130A18	/* Video C active control      2 */
#define  VID_SRC_D_ACTIVE_CTL2     0x130B18	/* Video D active control      2 */
#define  VID_SRC_E_ACTIVE_CTL2     0x130C18	/* Video E active control      2 */
#define  VID_SRC_F_ACTIVE_CTL2     0x130D18	/* Video F active control      2 */
#define  VID_SRC_I_ACTIVE_CTL2     0x130E18	/* Video I active control      2 */
#define  VID_SRC_J_ACTIVE_CTL2     0x130F18	/* Video J active control      2 */

/* ***************************************************************************** */

#define  VID_SRC_A_CDT_SZ          0x13081C	/* Video A CDT size */
#define  VID_SRC_B_CDT_SZ          0x13091C	/* Video B CDT size */
#define  VID_SRC_C_CDT_SZ          0x130A1C	/* Video C CDT size */
#define  VID_SRC_D_CDT_SZ          0x130B1C	/* Video D CDT size */
#define  VID_SRC_E_CDT_SZ          0x130C1C	/* Video E CDT size */
#define  VID_SRC_F_CDT_SZ          0x130D1C	/* Video F CDT size */
#define  VID_SRC_I_CDT_SZ          0x130E1C	/* Video I CDT size */
#define  VID_SRC_J_CDT_SZ          0x130F1C	/* Video J CDT size */

/* ***************************************************************************** */
/* Audio I/F */
/* ***************************************************************************** */
#define  AUD_DST_A_DMA             0x140000	/* Audio Int A DMA data port */
#define  AUD_SRC_A_DMA             0x140008	/* Audio Int A DMA data port */

#define  AUD_A_GPCNT               0x140010	/* Audio Int A gp counter */
#define  FLD_AUD_A_GP_CNT          0x0000FFFF

#define  AUD_A_GPCNT_CTL           0x140014	/* Audio Int A gp control */

#define  AUD_A_LNGTH               0x140018	/* Audio Int A line length */

#define  AUD_A_CFG                 0x14001C	/* Audio Int A configuration */

/* ***************************************************************************** */
#define  AUD_DST_B_DMA             0x140100	/* Audio Int B DMA data port */
#define  AUD_SRC_B_DMA             0x140108	/* Audio Int B DMA data port */

#define  AUD_B_GPCNT               0x140110	/* Audio Int B gp counter */
#define  FLD_AUD_B_GP_CNT          0x0000FFFF

#define  AUD_B_GPCNT_CTL           0x140114	/* Audio Int B gp control */

#define  AUD_B_LNGTH               0x140118	/* Audio Int B line length */

#define  AUD_B_CFG                 0x14011C	/* Audio Int B configuration */

/* ***************************************************************************** */
#define  AUD_DST_C_DMA             0x140200	/* Audio Int C DMA data port */
#define  AUD_SRC_C_DMA             0x140208	/* Audio Int C DMA data port */

#define  AUD_C_GPCNT               0x140210	/* Audio Int C gp counter */
#define  FLD_AUD_C_GP_CNT          0x0000FFFF

#define  AUD_C_GPCNT_CTL           0x140214	/* Audio Int C gp control */

#define  AUD_C_LNGTH               0x140218	/* Audio Int C line length */

#define  AUD_C_CFG                 0x14021C	/* Audio Int C configuration */

/* ***************************************************************************** */
#define  AUD_DST_D_DMA             0x140300	/* Audio Int D DMA data port */
#define  AUD_SRC_D_DMA             0x140308	/* Audio Int D DMA data port */

#define  AUD_D_GPCNT               0x140310	/* Audio Int D gp counter */
#define  FLD_AUD_D_GP_CNT          0x0000FFFF

#define  AUD_D_GPCNT_CTL           0x140314	/* Audio Int D gp control */

#define  AUD_D_LNGTH               0x140318	/* Audio Int D line length */

#define  AUD_D_CFG                 0x14031C	/* Audio Int D configuration */

/* ***************************************************************************** */
#define  AUD_SRC_E_DMA             0x140400	/* Audio Int E DMA data port */

#define  AUD_E_GPCNT               0x140410	/* Audio Int E gp counter */
#define  FLD_AUD_E_GP_CNT          0x0000FFFF

#define  AUD_E_GPCNT_CTL           0x140414	/* Audio Int E gp control */

#define  AUD_E_CFG                 0x14041C	/* Audio Int E configuration */

/* ***************************************************************************** */

#define  FLD_AUD_DST_LN_LNGTH      0x00000FFF

#define  FLD_AUD_DST_PK_MODE       0x00004000

#define  FLD_AUD_CLK_ENABLE        0x00000200

#define  FLD_AUD_MASTER_MODE       0x00000002

#define  FLD_AUD_SONY_MODE         0x00000001

#define  FLD_AUD_CLK_SELECT_PLL_D  0x00001800

#define  FLD_AUD_DST_ENABLE        0x00020000

#define  FLD_AUD_SRC_ENABLE        0x00010000

/* ***************************************************************************** */
#define  AUD_INT_DMA_CTL           0x140500	/* Audio Int DMA control */

#define  FLD_AUD_SRC_E_RISC_EN     0x00008000
#define  FLD_AUD_SRC_C_RISC_EN     0x00004000
#define  FLD_AUD_SRC_B_RISC_EN     0x00002000
#define  FLD_AUD_SRC_A_RISC_EN     0x00001000

#define  FLD_AUD_DST_D_RISC_EN     0x00000800
#define  FLD_AUD_DST_C_RISC_EN     0x00000400
#define  FLD_AUD_DST_B_RISC_EN     0x00000200
#define  FLD_AUD_DST_A_RISC_EN     0x00000100

#define  FLD_AUD_SRC_E_FIFO_EN     0x00000080
#define  FLD_AUD_SRC_C_FIFO_EN     0x00000040
#define  FLD_AUD_SRC_B_FIFO_EN     0x00000020
#define  FLD_AUD_SRC_A_FIFO_EN     0x00000010

#define  FLD_AUD_DST_D_FIFO_EN     0x00000008
#define  FLD_AUD_DST_C_FIFO_EN     0x00000004
#define  FLD_AUD_DST_B_FIFO_EN     0x00000002
#define  FLD_AUD_DST_A_FIFO_EN     0x00000001

/* ***************************************************************************** */
/*  */
/* Mobilygen Interface Registers */
/*  */
/* ***************************************************************************** */
/* Mobilygen Interface A */
/* ***************************************************************************** */
#define  MB_IF_A_DMA               0x150000	/* MBIF A DMA data port */
#define  MB_IF_A_GPCN              0x150008	/* MBIF A GP counter */
#define  MB_IF_A_GPCN_CTRL         0x15000C
#define  MB_IF_A_DMA_CTRL          0x150010
#define  MB_IF_A_LENGTH            0x150014
#define  MB_IF_A_HDMA_XFER_SZ      0x150018
#define  MB_IF_A_HCMD              0x15001C
#define  MB_IF_A_HCONFIG           0x150020
#define  MB_IF_A_DATA_STRUCT_0     0x150024
#define  MB_IF_A_DATA_STRUCT_1     0x150028
#define  MB_IF_A_DATA_STRUCT_2     0x15002C
#define  MB_IF_A_DATA_STRUCT_3     0x150030
#define  MB_IF_A_DATA_STRUCT_4     0x150034
#define  MB_IF_A_DATA_STRUCT_5     0x150038
#define  MB_IF_A_DATA_STRUCT_6     0x15003C
#define  MB_IF_A_DATA_STRUCT_7     0x150040
#define  MB_IF_A_DATA_STRUCT_8     0x150044
#define  MB_IF_A_DATA_STRUCT_9     0x150048
#define  MB_IF_A_DATA_STRUCT_A     0x15004C
#define  MB_IF_A_DATA_STRUCT_B     0x150050
#define  MB_IF_A_DATA_STRUCT_C     0x150054
#define  MB_IF_A_DATA_STRUCT_D     0x150058
#define  MB_IF_A_DATA_STRUCT_E     0x15005C
#define  MB_IF_A_DATA_STRUCT_F     0x150060
/* ***************************************************************************** */
/* Mobilygen Interface B */
/* ***************************************************************************** */
#define  MB_IF_B_DMA               0x160000	/* MBIF A DMA data port */
#define  MB_IF_B_GPCN              0x160008	/* MBIF A GP counter */
#define  MB_IF_B_GPCN_CTRL         0x16000C
#define  MB_IF_B_DMA_CTRL          0x160010
#define  MB_IF_B_LENGTH            0x160014
#define  MB_IF_B_HDMA_XFER_SZ      0x160018
#define  MB_IF_B_HCMD              0x16001C
#define  MB_IF_B_HCONFIG           0x160020
#define  MB_IF_B_DATA_STRUCT_0     0x160024
#define  MB_IF_B_DATA_STRUCT_1     0x160028
#define  MB_IF_B_DATA_STRUCT_2     0x16002C
#define  MB_IF_B_DATA_STRUCT_3     0x160030
#define  MB_IF_B_DATA_STRUCT_4     0x160034
#define  MB_IF_B_DATA_STRUCT_5     0x160038
#define  MB_IF_B_DATA_STRUCT_6     0x16003C
#define  MB_IF_B_DATA_STRUCT_7     0x160040
#define  MB_IF_B_DATA_STRUCT_8     0x160044
#define  MB_IF_B_DATA_STRUCT_9     0x160048
#define  MB_IF_B_DATA_STRUCT_A     0x16004C
#define  MB_IF_B_DATA_STRUCT_B     0x160050
#define  MB_IF_B_DATA_STRUCT_C     0x160054
#define  MB_IF_B_DATA_STRUCT_D     0x160058
#define  MB_IF_B_DATA_STRUCT_E     0x16005C
#define  MB_IF_B_DATA_STRUCT_F     0x160060

/* MB_DMA_CTRL */
#define  FLD_MB_IF_RISC_EN         0x00000010
#define  FLD_MB_IF_FIFO_EN         0x00000001

/* MB_LENGTH */
#define  FLD_MB_IF_LN_LNGTH        0x00000FFF

/* MB_HCMD register */
#define  FLD_MB_HCMD_H_GO          0x80000000
#define  FLD_MB_HCMD_H_BUSY        0x40000000
#define  FLD_MB_HCMD_H_DMA_HOLD    0x10000000
#define  FLD_MB_HCMD_H_DMA_BUSY    0x08000000
#define  FLD_MB_HCMD_H_DMA_TYPE    0x04000000
#define  FLD_MB_HCMD_H_DMA_XACT    0x02000000
#define  FLD_MB_HCMD_H_RW_N        0x01000000
#define  FLD_MB_HCMD_H_ADDR        0x00FF0000
#define  FLD_MB_HCMD_H_DATA        0x0000FFFF

/* ***************************************************************************** */
/* I2C #1 */
/* ***************************************************************************** */
#define  I2C1_ADDR                 0x180000	/* I2C #1 address */
#define  FLD_I2C_DADDR             0xfe000000	/* RW [31:25] I2C Device Address */
						 /* RO [24] reserved */
/* ***************************************************************************** */
#define  FLD_I2C_SADDR             0x00FFFFFF	/* RW [23:0]  I2C Sub-address */

/* ***************************************************************************** */
#define  I2C1_WDATA                0x180004	/* I2C #1 write data */
#define  FLD_I2C_WDATA             0xFFFFFFFF	/* RW [31:0] */

/* ***************************************************************************** */
#define  I2C1_CTRL                 0x180008	/* I2C #1 control */
#define  FLD_I2C_PERIOD            0xFF000000	/* RW [31:24] */
#define  FLD_I2C_SCL_IN            0x00200000	/* RW [21] */
#define  FLD_I2C_SDA_IN            0x00100000	/* RW [20] */
						 /* RO [19:18] reserved */
#define  FLD_I2C_SCL_OUT           0x00020000	/* RW [17] */
#define  FLD_I2C_SDA_OUT           0x00010000	/* RW [16] */
						 /* RO [15] reserved */
#define  FLD_I2C_DATA_LEN          0x00007000	/* RW [14:12] */
#define  FLD_I2C_SADDR_INC         0x00000800	/* RW [11] */
						 /* RO [10:9] reserved */
#define  FLD_I2C_SADDR_LEN         0x00000300	/* RW [9:8] */
						 /* RO [7:6] reserved */
#define  FLD_I2C_SOFT              0x00000020	/* RW [5] */
#define  FLD_I2C_NOSTOP            0x00000010	/* RW [4] */
#define  FLD_I2C_EXTEND            0x00000008	/* RW [3] */
#define  FLD_I2C_SYNC              0x00000004	/* RW [2] */
#define  FLD_I2C_READ_SA           0x00000002	/* RW [1] */
#define  FLD_I2C_READ_WRN          0x00000001	/* RW [0] */

/* ***************************************************************************** */
#define  I2C1_RDATA                0x18000C	/* I2C #1 read data */
#define  FLD_I2C_RDATA             0xFFFFFFFF	/* RO [31:0] */

/* ***************************************************************************** */
#define  I2C1_STAT                 0x180010	/* I2C #1 status */
#define  FLD_I2C_XFER_IN_PROG      0x00000002	/* RO [1] */
#define  FLD_I2C_RACK              0x00000001	/* RO [0] */

/* ***************************************************************************** */
/* I2C #2 */
/* ***************************************************************************** */
#define  I2C2_ADDR                 0x190000	/* I2C #2 address */

/* ***************************************************************************** */
#define  I2C2_WDATA                0x190004	/* I2C #2 write data */

/* ***************************************************************************** */
#define  I2C2_CTRL                 0x190008	/* I2C #2 control */

/* ***************************************************************************** */
#define  I2C2_RDATA                0x19000C	/* I2C #2 read data */

/* ***************************************************************************** */
#define  I2C2_STAT                 0x190010	/* I2C #2 status */

/* ***************************************************************************** */
/* I2C #3 */
/* ***************************************************************************** */
#define  I2C3_ADDR                 0x1A0000	/* I2C #3 address */

/* ***************************************************************************** */
#define  I2C3_WDATA                0x1A0004	/* I2C #3 write data */

/* ***************************************************************************** */
#define  I2C3_CTRL                 0x1A0008	/* I2C #3 control */

/* ***************************************************************************** */
#define  I2C3_RDATA                0x1A000C	/* I2C #3 read data */

/* ***************************************************************************** */
#define  I2C3_STAT                 0x1A0010	/* I2C #3 status */

/* ***************************************************************************** */
/* UART */
/* ***************************************************************************** */
#define  UART_CTL                  0x1B0000	/* UART Control Register */
#define  FLD_LOOP_BACK_EN          (1 << 7)	/* RW field - default 0 */
#define  FLD_RX_TRG_SZ             (3 << 2)	/* RW field - default 0 */
#define  FLD_RX_EN                 (1 << 1)	/* RW field - default 0 */
#define  FLD_TX_EN                 (1 << 0)	/* RW field - default 0 */

/* ***************************************************************************** */
#define  UART_BRD                  0x1B0004	/* UART Baud Rate Divisor */
#define  FLD_BRD                   0x0000FFFF	/* RW field - default 0x197 */

/* ***************************************************************************** */
#define  UART_DBUF                 0x1B0008	/* UART Tx/Rx Data BuFFer */
#define  FLD_DB                    0xFFFFFFFF	/* RW field - default 0 */

/* ***************************************************************************** */
#define  UART_ISR                  0x1B000C	/* UART Interrupt Status */
#define  FLD_RXD_TIMEOUT_EN        (1 << 7)	/* RW field - default 0 */
#define  FLD_FRM_ERR_EN            (1 << 6)	/* RW field - default 0 */
#define  FLD_RXD_RDY_EN            (1 << 5)	/* RW field - default 0 */
#define  FLD_TXD_EMPTY_EN          (1 << 4)	/* RW field - default 0 */
#define  FLD_RXD_OVERFLOW          (1 << 3)	/* RW field - default 0 */
#define  FLD_FRM_ERR               (1 << 2)	/* RW field - default 0 */
#define  FLD_RXD_RDY               (1 << 1)	/* RW field - default 0 */
#define  FLD_TXD_EMPTY             (1 << 0)	/* RW field - default 0 */

/* ***************************************************************************** */
#define  UART_CNT                  0x1B0010	/* UART Tx/Rx FIFO Byte Count */
#define  FLD_TXD_CNT               (0x1F << 8)	/* RW field - default 0 */
#define  FLD_RXD_CNT               (0x1F << 0)	/* RW field - default 0 */

/* ***************************************************************************** */
/* Motion Detection */
#define  MD_CH0_GRID_BLOCK_YCNT    0x170014
#define  MD_CH1_GRID_BLOCK_YCNT    0x170094
#define  MD_CH2_GRID_BLOCK_YCNT    0x170114
#define  MD_CH3_GRID_BLOCK_YCNT    0x170194
#define  MD_CH4_GRID_BLOCK_YCNT    0x170214
#define  MD_CH5_GRID_BLOCK_YCNT    0x170294
#define  MD_CH6_GRID_BLOCK_YCNT    0x170314
#define  MD_CH7_GRID_BLOCK_YCNT    0x170394

#define PIXEL_FRMT_422    4
#define PIXEL_FRMT_411    5
#define PIXEL_FRMT_Y8     6

#define PIXEL_ENGINE_VIP1 0
#define PIXEL_ENGINE_VIP2 1

#endif /* Athena_REGISTERS */
