162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Driver for the Conexant CX23885 PCIe bridge 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org> 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef _CX23885_REG_H_ 962306a36Sopenharmony_ci#define _CX23885_REG_H_ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/* 1262306a36Sopenharmony_ciAddress Map 1362306a36Sopenharmony_ci0x00000000 -> 0x00009000 TX SRAM (Fifos) 1462306a36Sopenharmony_ci0x00010000 -> 0x00013c00 RX SRAM CMDS + CDT 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciEACH CMDS struct is 0x80 bytes long 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciDMAx_PTR1 = 0x03040 address of first cluster 1962306a36Sopenharmony_ciDMAx_PTR2 = 0x10600 address of the CDT 2062306a36Sopenharmony_ciDMAx_CNT1 = cluster size in (bytes >> 4) -1 2162306a36Sopenharmony_ciDMAx_CNT2 = total cdt size for all entries >> 3 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciCluster Descriptor entry = 4 DWORDS 2462306a36Sopenharmony_ci DWORD 0 -> ptr to cluster 2562306a36Sopenharmony_ci DWORD 1 Reserved 2662306a36Sopenharmony_ci DWORD 2 Reserved 2762306a36Sopenharmony_ci DWORD 3 Reserved 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ciChannel manager Data Structure entry = 20 DWORD 3062306a36Sopenharmony_ci 0 IntialProgramCounterLow 3162306a36Sopenharmony_ci 1 IntialProgramCounterHigh 3262306a36Sopenharmony_ci 2 ClusterDescriptorTableBase 3362306a36Sopenharmony_ci 3 ClusterDescriptorTableSize 3462306a36Sopenharmony_ci 4 InstructionQueueBase 3562306a36Sopenharmony_ci 5 InstructionQueueSize 3662306a36Sopenharmony_ci... Reserved 3762306a36Sopenharmony_ci 19 Reserved 3862306a36Sopenharmony_ci*/ 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci/* Risc Instructions */ 4162306a36Sopenharmony_ci#define RISC_CNT_INC 0x00010000 4262306a36Sopenharmony_ci#define RISC_CNT_RESET 0x00030000 4362306a36Sopenharmony_ci#define RISC_IRQ1 0x01000000 4462306a36Sopenharmony_ci#define RISC_IRQ2 0x02000000 4562306a36Sopenharmony_ci#define RISC_EOL 0x04000000 4662306a36Sopenharmony_ci#define RISC_SOL 0x08000000 4762306a36Sopenharmony_ci#define RISC_WRITE 0x10000000 4862306a36Sopenharmony_ci#define RISC_SKIP 0x20000000 4962306a36Sopenharmony_ci#define RISC_JUMP 0x70000000 5062306a36Sopenharmony_ci#define RISC_SYNC 0x80000000 5162306a36Sopenharmony_ci#define RISC_RESYNC 0x80008000 5262306a36Sopenharmony_ci#define RISC_READ 0x90000000 5362306a36Sopenharmony_ci#define RISC_WRITERM 0xB0000000 5462306a36Sopenharmony_ci#define RISC_WRITECM 0xC0000000 5562306a36Sopenharmony_ci#define RISC_WRITECR 0xD0000000 5662306a36Sopenharmony_ci#define RISC_WRITEC 0x50000000 5762306a36Sopenharmony_ci#define RISC_READC 0xA0000000 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci/* Audio and Video Core */ 6162306a36Sopenharmony_ci#define HOST_REG1 0x00000000 6262306a36Sopenharmony_ci#define HOST_REG2 0x00000001 6362306a36Sopenharmony_ci#define HOST_REG3 0x00000002 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci/* Chip Configuration Registers */ 6662306a36Sopenharmony_ci#define CHIP_CTRL 0x00000100 6762306a36Sopenharmony_ci#define AFE_CTRL 0x00000104 6862306a36Sopenharmony_ci#define VID_PLL_INT_POST 0x00000108 6962306a36Sopenharmony_ci#define VID_PLL_FRAC 0x0000010C 7062306a36Sopenharmony_ci#define AUX_PLL_INT_POST 0x00000110 7162306a36Sopenharmony_ci#define AUX_PLL_FRAC 0x00000114 7262306a36Sopenharmony_ci#define SYS_PLL_INT_POST 0x00000118 7362306a36Sopenharmony_ci#define SYS_PLL_FRAC 0x0000011C 7462306a36Sopenharmony_ci#define PIN_CTRL 0x00000120 7562306a36Sopenharmony_ci#define AUD_IO_CTRL 0x00000124 7662306a36Sopenharmony_ci#define AUD_LOCK1 0x00000128 7762306a36Sopenharmony_ci#define AUD_LOCK2 0x0000012C 7862306a36Sopenharmony_ci#define POWER_CTRL 0x00000130 7962306a36Sopenharmony_ci#define AFE_DIAG_CTRL1 0x00000134 8062306a36Sopenharmony_ci#define AFE_DIAG_CTRL3 0x0000013C 8162306a36Sopenharmony_ci#define PLL_DIAG_CTRL 0x00000140 8262306a36Sopenharmony_ci#define AFE_CLK_OUT_CTRL 0x00000144 8362306a36Sopenharmony_ci#define DLL1_DIAG_CTRL 0x0000015C 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci/* GPIO[23:19] Output Enable */ 8662306a36Sopenharmony_ci#define GPIO2_OUT_EN_REG 0x00000160 8762306a36Sopenharmony_ci/* GPIO[23:19] Data Registers */ 8862306a36Sopenharmony_ci#define GPIO2 0x00000164 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci#define IFADC_CTRL 0x00000180 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci/* Infrared Remote Registers */ 9362306a36Sopenharmony_ci#define IR_CNTRL_REG 0x00000200 9462306a36Sopenharmony_ci#define IR_TXCLK_REG 0x00000204 9562306a36Sopenharmony_ci#define IR_RXCLK_REG 0x00000208 9662306a36Sopenharmony_ci#define IR_CDUTY_REG 0x0000020C 9762306a36Sopenharmony_ci#define IR_STAT_REG 0x00000210 9862306a36Sopenharmony_ci#define IR_IRQEN_REG 0x00000214 9962306a36Sopenharmony_ci#define IR_FILTR_REG 0x00000218 10062306a36Sopenharmony_ci#define IR_FIFO_REG 0x0000023C 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci/* Video Decoder Registers */ 10362306a36Sopenharmony_ci#define MODE_CTRL 0x00000400 10462306a36Sopenharmony_ci#define OUT_CTRL1 0x00000404 10562306a36Sopenharmony_ci#define OUT_CTRL2 0x00000408 10662306a36Sopenharmony_ci#define GEN_STAT 0x0000040C 10762306a36Sopenharmony_ci#define INT_STAT_MASK 0x00000410 10862306a36Sopenharmony_ci#define LUMA_CTRL 0x00000414 10962306a36Sopenharmony_ci#define HSCALE_CTRL 0x00000418 11062306a36Sopenharmony_ci#define VSCALE_CTRL 0x0000041C 11162306a36Sopenharmony_ci#define CHROMA_CTRL 0x00000420 11262306a36Sopenharmony_ci#define VBI_LINE_CTRL1 0x00000424 11362306a36Sopenharmony_ci#define VBI_LINE_CTRL2 0x00000428 11462306a36Sopenharmony_ci#define VBI_LINE_CTRL3 0x0000042C 11562306a36Sopenharmony_ci#define VBI_LINE_CTRL4 0x00000430 11662306a36Sopenharmony_ci#define VBI_LINE_CTRL5 0x00000434 11762306a36Sopenharmony_ci#define VBI_FC_CFG 0x00000438 11862306a36Sopenharmony_ci#define VBI_MISC_CFG1 0x0000043C 11962306a36Sopenharmony_ci#define VBI_MISC_CFG2 0x00000440 12062306a36Sopenharmony_ci#define VBI_PAY1 0x00000444 12162306a36Sopenharmony_ci#define VBI_PAY2 0x00000448 12262306a36Sopenharmony_ci#define VBI_CUST1_CFG1 0x0000044C 12362306a36Sopenharmony_ci#define VBI_CUST1_CFG2 0x00000450 12462306a36Sopenharmony_ci#define VBI_CUST1_CFG3 0x00000454 12562306a36Sopenharmony_ci#define VBI_CUST2_CFG1 0x00000458 12662306a36Sopenharmony_ci#define VBI_CUST2_CFG2 0x0000045C 12762306a36Sopenharmony_ci#define VBI_CUST2_CFG3 0x00000460 12862306a36Sopenharmony_ci#define VBI_CUST3_CFG1 0x00000464 12962306a36Sopenharmony_ci#define VBI_CUST3_CFG2 0x00000468 13062306a36Sopenharmony_ci#define VBI_CUST3_CFG3 0x0000046C 13162306a36Sopenharmony_ci#define HORIZ_TIM_CTRL 0x00000470 13262306a36Sopenharmony_ci#define VERT_TIM_CTRL 0x00000474 13362306a36Sopenharmony_ci#define SRC_COMB_CFG 0x00000478 13462306a36Sopenharmony_ci#define CHROMA_VBIOFF_CFG 0x0000047C 13562306a36Sopenharmony_ci#define FIELD_COUNT 0x00000480 13662306a36Sopenharmony_ci#define MISC_TIM_CTRL 0x00000484 13762306a36Sopenharmony_ci#define DFE_CTRL1 0x00000488 13862306a36Sopenharmony_ci#define DFE_CTRL2 0x0000048C 13962306a36Sopenharmony_ci#define DFE_CTRL3 0x00000490 14062306a36Sopenharmony_ci#define PLL_CTRL 0x00000494 14162306a36Sopenharmony_ci#define HTL_CTRL 0x00000498 14262306a36Sopenharmony_ci#define COMB_CTRL 0x0000049C 14362306a36Sopenharmony_ci#define CRUSH_CTRL 0x000004A0 14462306a36Sopenharmony_ci#define SOFT_RST_CTRL 0x000004A4 14562306a36Sopenharmony_ci#define CX885_VERSION 0x000004B4 14662306a36Sopenharmony_ci#define VBI_PASS_CTRL 0x000004BC 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci/* Audio Decoder Registers */ 14962306a36Sopenharmony_ci/* 8051 Configuration */ 15062306a36Sopenharmony_ci#define DL_CTL 0x00000800 15162306a36Sopenharmony_ci#define STD_DET_STATUS 0x00000804 15262306a36Sopenharmony_ci#define STD_DET_CTL 0x00000808 15362306a36Sopenharmony_ci#define DW8051_INT 0x0000080C 15462306a36Sopenharmony_ci#define GENERAL_CTL 0x00000810 15562306a36Sopenharmony_ci#define AAGC_CTL 0x00000814 15662306a36Sopenharmony_ci#define DEMATRIX_CTL 0x000008CC 15762306a36Sopenharmony_ci#define PATH1_CTL1 0x000008D0 15862306a36Sopenharmony_ci#define PATH1_VOL_CTL 0x000008D4 15962306a36Sopenharmony_ci#define PATH1_EQ_CTL 0x000008D8 16062306a36Sopenharmony_ci#define PATH1_SC_CTL 0x000008DC 16162306a36Sopenharmony_ci#define PATH2_CTL1 0x000008E0 16262306a36Sopenharmony_ci#define PATH2_VOL_CTL 0x000008E4 16362306a36Sopenharmony_ci#define PATH2_EQ_CTL 0x000008E8 16462306a36Sopenharmony_ci#define PATH2_SC_CTL 0x000008EC 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci/* Sample Rate Converter */ 16762306a36Sopenharmony_ci#define SRC_CTL 0x000008F0 16862306a36Sopenharmony_ci#define SRC_LF_COEF 0x000008F4 16962306a36Sopenharmony_ci#define SRC1_CTL 0x000008F8 17062306a36Sopenharmony_ci#define SRC2_CTL 0x000008FC 17162306a36Sopenharmony_ci#define SRC3_CTL 0x00000900 17262306a36Sopenharmony_ci#define SRC4_CTL 0x00000904 17362306a36Sopenharmony_ci#define SRC5_CTL 0x00000908 17462306a36Sopenharmony_ci#define SRC6_CTL 0x0000090C 17562306a36Sopenharmony_ci#define BAND_OUT_SEL 0x00000910 17662306a36Sopenharmony_ci#define I2S_N_CTL 0x00000914 17762306a36Sopenharmony_ci#define I2S_OUT_CTL 0x00000918 17862306a36Sopenharmony_ci#define AUTOCONFIG_REG 0x000009C4 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci/* Audio ADC Registers */ 18162306a36Sopenharmony_ci#define DSM_CTRL1 0x00000000 18262306a36Sopenharmony_ci#define DSM_CTRL2 0x00000001 18362306a36Sopenharmony_ci#define CHP_EN_CTRL 0x00000002 18462306a36Sopenharmony_ci#define CHP_CLK_CTRL1 0x00000004 18562306a36Sopenharmony_ci#define CHP_CLK_CTRL2 0x00000005 18662306a36Sopenharmony_ci#define BG_REF_CTRL 0x00000006 18762306a36Sopenharmony_ci#define SD2_SW_CTRL1 0x00000008 18862306a36Sopenharmony_ci#define SD2_SW_CTRL2 0x00000009 18962306a36Sopenharmony_ci#define SD2_BIAS_CTRL 0x0000000A 19062306a36Sopenharmony_ci#define AMP_BIAS_CTRL 0x0000000C 19162306a36Sopenharmony_ci#define CH_PWR_CTRL1 0x0000000E 19262306a36Sopenharmony_ci#define FLD_CH_SEL (1 << 3) 19362306a36Sopenharmony_ci#define CH_PWR_CTRL2 0x0000000F 19462306a36Sopenharmony_ci#define DSM_STATUS1 0x00000010 19562306a36Sopenharmony_ci#define DSM_STATUS2 0x00000011 19662306a36Sopenharmony_ci#define DIG_CTL1 0x00000012 19762306a36Sopenharmony_ci#define DIG_CTL2 0x00000013 19862306a36Sopenharmony_ci#define I2S_TX_CFG 0x0000001A 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci#define DEV_CNTRL2 0x00040000 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci#define PCI_MSK_IR (1 << 28) 20362306a36Sopenharmony_ci#define PCI_MSK_AV_CORE (1 << 27) 20462306a36Sopenharmony_ci#define PCI_MSK_GPIO1 (1 << 24) 20562306a36Sopenharmony_ci#define PCI_MSK_GPIO0 (1 << 23) 20662306a36Sopenharmony_ci#define PCI_MSK_APB_DMA (1 << 12) 20762306a36Sopenharmony_ci#define PCI_MSK_AL_WR (1 << 11) 20862306a36Sopenharmony_ci#define PCI_MSK_AL_RD (1 << 10) 20962306a36Sopenharmony_ci#define PCI_MSK_RISC_WR (1 << 9) 21062306a36Sopenharmony_ci#define PCI_MSK_RISC_RD (1 << 8) 21162306a36Sopenharmony_ci#define PCI_MSK_AUD_EXT (1 << 4) 21262306a36Sopenharmony_ci#define PCI_MSK_AUD_INT (1 << 3) 21362306a36Sopenharmony_ci#define PCI_MSK_VID_C (1 << 2) 21462306a36Sopenharmony_ci#define PCI_MSK_VID_B (1 << 1) 21562306a36Sopenharmony_ci#define PCI_MSK_VID_A 1 21662306a36Sopenharmony_ci#define PCI_INT_MSK 0x00040010 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci#define PCI_INT_STAT 0x00040014 21962306a36Sopenharmony_ci#define PCI_INT_MSTAT 0x00040018 22062306a36Sopenharmony_ci 22162306a36Sopenharmony_ci#define VID_A_INT_MSK 0x00040020 22262306a36Sopenharmony_ci#define VID_A_INT_STAT 0x00040024 22362306a36Sopenharmony_ci#define VID_A_INT_MSTAT 0x00040028 22462306a36Sopenharmony_ci#define VID_A_INT_SSTAT 0x0004002C 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci#define VID_B_INT_MSK 0x00040030 22762306a36Sopenharmony_ci#define VID_B_MSK_BAD_PKT (1 << 20) 22862306a36Sopenharmony_ci#define VID_B_MSK_VBI_OPC_ERR (1 << 17) 22962306a36Sopenharmony_ci#define VID_B_MSK_OPC_ERR (1 << 16) 23062306a36Sopenharmony_ci#define VID_B_MSK_VBI_SYNC (1 << 13) 23162306a36Sopenharmony_ci#define VID_B_MSK_SYNC (1 << 12) 23262306a36Sopenharmony_ci#define VID_B_MSK_VBI_OF (1 << 9) 23362306a36Sopenharmony_ci#define VID_B_MSK_OF (1 << 8) 23462306a36Sopenharmony_ci#define VID_B_MSK_VBI_RISCI2 (1 << 5) 23562306a36Sopenharmony_ci#define VID_B_MSK_RISCI2 (1 << 4) 23662306a36Sopenharmony_ci#define VID_B_MSK_VBI_RISCI1 (1 << 1) 23762306a36Sopenharmony_ci#define VID_B_MSK_RISCI1 1 23862306a36Sopenharmony_ci#define VID_B_INT_STAT 0x00040034 23962306a36Sopenharmony_ci#define VID_B_INT_MSTAT 0x00040038 24062306a36Sopenharmony_ci#define VID_B_INT_SSTAT 0x0004003C 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ci#define VID_B_MSK_BAD_PKT (1 << 20) 24362306a36Sopenharmony_ci#define VID_B_MSK_OPC_ERR (1 << 16) 24462306a36Sopenharmony_ci#define VID_B_MSK_SYNC (1 << 12) 24562306a36Sopenharmony_ci#define VID_B_MSK_OF (1 << 8) 24662306a36Sopenharmony_ci#define VID_B_MSK_RISCI2 (1 << 4) 24762306a36Sopenharmony_ci#define VID_B_MSK_RISCI1 1 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ci#define VID_C_MSK_BAD_PKT (1 << 20) 25062306a36Sopenharmony_ci#define VID_C_MSK_OPC_ERR (1 << 16) 25162306a36Sopenharmony_ci#define VID_C_MSK_SYNC (1 << 12) 25262306a36Sopenharmony_ci#define VID_C_MSK_OF (1 << 8) 25362306a36Sopenharmony_ci#define VID_C_MSK_RISCI2 (1 << 4) 25462306a36Sopenharmony_ci#define VID_C_MSK_RISCI1 1 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci/* A superset for testing purposes */ 25762306a36Sopenharmony_ci#define VID_BC_MSK_BAD_PKT (1 << 20) 25862306a36Sopenharmony_ci#define VID_BC_MSK_OPC_ERR (1 << 16) 25962306a36Sopenharmony_ci#define VID_BC_MSK_SYNC (1 << 12) 26062306a36Sopenharmony_ci#define VID_BC_MSK_OF (1 << 8) 26162306a36Sopenharmony_ci#define VID_BC_MSK_VBI_RISCI2 (1 << 5) 26262306a36Sopenharmony_ci#define VID_BC_MSK_RISCI2 (1 << 4) 26362306a36Sopenharmony_ci#define VID_BC_MSK_VBI_RISCI1 (1 << 1) 26462306a36Sopenharmony_ci#define VID_BC_MSK_RISCI1 1 26562306a36Sopenharmony_ci 26662306a36Sopenharmony_ci#define VID_C_INT_MSK 0x00040040 26762306a36Sopenharmony_ci#define VID_C_INT_STAT 0x00040044 26862306a36Sopenharmony_ci#define VID_C_INT_MSTAT 0x00040048 26962306a36Sopenharmony_ci#define VID_C_INT_SSTAT 0x0004004C 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ci#define AUDIO_INT_INT_MSK 0x00040050 27262306a36Sopenharmony_ci#define AUDIO_INT_INT_STAT 0x00040054 27362306a36Sopenharmony_ci#define AUDIO_INT_INT_MSTAT 0x00040058 27462306a36Sopenharmony_ci#define AUDIO_INT_INT_SSTAT 0x0004005C 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ci#define AUDIO_EXT_INT_MSK 0x00040060 27762306a36Sopenharmony_ci#define AUDIO_EXT_INT_STAT 0x00040064 27862306a36Sopenharmony_ci#define AUDIO_EXT_INT_MSTAT 0x00040068 27962306a36Sopenharmony_ci#define AUDIO_EXT_INT_SSTAT 0x0004006C 28062306a36Sopenharmony_ci 28162306a36Sopenharmony_ci/* Bits [7:0] set in both TC_REQ and TC_REQ_SET 28262306a36Sopenharmony_ci * indicate a stall in the RISC engine for a 28362306a36Sopenharmony_ci * particular rider traffic class. This causes 28462306a36Sopenharmony_ci * the 885 and 888 bridges (unknown about 887) 28562306a36Sopenharmony_ci * to become inoperable. Setting bits in 28662306a36Sopenharmony_ci * TC_REQ_SET resets the corresponding bits 28762306a36Sopenharmony_ci * in TC_REQ (and TC_REQ_SET) allowing 28862306a36Sopenharmony_ci * operation to continue. 28962306a36Sopenharmony_ci */ 29062306a36Sopenharmony_ci#define TC_REQ 0x00040090 29162306a36Sopenharmony_ci#define TC_REQ_SET 0x00040094 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci#define RDR_CFG0 0x00050000 29462306a36Sopenharmony_ci#define RDR_CFG1 0x00050004 29562306a36Sopenharmony_ci#define RDR_CFG2 0x00050008 29662306a36Sopenharmony_ci#define RDR_RDRCTL1 0x0005030c 29762306a36Sopenharmony_ci#define RDR_TLCTL0 0x00050318 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci/* APB DMAC Current Buffer Pointer */ 30062306a36Sopenharmony_ci#define DMA1_PTR1 0x00100000 30162306a36Sopenharmony_ci#define DMA2_PTR1 0x00100004 30262306a36Sopenharmony_ci#define DMA3_PTR1 0x00100008 30362306a36Sopenharmony_ci#define DMA4_PTR1 0x0010000C 30462306a36Sopenharmony_ci#define DMA5_PTR1 0x00100010 30562306a36Sopenharmony_ci#define DMA6_PTR1 0x00100014 30662306a36Sopenharmony_ci#define DMA7_PTR1 0x00100018 30762306a36Sopenharmony_ci#define DMA8_PTR1 0x0010001C 30862306a36Sopenharmony_ci 30962306a36Sopenharmony_ci/* APB DMAC Current Table Pointer */ 31062306a36Sopenharmony_ci#define DMA1_PTR2 0x00100040 31162306a36Sopenharmony_ci#define DMA2_PTR2 0x00100044 31262306a36Sopenharmony_ci#define DMA3_PTR2 0x00100048 31362306a36Sopenharmony_ci#define DMA4_PTR2 0x0010004C 31462306a36Sopenharmony_ci#define DMA5_PTR2 0x00100050 31562306a36Sopenharmony_ci#define DMA6_PTR2 0x00100054 31662306a36Sopenharmony_ci#define DMA7_PTR2 0x00100058 31762306a36Sopenharmony_ci#define DMA8_PTR2 0x0010005C 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ci/* APB DMAC Buffer Limit */ 32062306a36Sopenharmony_ci#define DMA1_CNT1 0x00100080 32162306a36Sopenharmony_ci#define DMA2_CNT1 0x00100084 32262306a36Sopenharmony_ci#define DMA3_CNT1 0x00100088 32362306a36Sopenharmony_ci#define DMA4_CNT1 0x0010008C 32462306a36Sopenharmony_ci#define DMA5_CNT1 0x00100090 32562306a36Sopenharmony_ci#define DMA6_CNT1 0x00100094 32662306a36Sopenharmony_ci#define DMA7_CNT1 0x00100098 32762306a36Sopenharmony_ci#define DMA8_CNT1 0x0010009C 32862306a36Sopenharmony_ci 32962306a36Sopenharmony_ci/* APB DMAC Table Size */ 33062306a36Sopenharmony_ci#define DMA1_CNT2 0x001000C0 33162306a36Sopenharmony_ci#define DMA2_CNT2 0x001000C4 33262306a36Sopenharmony_ci#define DMA3_CNT2 0x001000C8 33362306a36Sopenharmony_ci#define DMA4_CNT2 0x001000CC 33462306a36Sopenharmony_ci#define DMA5_CNT2 0x001000D0 33562306a36Sopenharmony_ci#define DMA6_CNT2 0x001000D4 33662306a36Sopenharmony_ci#define DMA7_CNT2 0x001000D8 33762306a36Sopenharmony_ci#define DMA8_CNT2 0x001000DC 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci/* Timer Counters */ 34062306a36Sopenharmony_ci#define TM_CNT_LDW 0x00110000 34162306a36Sopenharmony_ci#define TM_CNT_UW 0x00110004 34262306a36Sopenharmony_ci#define TM_LMT_LDW 0x00110008 34362306a36Sopenharmony_ci#define TM_LMT_UW 0x0011000C 34462306a36Sopenharmony_ci 34562306a36Sopenharmony_ci/* GPIO */ 34662306a36Sopenharmony_ci#define GP0_IO 0x00110010 34762306a36Sopenharmony_ci#define GPIO_ISM 0x00110014 34862306a36Sopenharmony_ci#define SOFT_RESET 0x0011001C 34962306a36Sopenharmony_ci 35062306a36Sopenharmony_ci/* GPIO (417 Microsoftcontroller) RW Data */ 35162306a36Sopenharmony_ci#define MC417_RWD 0x00110020 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci/* GPIO (417 Microsoftcontroller) Output Enable, Low Active */ 35462306a36Sopenharmony_ci#define MC417_OEN 0x00110024 35562306a36Sopenharmony_ci#define MC417_CTL 0x00110028 35662306a36Sopenharmony_ci#define ALT_PIN_OUT_SEL 0x0011002C 35762306a36Sopenharmony_ci#define CLK_DELAY 0x00110048 35862306a36Sopenharmony_ci#define PAD_CTRL 0x0011004C 35962306a36Sopenharmony_ci 36062306a36Sopenharmony_ci/* Video A Interface */ 36162306a36Sopenharmony_ci#define VID_A_GPCNT 0x00130020 36262306a36Sopenharmony_ci#define VBI_A_GPCNT 0x00130024 36362306a36Sopenharmony_ci#define VID_A_GPCNT_CTL 0x00130030 36462306a36Sopenharmony_ci#define VBI_A_GPCNT_CTL 0x00130034 36562306a36Sopenharmony_ci#define VID_A_DMA_CTL 0x00130040 36662306a36Sopenharmony_ci#define VID_A_VIP_CTRL 0x00130080 36762306a36Sopenharmony_ci#define VID_A_PIXEL_FRMT 0x00130084 36862306a36Sopenharmony_ci#define VID_A_VBI_CTRL 0x00130088 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_ci/* Video B Interface */ 37162306a36Sopenharmony_ci#define VID_B_DMA 0x00130100 37262306a36Sopenharmony_ci#define VBI_B_DMA 0x00130108 37362306a36Sopenharmony_ci#define VID_B_GPCNT 0x00130120 37462306a36Sopenharmony_ci#define VBI_B_GPCNT 0x00130124 37562306a36Sopenharmony_ci#define VID_B_GPCNT_CTL 0x00130134 37662306a36Sopenharmony_ci#define VBI_B_GPCNT_CTL 0x00130138 37762306a36Sopenharmony_ci#define VID_B_DMA_CTL 0x00130140 37862306a36Sopenharmony_ci#define VID_B_SRC_SEL 0x00130144 37962306a36Sopenharmony_ci#define VID_B_LNGTH 0x00130150 38062306a36Sopenharmony_ci#define VID_B_HW_SOP_CTL 0x00130154 38162306a36Sopenharmony_ci#define VID_B_GEN_CTL 0x00130158 38262306a36Sopenharmony_ci#define VID_B_BD_PKT_STATUS 0x0013015C 38362306a36Sopenharmony_ci#define VID_B_SOP_STATUS 0x00130160 38462306a36Sopenharmony_ci#define VID_B_FIFO_OVFL_STAT 0x00130164 38562306a36Sopenharmony_ci#define VID_B_VLD_MISC 0x00130168 38662306a36Sopenharmony_ci#define VID_B_TS_CLK_EN 0x0013016C 38762306a36Sopenharmony_ci#define VID_B_VIP_CTRL 0x00130180 38862306a36Sopenharmony_ci#define VID_B_PIXEL_FRMT 0x00130184 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ci/* Video C Interface */ 39162306a36Sopenharmony_ci#define VID_C_DMA 0x00130200 39262306a36Sopenharmony_ci#define VBI_C_DMA 0x00130208 39362306a36Sopenharmony_ci#define VID_C_GPCNT 0x00130220 39462306a36Sopenharmony_ci#define VID_C_GPCNT_CTL 0x00130230 39562306a36Sopenharmony_ci#define VBI_C_GPCNT_CTL 0x00130234 39662306a36Sopenharmony_ci#define VID_C_DMA_CTL 0x00130240 39762306a36Sopenharmony_ci#define VID_C_LNGTH 0x00130250 39862306a36Sopenharmony_ci#define VID_C_HW_SOP_CTL 0x00130254 39962306a36Sopenharmony_ci#define VID_C_GEN_CTL 0x00130258 40062306a36Sopenharmony_ci#define VID_C_BD_PKT_STATUS 0x0013025C 40162306a36Sopenharmony_ci#define VID_C_SOP_STATUS 0x00130260 40262306a36Sopenharmony_ci#define VID_C_FIFO_OVFL_STAT 0x00130264 40362306a36Sopenharmony_ci#define VID_C_VLD_MISC 0x00130268 40462306a36Sopenharmony_ci#define VID_C_TS_CLK_EN 0x0013026C 40562306a36Sopenharmony_ci 40662306a36Sopenharmony_ci/* Internal Audio Interface */ 40762306a36Sopenharmony_ci#define AUD_INT_A_GPCNT 0x00140020 40862306a36Sopenharmony_ci#define AUD_INT_B_GPCNT 0x00140024 40962306a36Sopenharmony_ci#define AUD_INT_A_GPCNT_CTL 0x00140030 41062306a36Sopenharmony_ci#define AUD_INT_B_GPCNT_CTL 0x00140034 41162306a36Sopenharmony_ci#define AUD_INT_DMA_CTL 0x00140040 41262306a36Sopenharmony_ci#define AUD_INT_A_LNGTH 0x00140050 41362306a36Sopenharmony_ci#define AUD_INT_B_LNGTH 0x00140054 41462306a36Sopenharmony_ci#define AUD_INT_A_MODE 0x00140058 41562306a36Sopenharmony_ci#define AUD_INT_B_MODE 0x0014005C 41662306a36Sopenharmony_ci 41762306a36Sopenharmony_ci/* External Audio Interface */ 41862306a36Sopenharmony_ci#define AUD_EXT_DMA 0x00140100 41962306a36Sopenharmony_ci#define AUD_EXT_GPCNT 0x00140120 42062306a36Sopenharmony_ci#define AUD_EXT_GPCNT_CTL 0x00140130 42162306a36Sopenharmony_ci#define AUD_EXT_DMA_CTL 0x00140140 42262306a36Sopenharmony_ci#define AUD_EXT_LNGTH 0x00140150 42362306a36Sopenharmony_ci#define AUD_EXT_A_MODE 0x00140158 42462306a36Sopenharmony_ci 42562306a36Sopenharmony_ci/* I2C Bus 1 */ 42662306a36Sopenharmony_ci#define I2C1_ADDR 0x00180000 42762306a36Sopenharmony_ci#define I2C1_WDATA 0x00180004 42862306a36Sopenharmony_ci#define I2C1_CTRL 0x00180008 42962306a36Sopenharmony_ci#define I2C1_RDATA 0x0018000C 43062306a36Sopenharmony_ci#define I2C1_STAT 0x00180010 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ci/* I2C Bus 2 */ 43362306a36Sopenharmony_ci#define I2C2_ADDR 0x00190000 43462306a36Sopenharmony_ci#define I2C2_WDATA 0x00190004 43562306a36Sopenharmony_ci#define I2C2_CTRL 0x00190008 43662306a36Sopenharmony_ci#define I2C2_RDATA 0x0019000C 43762306a36Sopenharmony_ci#define I2C2_STAT 0x00190010 43862306a36Sopenharmony_ci 43962306a36Sopenharmony_ci/* I2C Bus 3 */ 44062306a36Sopenharmony_ci#define I2C3_ADDR 0x001A0000 44162306a36Sopenharmony_ci#define I2C3_WDATA 0x001A0004 44262306a36Sopenharmony_ci#define I2C3_CTRL 0x001A0008 44362306a36Sopenharmony_ci#define I2C3_RDATA 0x001A000C 44462306a36Sopenharmony_ci#define I2C3_STAT 0x001A0010 44562306a36Sopenharmony_ci 44662306a36Sopenharmony_ci/* UART */ 44762306a36Sopenharmony_ci#define UART_CTL 0x001B0000 44862306a36Sopenharmony_ci#define UART_BRD 0x001B0004 44962306a36Sopenharmony_ci#define UART_ISR 0x001B000C 45062306a36Sopenharmony_ci#define UART_CNT 0x001B0010 45162306a36Sopenharmony_ci 45262306a36Sopenharmony_ci#endif /* _CX23885_REG_H_ */ 453