xref: /OK3568_Linux_fs/kernel/drivers/media/pci/cx23885/cx23885-reg.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  *  Driver for the Conexant CX23885 PCIe bridge
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  *  Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef _CX23885_REG_H_
9*4882a593Smuzhiyun #define _CX23885_REG_H_
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun /*
12*4882a593Smuzhiyun Address Map
13*4882a593Smuzhiyun 0x00000000 -> 0x00009000   TX SRAM  (Fifos)
14*4882a593Smuzhiyun 0x00010000 -> 0x00013c00   RX SRAM  CMDS + CDT
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun EACH CMDS struct is 0x80 bytes long
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun DMAx_PTR1 = 0x03040 address of first cluster
19*4882a593Smuzhiyun DMAx_PTR2 = 0x10600 address of the CDT
20*4882a593Smuzhiyun DMAx_CNT1 = cluster size in (bytes >> 4) -1
21*4882a593Smuzhiyun DMAx_CNT2 = total cdt size for all entries >> 3
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun Cluster Descriptor entry = 4 DWORDS
24*4882a593Smuzhiyun  DWORD 0 -> ptr to cluster
25*4882a593Smuzhiyun  DWORD 1 Reserved
26*4882a593Smuzhiyun  DWORD 2 Reserved
27*4882a593Smuzhiyun  DWORD 3 Reserved
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun Channel manager Data Structure entry = 20 DWORD
30*4882a593Smuzhiyun   0  IntialProgramCounterLow
31*4882a593Smuzhiyun   1  IntialProgramCounterHigh
32*4882a593Smuzhiyun   2  ClusterDescriptorTableBase
33*4882a593Smuzhiyun   3  ClusterDescriptorTableSize
34*4882a593Smuzhiyun   4  InstructionQueueBase
35*4882a593Smuzhiyun   5  InstructionQueueSize
36*4882a593Smuzhiyun ...  Reserved
37*4882a593Smuzhiyun  19  Reserved
38*4882a593Smuzhiyun */
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun /* Risc Instructions */
41*4882a593Smuzhiyun #define RISC_CNT_INC		 0x00010000
42*4882a593Smuzhiyun #define RISC_CNT_RESET		 0x00030000
43*4882a593Smuzhiyun #define RISC_IRQ1		 0x01000000
44*4882a593Smuzhiyun #define RISC_IRQ2		 0x02000000
45*4882a593Smuzhiyun #define RISC_EOL		 0x04000000
46*4882a593Smuzhiyun #define RISC_SOL		 0x08000000
47*4882a593Smuzhiyun #define RISC_WRITE		 0x10000000
48*4882a593Smuzhiyun #define RISC_SKIP		 0x20000000
49*4882a593Smuzhiyun #define RISC_JUMP		 0x70000000
50*4882a593Smuzhiyun #define RISC_SYNC		 0x80000000
51*4882a593Smuzhiyun #define RISC_RESYNC		 0x80008000
52*4882a593Smuzhiyun #define RISC_READ		 0x90000000
53*4882a593Smuzhiyun #define RISC_WRITERM		 0xB0000000
54*4882a593Smuzhiyun #define RISC_WRITECM		 0xC0000000
55*4882a593Smuzhiyun #define RISC_WRITECR		 0xD0000000
56*4882a593Smuzhiyun #define RISC_WRITEC		 0x50000000
57*4882a593Smuzhiyun #define RISC_READC		 0xA0000000
58*4882a593Smuzhiyun 
59*4882a593Smuzhiyun 
60*4882a593Smuzhiyun /* Audio and Video Core */
61*4882a593Smuzhiyun #define HOST_REG1		0x00000000
62*4882a593Smuzhiyun #define HOST_REG2		0x00000001
63*4882a593Smuzhiyun #define HOST_REG3		0x00000002
64*4882a593Smuzhiyun 
65*4882a593Smuzhiyun /* Chip Configuration Registers */
66*4882a593Smuzhiyun #define CHIP_CTRL		0x00000100
67*4882a593Smuzhiyun #define AFE_CTRL		0x00000104
68*4882a593Smuzhiyun #define VID_PLL_INT_POST	0x00000108
69*4882a593Smuzhiyun #define VID_PLL_FRAC		0x0000010C
70*4882a593Smuzhiyun #define AUX_PLL_INT_POST	0x00000110
71*4882a593Smuzhiyun #define AUX_PLL_FRAC		0x00000114
72*4882a593Smuzhiyun #define SYS_PLL_INT_POST	0x00000118
73*4882a593Smuzhiyun #define SYS_PLL_FRAC		0x0000011C
74*4882a593Smuzhiyun #define PIN_CTRL		0x00000120
75*4882a593Smuzhiyun #define AUD_IO_CTRL		0x00000124
76*4882a593Smuzhiyun #define AUD_LOCK1		0x00000128
77*4882a593Smuzhiyun #define AUD_LOCK2		0x0000012C
78*4882a593Smuzhiyun #define POWER_CTRL		0x00000130
79*4882a593Smuzhiyun #define AFE_DIAG_CTRL1		0x00000134
80*4882a593Smuzhiyun #define AFE_DIAG_CTRL3		0x0000013C
81*4882a593Smuzhiyun #define PLL_DIAG_CTRL		0x00000140
82*4882a593Smuzhiyun #define AFE_CLK_OUT_CTRL	0x00000144
83*4882a593Smuzhiyun #define DLL1_DIAG_CTRL		0x0000015C
84*4882a593Smuzhiyun 
85*4882a593Smuzhiyun /* GPIO[23:19] Output Enable */
86*4882a593Smuzhiyun #define GPIO2_OUT_EN_REG	0x00000160
87*4882a593Smuzhiyun /* GPIO[23:19] Data Registers */
88*4882a593Smuzhiyun #define GPIO2			0x00000164
89*4882a593Smuzhiyun 
90*4882a593Smuzhiyun #define IFADC_CTRL		0x00000180
91*4882a593Smuzhiyun 
92*4882a593Smuzhiyun /* Infrared Remote Registers */
93*4882a593Smuzhiyun #define IR_CNTRL_REG	0x00000200
94*4882a593Smuzhiyun #define IR_TXCLK_REG	0x00000204
95*4882a593Smuzhiyun #define IR_RXCLK_REG	0x00000208
96*4882a593Smuzhiyun #define IR_CDUTY_REG	0x0000020C
97*4882a593Smuzhiyun #define IR_STAT_REG	0x00000210
98*4882a593Smuzhiyun #define IR_IRQEN_REG	0x00000214
99*4882a593Smuzhiyun #define IR_FILTR_REG	0x00000218
100*4882a593Smuzhiyun #define IR_FIFO_REG	0x0000023C
101*4882a593Smuzhiyun 
102*4882a593Smuzhiyun /* Video Decoder Registers */
103*4882a593Smuzhiyun #define MODE_CTRL		0x00000400
104*4882a593Smuzhiyun #define OUT_CTRL1		0x00000404
105*4882a593Smuzhiyun #define OUT_CTRL2		0x00000408
106*4882a593Smuzhiyun #define GEN_STAT		0x0000040C
107*4882a593Smuzhiyun #define INT_STAT_MASK		0x00000410
108*4882a593Smuzhiyun #define LUMA_CTRL		0x00000414
109*4882a593Smuzhiyun #define HSCALE_CTRL		0x00000418
110*4882a593Smuzhiyun #define VSCALE_CTRL		0x0000041C
111*4882a593Smuzhiyun #define CHROMA_CTRL		0x00000420
112*4882a593Smuzhiyun #define VBI_LINE_CTRL1		0x00000424
113*4882a593Smuzhiyun #define VBI_LINE_CTRL2		0x00000428
114*4882a593Smuzhiyun #define VBI_LINE_CTRL3		0x0000042C
115*4882a593Smuzhiyun #define VBI_LINE_CTRL4		0x00000430
116*4882a593Smuzhiyun #define VBI_LINE_CTRL5		0x00000434
117*4882a593Smuzhiyun #define VBI_FC_CFG		0x00000438
118*4882a593Smuzhiyun #define VBI_MISC_CFG1		0x0000043C
119*4882a593Smuzhiyun #define VBI_MISC_CFG2		0x00000440
120*4882a593Smuzhiyun #define VBI_PAY1		0x00000444
121*4882a593Smuzhiyun #define VBI_PAY2		0x00000448
122*4882a593Smuzhiyun #define VBI_CUST1_CFG1		0x0000044C
123*4882a593Smuzhiyun #define VBI_CUST1_CFG2		0x00000450
124*4882a593Smuzhiyun #define VBI_CUST1_CFG3		0x00000454
125*4882a593Smuzhiyun #define VBI_CUST2_CFG1		0x00000458
126*4882a593Smuzhiyun #define VBI_CUST2_CFG2		0x0000045C
127*4882a593Smuzhiyun #define VBI_CUST2_CFG3		0x00000460
128*4882a593Smuzhiyun #define VBI_CUST3_CFG1		0x00000464
129*4882a593Smuzhiyun #define VBI_CUST3_CFG2		0x00000468
130*4882a593Smuzhiyun #define VBI_CUST3_CFG3		0x0000046C
131*4882a593Smuzhiyun #define HORIZ_TIM_CTRL		0x00000470
132*4882a593Smuzhiyun #define VERT_TIM_CTRL		0x00000474
133*4882a593Smuzhiyun #define SRC_COMB_CFG		0x00000478
134*4882a593Smuzhiyun #define CHROMA_VBIOFF_CFG	0x0000047C
135*4882a593Smuzhiyun #define FIELD_COUNT		0x00000480
136*4882a593Smuzhiyun #define MISC_TIM_CTRL		0x00000484
137*4882a593Smuzhiyun #define DFE_CTRL1		0x00000488
138*4882a593Smuzhiyun #define DFE_CTRL2		0x0000048C
139*4882a593Smuzhiyun #define DFE_CTRL3		0x00000490
140*4882a593Smuzhiyun #define PLL_CTRL		0x00000494
141*4882a593Smuzhiyun #define HTL_CTRL		0x00000498
142*4882a593Smuzhiyun #define COMB_CTRL		0x0000049C
143*4882a593Smuzhiyun #define CRUSH_CTRL		0x000004A0
144*4882a593Smuzhiyun #define SOFT_RST_CTRL		0x000004A4
145*4882a593Smuzhiyun #define CX885_VERSION		0x000004B4
146*4882a593Smuzhiyun #define VBI_PASS_CTRL		0x000004BC
147*4882a593Smuzhiyun 
148*4882a593Smuzhiyun /* Audio Decoder Registers */
149*4882a593Smuzhiyun /* 8051 Configuration */
150*4882a593Smuzhiyun #define DL_CTL		0x00000800
151*4882a593Smuzhiyun #define STD_DET_STATUS	0x00000804
152*4882a593Smuzhiyun #define STD_DET_CTL	0x00000808
153*4882a593Smuzhiyun #define DW8051_INT	0x0000080C
154*4882a593Smuzhiyun #define GENERAL_CTL	0x00000810
155*4882a593Smuzhiyun #define AAGC_CTL	0x00000814
156*4882a593Smuzhiyun #define DEMATRIX_CTL	0x000008CC
157*4882a593Smuzhiyun #define PATH1_CTL1	0x000008D0
158*4882a593Smuzhiyun #define PATH1_VOL_CTL	0x000008D4
159*4882a593Smuzhiyun #define PATH1_EQ_CTL	0x000008D8
160*4882a593Smuzhiyun #define PATH1_SC_CTL	0x000008DC
161*4882a593Smuzhiyun #define PATH2_CTL1	0x000008E0
162*4882a593Smuzhiyun #define PATH2_VOL_CTL	0x000008E4
163*4882a593Smuzhiyun #define PATH2_EQ_CTL	0x000008E8
164*4882a593Smuzhiyun #define PATH2_SC_CTL	0x000008EC
165*4882a593Smuzhiyun 
166*4882a593Smuzhiyun /* Sample Rate Converter */
167*4882a593Smuzhiyun #define SRC_CTL		0x000008F0
168*4882a593Smuzhiyun #define SRC_LF_COEF	0x000008F4
169*4882a593Smuzhiyun #define SRC1_CTL	0x000008F8
170*4882a593Smuzhiyun #define SRC2_CTL	0x000008FC
171*4882a593Smuzhiyun #define SRC3_CTL	0x00000900
172*4882a593Smuzhiyun #define SRC4_CTL	0x00000904
173*4882a593Smuzhiyun #define SRC5_CTL	0x00000908
174*4882a593Smuzhiyun #define SRC6_CTL	0x0000090C
175*4882a593Smuzhiyun #define BAND_OUT_SEL	0x00000910
176*4882a593Smuzhiyun #define I2S_N_CTL	0x00000914
177*4882a593Smuzhiyun #define I2S_OUT_CTL	0x00000918
178*4882a593Smuzhiyun #define AUTOCONFIG_REG	0x000009C4
179*4882a593Smuzhiyun 
180*4882a593Smuzhiyun /* Audio ADC Registers */
181*4882a593Smuzhiyun #define DSM_CTRL1	0x00000000
182*4882a593Smuzhiyun #define DSM_CTRL2	0x00000001
183*4882a593Smuzhiyun #define CHP_EN_CTRL	0x00000002
184*4882a593Smuzhiyun #define CHP_CLK_CTRL1	0x00000004
185*4882a593Smuzhiyun #define CHP_CLK_CTRL2	0x00000005
186*4882a593Smuzhiyun #define BG_REF_CTRL	0x00000006
187*4882a593Smuzhiyun #define SD2_SW_CTRL1	0x00000008
188*4882a593Smuzhiyun #define SD2_SW_CTRL2	0x00000009
189*4882a593Smuzhiyun #define SD2_BIAS_CTRL	0x0000000A
190*4882a593Smuzhiyun #define AMP_BIAS_CTRL	0x0000000C
191*4882a593Smuzhiyun #define CH_PWR_CTRL1	0x0000000E
192*4882a593Smuzhiyun #define FLD_CH_SEL      (1 << 3)
193*4882a593Smuzhiyun #define CH_PWR_CTRL2	0x0000000F
194*4882a593Smuzhiyun #define DSM_STATUS1	0x00000010
195*4882a593Smuzhiyun #define DSM_STATUS2	0x00000011
196*4882a593Smuzhiyun #define DIG_CTL1	0x00000012
197*4882a593Smuzhiyun #define DIG_CTL2	0x00000013
198*4882a593Smuzhiyun #define I2S_TX_CFG	0x0000001A
199*4882a593Smuzhiyun 
200*4882a593Smuzhiyun #define DEV_CNTRL2	0x00040000
201*4882a593Smuzhiyun 
202*4882a593Smuzhiyun #define PCI_MSK_IR        (1 << 28)
203*4882a593Smuzhiyun #define PCI_MSK_AV_CORE   (1 << 27)
204*4882a593Smuzhiyun #define PCI_MSK_GPIO1     (1 << 24)
205*4882a593Smuzhiyun #define PCI_MSK_GPIO0     (1 << 23)
206*4882a593Smuzhiyun #define PCI_MSK_APB_DMA   (1 << 12)
207*4882a593Smuzhiyun #define PCI_MSK_AL_WR     (1 << 11)
208*4882a593Smuzhiyun #define PCI_MSK_AL_RD     (1 << 10)
209*4882a593Smuzhiyun #define PCI_MSK_RISC_WR   (1 <<  9)
210*4882a593Smuzhiyun #define PCI_MSK_RISC_RD   (1 <<  8)
211*4882a593Smuzhiyun #define PCI_MSK_AUD_EXT   (1 <<  4)
212*4882a593Smuzhiyun #define PCI_MSK_AUD_INT   (1 <<  3)
213*4882a593Smuzhiyun #define PCI_MSK_VID_C     (1 <<  2)
214*4882a593Smuzhiyun #define PCI_MSK_VID_B     (1 <<  1)
215*4882a593Smuzhiyun #define PCI_MSK_VID_A      1
216*4882a593Smuzhiyun #define PCI_INT_MSK	0x00040010
217*4882a593Smuzhiyun 
218*4882a593Smuzhiyun #define PCI_INT_STAT	0x00040014
219*4882a593Smuzhiyun #define PCI_INT_MSTAT	0x00040018
220*4882a593Smuzhiyun 
221*4882a593Smuzhiyun #define VID_A_INT_MSK	0x00040020
222*4882a593Smuzhiyun #define VID_A_INT_STAT	0x00040024
223*4882a593Smuzhiyun #define VID_A_INT_MSTAT	0x00040028
224*4882a593Smuzhiyun #define VID_A_INT_SSTAT	0x0004002C
225*4882a593Smuzhiyun 
226*4882a593Smuzhiyun #define VID_B_INT_MSK	0x00040030
227*4882a593Smuzhiyun #define VID_B_MSK_BAD_PKT     (1 << 20)
228*4882a593Smuzhiyun #define VID_B_MSK_VBI_OPC_ERR (1 << 17)
229*4882a593Smuzhiyun #define VID_B_MSK_OPC_ERR     (1 << 16)
230*4882a593Smuzhiyun #define VID_B_MSK_VBI_SYNC    (1 << 13)
231*4882a593Smuzhiyun #define VID_B_MSK_SYNC        (1 << 12)
232*4882a593Smuzhiyun #define VID_B_MSK_VBI_OF      (1 <<  9)
233*4882a593Smuzhiyun #define VID_B_MSK_OF          (1 <<  8)
234*4882a593Smuzhiyun #define VID_B_MSK_VBI_RISCI2  (1 <<  5)
235*4882a593Smuzhiyun #define VID_B_MSK_RISCI2      (1 <<  4)
236*4882a593Smuzhiyun #define VID_B_MSK_VBI_RISCI1  (1 <<  1)
237*4882a593Smuzhiyun #define VID_B_MSK_RISCI1       1
238*4882a593Smuzhiyun #define VID_B_INT_STAT	0x00040034
239*4882a593Smuzhiyun #define VID_B_INT_MSTAT	0x00040038
240*4882a593Smuzhiyun #define VID_B_INT_SSTAT	0x0004003C
241*4882a593Smuzhiyun 
242*4882a593Smuzhiyun #define VID_B_MSK_BAD_PKT (1 << 20)
243*4882a593Smuzhiyun #define VID_B_MSK_OPC_ERR (1 << 16)
244*4882a593Smuzhiyun #define VID_B_MSK_SYNC    (1 << 12)
245*4882a593Smuzhiyun #define VID_B_MSK_OF      (1 <<  8)
246*4882a593Smuzhiyun #define VID_B_MSK_RISCI2  (1 <<  4)
247*4882a593Smuzhiyun #define VID_B_MSK_RISCI1   1
248*4882a593Smuzhiyun 
249*4882a593Smuzhiyun #define VID_C_MSK_BAD_PKT (1 << 20)
250*4882a593Smuzhiyun #define VID_C_MSK_OPC_ERR (1 << 16)
251*4882a593Smuzhiyun #define VID_C_MSK_SYNC    (1 << 12)
252*4882a593Smuzhiyun #define VID_C_MSK_OF      (1 <<  8)
253*4882a593Smuzhiyun #define VID_C_MSK_RISCI2  (1 <<  4)
254*4882a593Smuzhiyun #define VID_C_MSK_RISCI1   1
255*4882a593Smuzhiyun 
256*4882a593Smuzhiyun /* A superset for testing purposes */
257*4882a593Smuzhiyun #define VID_BC_MSK_BAD_PKT (1 << 20)
258*4882a593Smuzhiyun #define VID_BC_MSK_OPC_ERR (1 << 16)
259*4882a593Smuzhiyun #define VID_BC_MSK_SYNC    (1 << 12)
260*4882a593Smuzhiyun #define VID_BC_MSK_OF      (1 <<  8)
261*4882a593Smuzhiyun #define VID_BC_MSK_VBI_RISCI2 (1 <<  5)
262*4882a593Smuzhiyun #define VID_BC_MSK_RISCI2  (1 <<  4)
263*4882a593Smuzhiyun #define VID_BC_MSK_VBI_RISCI1 (1 <<  1)
264*4882a593Smuzhiyun #define VID_BC_MSK_RISCI1   1
265*4882a593Smuzhiyun 
266*4882a593Smuzhiyun #define VID_C_INT_MSK	0x00040040
267*4882a593Smuzhiyun #define VID_C_INT_STAT	0x00040044
268*4882a593Smuzhiyun #define VID_C_INT_MSTAT	0x00040048
269*4882a593Smuzhiyun #define VID_C_INT_SSTAT	0x0004004C
270*4882a593Smuzhiyun 
271*4882a593Smuzhiyun #define AUDIO_INT_INT_MSK	0x00040050
272*4882a593Smuzhiyun #define AUDIO_INT_INT_STAT	0x00040054
273*4882a593Smuzhiyun #define AUDIO_INT_INT_MSTAT	0x00040058
274*4882a593Smuzhiyun #define AUDIO_INT_INT_SSTAT	0x0004005C
275*4882a593Smuzhiyun 
276*4882a593Smuzhiyun #define AUDIO_EXT_INT_MSK	0x00040060
277*4882a593Smuzhiyun #define AUDIO_EXT_INT_STAT	0x00040064
278*4882a593Smuzhiyun #define AUDIO_EXT_INT_MSTAT	0x00040068
279*4882a593Smuzhiyun #define AUDIO_EXT_INT_SSTAT	0x0004006C
280*4882a593Smuzhiyun 
281*4882a593Smuzhiyun /* Bits [7:0] set in both TC_REQ and TC_REQ_SET
282*4882a593Smuzhiyun  * indicate a stall in the RISC engine for a
283*4882a593Smuzhiyun  * particular rider traffic class. This causes
284*4882a593Smuzhiyun  * the 885 and 888 bridges (unknown about 887)
285*4882a593Smuzhiyun  * to become inoperable. Setting bits in
286*4882a593Smuzhiyun  * TC_REQ_SET resets the corresponding bits
287*4882a593Smuzhiyun  * in TC_REQ (and TC_REQ_SET) allowing
288*4882a593Smuzhiyun  * operation to continue.
289*4882a593Smuzhiyun  */
290*4882a593Smuzhiyun #define TC_REQ		0x00040090
291*4882a593Smuzhiyun #define TC_REQ_SET	0x00040094
292*4882a593Smuzhiyun 
293*4882a593Smuzhiyun #define RDR_CFG0	0x00050000
294*4882a593Smuzhiyun #define RDR_CFG1	0x00050004
295*4882a593Smuzhiyun #define RDR_CFG2	0x00050008
296*4882a593Smuzhiyun #define RDR_RDRCTL1	0x0005030c
297*4882a593Smuzhiyun #define RDR_TLCTL0	0x00050318
298*4882a593Smuzhiyun 
299*4882a593Smuzhiyun /* APB DMAC Current Buffer Pointer */
300*4882a593Smuzhiyun #define DMA1_PTR1	0x00100000
301*4882a593Smuzhiyun #define DMA2_PTR1	0x00100004
302*4882a593Smuzhiyun #define DMA3_PTR1	0x00100008
303*4882a593Smuzhiyun #define DMA4_PTR1	0x0010000C
304*4882a593Smuzhiyun #define DMA5_PTR1	0x00100010
305*4882a593Smuzhiyun #define DMA6_PTR1	0x00100014
306*4882a593Smuzhiyun #define DMA7_PTR1	0x00100018
307*4882a593Smuzhiyun #define DMA8_PTR1	0x0010001C
308*4882a593Smuzhiyun 
309*4882a593Smuzhiyun /* APB DMAC Current Table Pointer */
310*4882a593Smuzhiyun #define DMA1_PTR2	0x00100040
311*4882a593Smuzhiyun #define DMA2_PTR2	0x00100044
312*4882a593Smuzhiyun #define DMA3_PTR2	0x00100048
313*4882a593Smuzhiyun #define DMA4_PTR2	0x0010004C
314*4882a593Smuzhiyun #define DMA5_PTR2	0x00100050
315*4882a593Smuzhiyun #define DMA6_PTR2	0x00100054
316*4882a593Smuzhiyun #define DMA7_PTR2	0x00100058
317*4882a593Smuzhiyun #define DMA8_PTR2	0x0010005C
318*4882a593Smuzhiyun 
319*4882a593Smuzhiyun /* APB DMAC Buffer Limit */
320*4882a593Smuzhiyun #define DMA1_CNT1	0x00100080
321*4882a593Smuzhiyun #define DMA2_CNT1	0x00100084
322*4882a593Smuzhiyun #define DMA3_CNT1	0x00100088
323*4882a593Smuzhiyun #define DMA4_CNT1	0x0010008C
324*4882a593Smuzhiyun #define DMA5_CNT1	0x00100090
325*4882a593Smuzhiyun #define DMA6_CNT1	0x00100094
326*4882a593Smuzhiyun #define DMA7_CNT1	0x00100098
327*4882a593Smuzhiyun #define DMA8_CNT1	0x0010009C
328*4882a593Smuzhiyun 
329*4882a593Smuzhiyun /* APB DMAC Table Size */
330*4882a593Smuzhiyun #define DMA1_CNT2	0x001000C0
331*4882a593Smuzhiyun #define DMA2_CNT2	0x001000C4
332*4882a593Smuzhiyun #define DMA3_CNT2	0x001000C8
333*4882a593Smuzhiyun #define DMA4_CNT2	0x001000CC
334*4882a593Smuzhiyun #define DMA5_CNT2	0x001000D0
335*4882a593Smuzhiyun #define DMA6_CNT2	0x001000D4
336*4882a593Smuzhiyun #define DMA7_CNT2	0x001000D8
337*4882a593Smuzhiyun #define DMA8_CNT2	0x001000DC
338*4882a593Smuzhiyun 
339*4882a593Smuzhiyun /* Timer Counters */
340*4882a593Smuzhiyun #define TM_CNT_LDW	0x00110000
341*4882a593Smuzhiyun #define TM_CNT_UW	0x00110004
342*4882a593Smuzhiyun #define TM_LMT_LDW	0x00110008
343*4882a593Smuzhiyun #define TM_LMT_UW	0x0011000C
344*4882a593Smuzhiyun 
345*4882a593Smuzhiyun /* GPIO */
346*4882a593Smuzhiyun #define GP0_IO		0x00110010
347*4882a593Smuzhiyun #define GPIO_ISM	0x00110014
348*4882a593Smuzhiyun #define SOFT_RESET	0x0011001C
349*4882a593Smuzhiyun 
350*4882a593Smuzhiyun /* GPIO (417 Microsoftcontroller) RW Data */
351*4882a593Smuzhiyun #define MC417_RWD	0x00110020
352*4882a593Smuzhiyun 
353*4882a593Smuzhiyun /* GPIO (417 Microsoftcontroller) Output Enable, Low Active */
354*4882a593Smuzhiyun #define MC417_OEN	0x00110024
355*4882a593Smuzhiyun #define MC417_CTL	0x00110028
356*4882a593Smuzhiyun #define ALT_PIN_OUT_SEL 0x0011002C
357*4882a593Smuzhiyun #define CLK_DELAY	0x00110048
358*4882a593Smuzhiyun #define PAD_CTRL	0x0011004C
359*4882a593Smuzhiyun 
360*4882a593Smuzhiyun /* Video A Interface */
361*4882a593Smuzhiyun #define VID_A_GPCNT		0x00130020
362*4882a593Smuzhiyun #define VBI_A_GPCNT		0x00130024
363*4882a593Smuzhiyun #define VID_A_GPCNT_CTL		0x00130030
364*4882a593Smuzhiyun #define VBI_A_GPCNT_CTL		0x00130034
365*4882a593Smuzhiyun #define VID_A_DMA_CTL		0x00130040
366*4882a593Smuzhiyun #define VID_A_VIP_CTRL		0x00130080
367*4882a593Smuzhiyun #define VID_A_PIXEL_FRMT	0x00130084
368*4882a593Smuzhiyun #define VID_A_VBI_CTRL		0x00130088
369*4882a593Smuzhiyun 
370*4882a593Smuzhiyun /* Video B Interface */
371*4882a593Smuzhiyun #define VID_B_DMA		0x00130100
372*4882a593Smuzhiyun #define VBI_B_DMA		0x00130108
373*4882a593Smuzhiyun #define VID_B_GPCNT		0x00130120
374*4882a593Smuzhiyun #define VBI_B_GPCNT		0x00130124
375*4882a593Smuzhiyun #define VID_B_GPCNT_CTL		0x00130134
376*4882a593Smuzhiyun #define VBI_B_GPCNT_CTL		0x00130138
377*4882a593Smuzhiyun #define VID_B_DMA_CTL		0x00130140
378*4882a593Smuzhiyun #define VID_B_SRC_SEL		0x00130144
379*4882a593Smuzhiyun #define VID_B_LNGTH		0x00130150
380*4882a593Smuzhiyun #define VID_B_HW_SOP_CTL	0x00130154
381*4882a593Smuzhiyun #define VID_B_GEN_CTL		0x00130158
382*4882a593Smuzhiyun #define VID_B_BD_PKT_STATUS	0x0013015C
383*4882a593Smuzhiyun #define VID_B_SOP_STATUS	0x00130160
384*4882a593Smuzhiyun #define VID_B_FIFO_OVFL_STAT	0x00130164
385*4882a593Smuzhiyun #define VID_B_VLD_MISC		0x00130168
386*4882a593Smuzhiyun #define VID_B_TS_CLK_EN		0x0013016C
387*4882a593Smuzhiyun #define VID_B_VIP_CTRL		0x00130180
388*4882a593Smuzhiyun #define VID_B_PIXEL_FRMT	0x00130184
389*4882a593Smuzhiyun 
390*4882a593Smuzhiyun /* Video C Interface */
391*4882a593Smuzhiyun #define VID_C_DMA		0x00130200
392*4882a593Smuzhiyun #define VBI_C_DMA		0x00130208
393*4882a593Smuzhiyun #define VID_C_GPCNT		0x00130220
394*4882a593Smuzhiyun #define VID_C_GPCNT_CTL		0x00130230
395*4882a593Smuzhiyun #define VBI_C_GPCNT_CTL		0x00130234
396*4882a593Smuzhiyun #define VID_C_DMA_CTL		0x00130240
397*4882a593Smuzhiyun #define VID_C_LNGTH		0x00130250
398*4882a593Smuzhiyun #define VID_C_HW_SOP_CTL	0x00130254
399*4882a593Smuzhiyun #define VID_C_GEN_CTL		0x00130258
400*4882a593Smuzhiyun #define VID_C_BD_PKT_STATUS	0x0013025C
401*4882a593Smuzhiyun #define VID_C_SOP_STATUS	0x00130260
402*4882a593Smuzhiyun #define VID_C_FIFO_OVFL_STAT	0x00130264
403*4882a593Smuzhiyun #define VID_C_VLD_MISC		0x00130268
404*4882a593Smuzhiyun #define VID_C_TS_CLK_EN		0x0013026C
405*4882a593Smuzhiyun 
406*4882a593Smuzhiyun /* Internal Audio Interface */
407*4882a593Smuzhiyun #define AUD_INT_A_GPCNT		0x00140020
408*4882a593Smuzhiyun #define AUD_INT_B_GPCNT		0x00140024
409*4882a593Smuzhiyun #define AUD_INT_A_GPCNT_CTL	0x00140030
410*4882a593Smuzhiyun #define AUD_INT_B_GPCNT_CTL	0x00140034
411*4882a593Smuzhiyun #define AUD_INT_DMA_CTL		0x00140040
412*4882a593Smuzhiyun #define AUD_INT_A_LNGTH		0x00140050
413*4882a593Smuzhiyun #define AUD_INT_B_LNGTH		0x00140054
414*4882a593Smuzhiyun #define AUD_INT_A_MODE		0x00140058
415*4882a593Smuzhiyun #define AUD_INT_B_MODE		0x0014005C
416*4882a593Smuzhiyun 
417*4882a593Smuzhiyun /* External Audio Interface */
418*4882a593Smuzhiyun #define AUD_EXT_DMA		0x00140100
419*4882a593Smuzhiyun #define AUD_EXT_GPCNT		0x00140120
420*4882a593Smuzhiyun #define AUD_EXT_GPCNT_CTL	0x00140130
421*4882a593Smuzhiyun #define AUD_EXT_DMA_CTL		0x00140140
422*4882a593Smuzhiyun #define AUD_EXT_LNGTH		0x00140150
423*4882a593Smuzhiyun #define AUD_EXT_A_MODE		0x00140158
424*4882a593Smuzhiyun 
425*4882a593Smuzhiyun /* I2C Bus 1 */
426*4882a593Smuzhiyun #define I2C1_ADDR	0x00180000
427*4882a593Smuzhiyun #define I2C1_WDATA	0x00180004
428*4882a593Smuzhiyun #define I2C1_CTRL	0x00180008
429*4882a593Smuzhiyun #define I2C1_RDATA	0x0018000C
430*4882a593Smuzhiyun #define I2C1_STAT	0x00180010
431*4882a593Smuzhiyun 
432*4882a593Smuzhiyun /* I2C Bus 2 */
433*4882a593Smuzhiyun #define I2C2_ADDR	0x00190000
434*4882a593Smuzhiyun #define I2C2_WDATA	0x00190004
435*4882a593Smuzhiyun #define I2C2_CTRL	0x00190008
436*4882a593Smuzhiyun #define I2C2_RDATA	0x0019000C
437*4882a593Smuzhiyun #define I2C2_STAT	0x00190010
438*4882a593Smuzhiyun 
439*4882a593Smuzhiyun /* I2C Bus 3 */
440*4882a593Smuzhiyun #define I2C3_ADDR	0x001A0000
441*4882a593Smuzhiyun #define I2C3_WDATA	0x001A0004
442*4882a593Smuzhiyun #define I2C3_CTRL	0x001A0008
443*4882a593Smuzhiyun #define I2C3_RDATA	0x001A000C
444*4882a593Smuzhiyun #define I2C3_STAT	0x001A0010
445*4882a593Smuzhiyun 
446*4882a593Smuzhiyun /* UART */
447*4882a593Smuzhiyun #define UART_CTL	0x001B0000
448*4882a593Smuzhiyun #define UART_BRD	0x001B0004
449*4882a593Smuzhiyun #define UART_ISR	0x001B000C
450*4882a593Smuzhiyun #define UART_CNT	0x001B0010
451*4882a593Smuzhiyun 
452*4882a593Smuzhiyun #endif /* _CX23885_REG_H_ */
453