[go: nahoru, domu]

11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    cx88x-hw.h - CX2388x register offsets
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de)
64ac97914c6c35f6bf132071c718e034d0846b9f5Mauro Carvalho Chehab		  2001 Michael Eskin
74ac97914c6c35f6bf132071c718e034d0846b9f5Mauro Carvalho Chehab		  2002 Yurij Sysoev <yurij@naturesoft.net>
84ac97914c6c35f6bf132071c718e034d0846b9f5Mauro Carvalho Chehab		  2003 Gerd Knorr <kraxel@bytesex.org>
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    This program is free software; you can redistribute it and/or modify
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    it under the terms of the GNU General Public License as published by
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    the Free Software Foundation; either version 2 of the License, or
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    (at your option) any later version.
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    This program is distributed in the hope that it will be useful,
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    but WITHOUT ANY WARRANTY; without even the implied warranty of
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    GNU General Public License for more details.
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    You should have received a copy of the GNU General Public License
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    along with this program; if not, write to the Free Software
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds*/
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _CX88_REG_H_
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _CX88_REG_H_
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* PCI IDs and config space                                               */
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef PCI_VENDOR_ID_CONEXANT
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define PCI_VENDOR_ID_CONEXANT		0x14F1
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef PCI_DEVICE_ID_CX2300_VID
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define PCI_DEVICE_ID_CX2300_VID	0x8800
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CX88X_DEVCTRL 0x40
391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CX88X_EN_TBFX 0x02
401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CX88X_EN_VSFX 0x04
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
42e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab/* ---------------------------------------------------------------------- */
43e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab/* PCI controller registers                                               */
44e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab
45e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab/* Command and Status Register */
46e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F0_CMD_STAT_MM      0x2f0004
47e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F1_CMD_STAT_MM      0x2f0104
48e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F2_CMD_STAT_MM      0x2f0204
49e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F3_CMD_STAT_MM      0x2f0304
50e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F4_CMD_STAT_MM      0x2f0404
51e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab
52e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab/* Device Control #1 */
53e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F0_DEV_CNTRL1_MM    0x2f0040
54e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F1_DEV_CNTRL1_MM    0x2f0140
55e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F2_DEV_CNTRL1_MM    0x2f0240
56e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F3_DEV_CNTRL1_MM    0x2f0340
57e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F4_DEV_CNTRL1_MM    0x2f0440
58e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab
59e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab/* Device Control #1 */
60e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F0_BAR0_MM          0x2f0010
61e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F1_BAR0_MM          0x2f0110
62e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F2_BAR0_MM          0x2f0210
63e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F3_BAR0_MM          0x2f0310
64e52e98a7eccfb0e7e91630d01690fb11d77db77dMauro Carvalho Chehab#define F4_BAR0_MM          0x2f0410
651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* DMA Controller registers                                               */
681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PDMA_STHRSH      0x200000 // Source threshold
701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PDMA_STADRS      0x200004 // Source target address
711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PDMA_SIADRS      0x200008 // Source internal address
721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PDMA_SCNTRL      0x20000C // Source control
731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PDMA_DTHRSH      0x200010 // Destination threshold
741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PDMA_DTADRS      0x200014 // Destination target address
751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PDMA_DIADRS      0x200018 // Destination internal address
761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PDMA_DCNTRL      0x20001C // Destination control
771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_LD_SSID          0x200030 // Load subsystem ID
781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DEV_CNTRL2       0x200034 // Device control
791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PCI_INTMSK       0x200040 // PCI interrupt mask
801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PCI_INTSTAT      0x200044 // PCI interrupt status
811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PCI_INTMSTAT     0x200048 // PCI interrupt masked status
821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VID_INTMSK       0x200050 // Video interrupt mask
831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VID_INTSTAT      0x200054 // Video interrupt status
841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VID_INTMSTAT     0x200058 // Video interrupt masked status
851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VID_INTSSTAT     0x20005C // Video interrupt set status
861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUD_INTMSK       0x200060 // Audio interrupt mask
871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUD_INTSTAT      0x200064 // Audio interrupt status
881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUD_INTMSTAT     0x200068 // Audio interrupt masked status
891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUD_INTSSTAT     0x20006C // Audio interrupt set status
901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_INTMSK        0x200070 // Transport stream interrupt mask
911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_INTSTAT       0x200074 // Transport stream interrupt status
921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_INTMSTAT      0x200078 // Transport stream interrupt mask status
931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_INTSSTAT      0x20007C // Transport stream interrupt set status
941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_INTMSK       0x200080 // VIP interrupt mask
951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_INTSTAT      0x200084 // VIP interrupt status
961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_INTMSTAT     0x200088 // VIP interrupt masked status
971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_INTSSTAT     0x20008C // VIP interrupt set status
981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_INTMSK     0x200090 // Host interrupt mask
991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_INTSTAT    0x200094 // Host interrupt status
1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_INTMSTAT   0x200098 // Host interrupt masked status
1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_INTSSTAT   0x20009C // Host interrupt set status
1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds// DMA Channels 1-6 belong to SPIPE
1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA7_PTR1        0x300018 // {24}RW* DMA Current Ptr : Ch#7
1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA8_PTR1        0x30001C // {24}RW* DMA Current Ptr : Ch#8
1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds// DMA Channels 9-20 belong to SPIPE
1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA21_PTR1       0x300080 // {24}R0* DMA Current Ptr : Ch#21
1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA22_PTR1       0x300084 // {24}R0* DMA Current Ptr : Ch#22
1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA23_PTR1       0x300088 // {24}R0* DMA Current Ptr : Ch#23
1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA24_PTR1       0x30008C // {24}R0* DMA Current Ptr : Ch#24
1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA25_PTR1       0x300090 // {24}R0* DMA Current Ptr : Ch#25
1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA26_PTR1       0x300094 // {24}R0* DMA Current Ptr : Ch#26
1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA27_PTR1       0x300098 // {24}R0* DMA Current Ptr : Ch#27
1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA28_PTR1       0x30009C // {24}R0* DMA Current Ptr : Ch#28
1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA29_PTR1       0x3000A0 // {24}R0* DMA Current Ptr : Ch#29
1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA30_PTR1       0x3000A4 // {24}R0* DMA Current Ptr : Ch#30
1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA31_PTR1       0x3000A8 // {24}R0* DMA Current Ptr : Ch#31
1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA32_PTR1       0x3000AC // {24}R0* DMA Current Ptr : Ch#32
1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA21_PTR2       0x3000C0 // {24}RW* DMA Tab Ptr : Ch#21
1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA22_PTR2       0x3000C4 // {24}RW* DMA Tab Ptr : Ch#22
1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA23_PTR2       0x3000C8 // {24}RW* DMA Tab Ptr : Ch#23
1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA24_PTR2       0x3000CC // {24}RW* DMA Tab Ptr : Ch#24
1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA25_PTR2       0x3000D0 // {24}RW* DMA Tab Ptr : Ch#25
1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA26_PTR2       0x3000D4 // {24}RW* DMA Tab Ptr : Ch#26
1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA27_PTR2       0x3000D8 // {24}RW* DMA Tab Ptr : Ch#27
1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA28_PTR2       0x3000DC // {24}RW* DMA Tab Ptr : Ch#28
1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA29_PTR2       0x3000E0 // {24}RW* DMA Tab Ptr : Ch#29
1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA30_PTR2       0x3000E4 // {24}RW* DMA Tab Ptr : Ch#30
1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA31_PTR2       0x3000E8 // {24}RW* DMA Tab Ptr : Ch#31
1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA32_PTR2       0x3000EC // {24}RW* DMA Tab Ptr : Ch#32
1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA21_CNT1       0x300100 // {11}RW* DMA Buffer Size : Ch#21
1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA22_CNT1       0x300104 // {11}RW* DMA Buffer Size : Ch#22
1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA23_CNT1       0x300108 // {11}RW* DMA Buffer Size : Ch#23
1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA24_CNT1       0x30010C // {11}RW* DMA Buffer Size : Ch#24
1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA25_CNT1       0x300110 // {11}RW* DMA Buffer Size : Ch#25
1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA26_CNT1       0x300114 // {11}RW* DMA Buffer Size : Ch#26
1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA27_CNT1       0x300118 // {11}RW* DMA Buffer Size : Ch#27
1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA28_CNT1       0x30011C // {11}RW* DMA Buffer Size : Ch#28
1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA29_CNT1       0x300120 // {11}RW* DMA Buffer Size : Ch#29
1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA30_CNT1       0x300124 // {11}RW* DMA Buffer Size : Ch#30
1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA31_CNT1       0x300128 // {11}RW* DMA Buffer Size : Ch#31
1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA32_CNT1       0x30012C // {11}RW* DMA Buffer Size : Ch#32
1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA21_CNT2       0x300140 // {11}RW* DMA Table Size : Ch#21
1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA22_CNT2       0x300144 // {11}RW* DMA Table Size : Ch#22
1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA23_CNT2       0x300148 // {11}RW* DMA Table Size : Ch#23
1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA24_CNT2       0x30014C // {11}RW* DMA Table Size : Ch#24
1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA25_CNT2       0x300150 // {11}RW* DMA Table Size : Ch#25
1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA26_CNT2       0x300154 // {11}RW* DMA Table Size : Ch#26
1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA27_CNT2       0x300158 // {11}RW* DMA Table Size : Ch#27
1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA28_CNT2       0x30015C // {11}RW* DMA Table Size : Ch#28
1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA29_CNT2       0x300160 // {11}RW* DMA Table Size : Ch#29
1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA30_CNT2       0x300164 // {11}RW* DMA Table Size : Ch#30
1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA31_CNT2       0x300168 // {11}RW* DMA Table Size : Ch#31
1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DMA32_CNT2       0x30016C // {11}RW* DMA Table Size : Ch#32
1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
1621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Video registers                                                        */
1631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIDY_DMA         0x310000 // {64}RWp Video Y
1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIDU_DMA         0x310008 // {64}RWp Video U
1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIDV_DMA         0x310010 // {64}RWp Video V
1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VBI_DMA          0x310018 // {64}RWp VBI (Vertical blanking interval)
1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DEVICE_STATUS    0x310100
1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_INPUT_FORMAT     0x310104
1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AGC_BURST        0x31010c
1721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_CONTR_BRIGHT     0x310110
1731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_UV_SATURATION    0x310114
1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_HUE              0x310118
1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_HTOTAL           0x310120
1761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_HDELAY_EVEN      0x310124
1771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_HDELAY_ODD       0x310128
1781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VDELAY_ODD       0x31012c
1791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VDELAY_EVEN      0x310130
1801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_HACTIVE_EVEN     0x31013c
1811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_HACTIVE_ODD      0x310140
1821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VACTIVE_EVEN     0x310144
1831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VACTIVE_ODD      0x310148
1841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_HSCALE_EVEN      0x31014c
1851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_HSCALE_ODD       0x310150
1861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VSCALE_EVEN      0x310154
1871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_FILTER_EVEN      0x31015c
1881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VSCALE_ODD       0x310158
1891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_FILTER_ODD       0x310160
1901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_OUTPUT_FORMAT    0x310164
1911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PLL_REG          0x310168 // PLL register
1931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PLL_ADJ_CTRL     0x31016c // PLL adjust control register
1941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_SCONV_REG        0x310170 // sample rate conversion register
1951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_SCONV_FIFO       0x310174 // sample rate conversion fifo
1961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_SUB_STEP         0x310178 // subcarrier step size
1971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_SUB_STEP_DR      0x31017c // subcarrier step size for DR line
1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_CAPTURE_CTRL     0x310180 // capture control
2001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_COLOR_CTRL       0x310184
2011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VBI_PACKET       0x310188 // vbi packet size / delay
2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_FIELD_COUNT      0x310190 // field counter
2031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_CONFIG       0x310194
2041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VBOS_CONTROL	    0x3101a8
2051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AGC_BACK_VBI     0x310200
2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AGC_SYNC_TIP1    0x310208
2081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIDY_GPCNT       0x31C020 // {16}RO Video Y general purpose counter
2101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIDU_GPCNT       0x31C024 // {16}RO Video U general purpose counter
2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIDV_GPCNT       0x31C028 // {16}RO Video V general purpose counter
2121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VBI_GPCNT        0x31C02C // {16}RO VBI general purpose counter
2131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIDY_GPCNTRL     0x31C030 // {2}WO Video Y general purpose control
2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIDU_GPCNTRL     0x31C034 // {2}WO Video U general purpose control
2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIDV_GPCNTRL     0x31C038 // {2}WO Video V general purpose control
2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VBI_GPCNTRL      0x31C03C // {2}WO VBI general purpose counter
2171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VID_DMACNTRL     0x31C040 // {8}RW Video DMA control
2181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VID_XFR_STAT     0x31C044 // {1}RO Video transfer status
2191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
2221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* audio registers                                                        */
2231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDD_DMA         0x320000 // {64}RWp Audio downstream
2251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDU_DMA         0x320008 // {64}RWp Audio upstream
2261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDR_DMA         0x320010 // {64}RWp Audio RDS (downstream)
2271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDD_GPCNT       0x32C020 // {16}RO Audio down general purpose counter
2281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDU_GPCNT       0x32C024 // {16}RO Audio up general purpose counter
2291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDR_GPCNT       0x32C028 // {16}RO Audio RDS general purpose counter
2301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDD_GPCNTRL     0x32C030 // {2}WO Audio down general purpose control
2311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDU_GPCNTRL     0x32C034 // {2}WO Audio up general purpose control
2321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDR_GPCNTRL     0x32C038 // {2}WO Audio RDS general purpose control
2331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUD_DMACNTRL     0x32C040 // {6}RW Audio DMA control
2341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUD_XFR_STAT     0x32C044 // {1}RO Audio transfer status
2351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDD_LNGTH       0x32C048 // {12}RW Audio down line length
2361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AUDR_LNGTH       0x32C04C // {12}RW Audio RDS line length
2371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_INIT                 0x320100
2391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_INIT_LD              0x320104
2401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_SOFT_RESET           0x320108
2411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_I2SINPUTCNTL         0x320120
2421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_BAUDRATE             0x320124
2431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_I2SOUTPUTCNTL        0x320128
2441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AAGC_HYST                0x320134
2451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AAGC_GAIN                0x320138
2461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AAGC_DEF                 0x32013c
2471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_0_SEL           0x320150
2481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_0_SHIFT         0x320154
2491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_1_SEL           0x320158
2501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_1_SHIFT         0x32015c
2511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_2_SEL           0x320160
2521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_2_SHIFT         0x320164
2531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_3_SEL           0x320168
2541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_3_SHIFT         0x32016c
2551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_4_SEL           0x320170
2561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_4_SHIFT         0x32017c
2571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_5_SEL           0x320180
2581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR1_5_SHIFT         0x320184
2591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR2_0_SEL           0x320190
2601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR2_0_SHIFT         0x320194
2611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR2_1_SEL           0x320198
2621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR2_1_SHIFT         0x32019c
2631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR2_2_SEL           0x3201a0
2641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR2_2_SHIFT         0x3201a4
2651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR2_3_SEL           0x3201a8
2661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR2_3_SHIFT         0x3201ac
2671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR3_0_SEL           0x3201c0
2681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR3_0_SHIFT         0x3201c4
2691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR3_1_SEL           0x3201c8
2701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR3_1_SHIFT         0x3201cc
2711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR3_2_SEL           0x3201d0
2721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR3_2_SHIFT         0x3201d4
2731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_0_SEL           0x3201e0
2741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_0_SHIFT         0x3201e4
2751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_1_SEL           0x3201e8
2761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_1_SHIFT         0x3201ec
2771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_2_SEL           0x3201f0
2781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_2_SHIFT         0x3201f4
2791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_0_CA0           0x320200
2801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_0_CA1           0x320204
2811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_0_CA2           0x320208
2821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_0_CB0           0x32020c
2831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_0_CB1           0x320210
2841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_1_CA0           0x320214
2851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_1_CA1           0x320218
2861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_1_CA2           0x32021c
2871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_1_CB0           0x320220
2881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_1_CB1           0x320224
2891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_2_CA0           0x320228
2901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_2_CA1           0x32022c
2911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_2_CA2           0x320230
2921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_2_CB0           0x320234
2931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_IIR4_2_CB1           0x320238
2941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_HP_MD_IIR4_1         0x320250
2951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_HP_PROG_IIR4_1       0x320254
2961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_FM_MODE_ENABLE       0x320258
2971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_POLY0_DDS_CONSTANT   0x320270
2981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN0_FREQ             0x320274
2991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN1_FREQ             0x320278
3001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN1_FREQ_SHIFT       0x32027c
3011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN1_AFC              0x320280
3021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN1_SRC_SEL          0x320284
3031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN1_SHFT             0x320288
3041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN2_FREQ             0x32028c
3051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN2_FREQ_SHIFT       0x320290
3061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN2_AFC              0x320294
3071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN2_SRC_SEL          0x320298
3081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DN2_SHFT             0x32029c
3091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_CRDC0_SRC_SEL        0x320300
3101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_CRDC0_SHIFT          0x320304
3111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_CORDIC_SHIFT_0       0x320308
3121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_CRDC1_SRC_SEL        0x32030c
3131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_CRDC1_SHIFT          0x320310
3141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_CORDIC_SHIFT_1       0x320314
3151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_0_SRC           0x320320
3161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC0_SHIFT          0x320324
3171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_0_SHIFT_IN0     0x320328
3181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_0_SHIFT_IN1     0x32032c
3191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_1_SRC           0x320330
3201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC1_SHIFT          0x320334
3211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_1_SHIFT_IN0     0x320338
3221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_1_SHIFT_IN1     0x32033c
3231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_2_SRC           0x320340
3241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC2_SHIFT          0x320344
3251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_2_SHIFT_IN0     0x320348
3261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_2_SHIFT_IN1     0x32034c
3271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DCOC_PASS_IN         0x320350
3281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PDET_SRC             0x320370
3291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PDET_SHIFT           0x320374
3301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_1_K0       0x320380
3311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_1_K1       0x320384
3321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_1_K2       0x320388
3331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_1_K3       0x32038c
3341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_1_K4       0x320390
3351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_2_K0       0x320394
3361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_2_K1       0x320398
3371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_2_K2       0x32039c
3381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_2_K3       0x3203a0
3391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PILOT_BQD_2_K4       0x3203a4
3401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_THR_FR               0x3203c0
3411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_X_PROG               0x3203c4
3421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_Y_PROG               0x3203c8
3431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_HARMONIC_MULT        0x3203cc
3441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_C1_UP_THR            0x3203d0
3451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_C1_LO_THR            0x3203d4
3461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_C2_UP_THR            0x3203d8
3471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_C2_LO_THR            0x3203dc
3481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_EN               0x320400
3491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_SRC              0x320404
3501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_SHIFT            0x320408
3511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_IF_SEL           0x32040c
3521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_IF_SHIFT         0x320410
3531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_BIQUAD_PLL_K0        0x320414
3541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_BIQUAD_PLL_K1        0x320418
3551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_BIQUAD_PLL_K2        0x32041c
3561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_BIQUAD_PLL_K3        0x320420
3571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_BIQUAD_PLL_K4        0x320424
3581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH0_SRC_SEL      0x320440
3591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH0_SHIFT        0x320444
3601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH0_G0           0x320448
3611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH0_A0           0x32044c
3621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH0_B0           0x320450
3631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH0_A1           0x320454
3641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH0_B1           0x320458
3651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH1_SRC_SEL      0x32045c
3661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH1_SHIFT        0x320460
3671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH1_G0           0x320464
3681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH1_A0           0x320468
3691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH1_B0           0x32046c
3701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH1_A1           0x320470
3711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPH1_B1           0x320474
3721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_OUT0_SEL             0x320490
3731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_OUT0_SHIFT           0x320494
3741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_OUT1_SEL             0x320498
3751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_OUT1_SHIFT           0x32049c
3761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RDSI_SEL             0x3204a0
3771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RDSI_SHIFT           0x3204a4
3781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RDSQ_SEL             0x3204a8
3791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RDSQ_SHIFT           0x3204ac
3801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DBX_IN_GAIN          0x320500
3811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DBX_WBE_GAIN         0x320504
3821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DBX_SE_GAIN          0x320508
3831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DBX_RMS_WBE          0x32050c
3841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DBX_RMS_SE           0x320510
3851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DBX_SE_BYPASS        0x320514
3861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_FAWDETCTL            0x320530
3871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_FAWDETWINCTL         0x320534
3881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPHGAIN_R         0x320538
3891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPHNUMER1_R       0x32053c
3901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPHNUMER2_R       0x320540
3911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPHDENOM1_R       0x320544
3921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DEEMPHDENOM2_R       0x320548
3931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_ERRLOGPERIOD_R       0x32054c
3941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_ERRINTRPTTHSHLD1_R   0x320550
3951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_ERRINTRPTTHSHLD2_R   0x320554
3961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_ERRINTRPTTHSHLD3_R   0x320558
3971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_NICAM_STATUS1        0x32055c
3981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_NICAM_STATUS2        0x320560
3991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_ERRLOG1              0x320564
4001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_ERRLOG2              0x320568
4011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_ERRLOG3              0x32056c
4021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DAC_BYPASS_L         0x320580
4031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DAC_BYPASS_R         0x320584
4041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DAC_BYPASS_CTL       0x320588
4051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_CTL                  0x32058c
4061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_STATUS               0x320590
4071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_VOL_CTL              0x320594
4081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_BAL_CTL              0x320598
4091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_START_TIMER          0x3205b0
4101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_MODE_CHG_TIMER       0x3205b4
4111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_POLYPH80SCALEFAC     0x3205b8
4121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_DMD_RA_DDS           0x3205bc
4131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_I2S_RA_DDS           0x3205c0
4141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RATE_THRES_DMD       0x3205d0
4151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RATE_THRES_I2S       0x3205d4
4161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RATE_ADJ1            0x3205d8
4171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RATE_ADJ2            0x3205dc
4181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RATE_ADJ3            0x3205e0
4191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RATE_ADJ4            0x3205e4
4201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_RATE_ADJ5            0x3205e8
4211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_APB_IN_RATE_ADJ      0x3205ec
422b45009b0288a96a3458f4f8e93cb776678d41875Mauro Carvalho Chehab#define AUD_I2SCNTL              0x3205ec
4231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PHASE_FIX_CTL        0x3205f0
4241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_PRESCALE         0x320600
4251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_DDS              0x320604
4261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_INT              0x320608
4271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_FRAC             0x32060c
4281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_JTAG             0x320620
4291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PLL_SPMP             0x320624
4301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_AFE_12DB_EN          0x320628
4311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds// Audio QAM Register Addresses
4331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PDF_DDS_CNST_BYTE2   0x320d01
4341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PDF_DDS_CNST_BYTE1   0x320d02
4351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PDF_DDS_CNST_BYTE0   0x320d03
4361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PHACC_FREQ_8MSB      0x320d2a
4371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_PHACC_FREQ_8LSB      0x320d2b
4381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define AUD_QAM_MODE             0x320d04
4391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
4421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* transport stream registers                                             */
4431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_DMA           0x330000 // {64}RWp Transport stream downstream
4451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_GPCNT         0x33C020 // {16}RO TS general purpose counter
4461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_GPCNTRL       0x33C030 // {2}WO TS general purpose control
4471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_DMACNTRL      0x33C040 // {6}RW TS DMA control
4481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_XFR_STAT      0x33C044 // {1}RO TS transfer status
4491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TS_LNGTH         0x33C048 // {12}RW TS line length
4501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TS_HW_SOP_CNTRL     0x33C04C
4521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TS_GEN_CNTRL        0x33C050
4531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TS_BD_PKT_STAT      0x33C054
4541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TS_SOP_STAT         0x33C058
4551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TS_FIFO_OVFL_STAT   0x33C05C
4561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TS_VALERR_CNTRL     0x33C060
4571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
4601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* VIP registers                                                          */
4611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIPD_DMA         0x340000 // {64}RWp VIP downstream
4631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIPU_DMA         0x340008 // {64}RWp VIP upstream
4641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIPD_GPCNT       0x34C020 // {16}RO VIP down general purpose counter
4651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIPU_GPCNT       0x34C024 // {16}RO VIP up general purpose counter
4661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIPD_GPCNTRL     0x34C030 // {2}WO VIP down general purpose control
4671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIPU_GPCNTRL     0x34C034 // {2}WO VIP up general purpose control
4681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_DMACNTRL     0x34C040 // {6}RW VIP DMA control
4691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_XFR_STAT     0x34C044 // {1}RO VIP transfer status
4701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_CFG          0x340048 // VIP configuration
4711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIPU_CNTRL       0x34004C // VIP upstream control #1
4721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIPD_CNTRL       0x340050 // VIP downstream control #2
4731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIPD_LNGTH       0x340054 // VIP downstream line length
4741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_BRSTLN       0x340058 // VIP burst length
4751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_INTCNTRL     0x34C05C // VIP Interrupt Control
4761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_VIP_XFTERM       0x340060 // VIP transfer terminate
4771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
4801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* misc registers                                                         */
4811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_M2M_DMA          0x350000 // {64}RWp Mem2Mem DMA Bfr
4831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GP0_IO           0x350010 // {32}RW* GPIOoutput enablesdata I/O
4841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GP1_IO           0x350014 // {32}RW* GPIOoutput enablesdata I/O
4851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GP2_IO           0x350018 // {32}RW* GPIOoutput enablesdata I/O
4861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GP3_IO           0x35001C // {32}RW* GPIO Mode/Ctrloutput enables
4871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPIO             0x350020 // {32}RW* GPIO I2C Ctrldata I/O
4881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPOE             0x350024 // {32}RW  GPIO I2C Ctrloutput enables
4891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GP_ISM           0x350028 // {16}WO  GPIO Intr Sens/Pol
4901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PLL_B            0x35C008 // {32}RW* PLL Control for ASB bus clks
4921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_M2M_CNT          0x35C024 // {32}RW  Mem2Mem DMA Cnt
4931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_M2M_XSUM         0x35C028 // {32}RO  M2M XOR-Checksum
4941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_CRC              0x35C02C // {16}RW  CRC16 init/result
4951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_CRC_D            0x35C030 // {32}WO  CRC16 new data in
4961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TM_CNT_LDW       0x35C034 // {32}RO  Timer : Counter low dword
4971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TM_CNT_UW        0x35C038 // {16}RO  Timer : Counter high word
4981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TM_LMT_LDW       0x35C03C // {32}RW  Timer : Limit low dword
4991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TM_LMT_UW        0x35C040 // {32}RW  Timer : Limit high word
5001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_PINMUX_IO        0x35C044 // {8}RW  Pin Mux Control
5011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_TSTSEL_IO        0x35C048 // {2}RW  Pin Mux Control
5021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_AFECFG_IO        0x35C04C // AFE configuration reg
5031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DDS_IO           0x35C050 // DDS Increment reg
5041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_DDSCFG_IO        0x35C054 // DDS Configuration reg
5051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_SAMPLE_IO        0x35C058 // IRIn sample reg
5061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_SRST_IO          0x35C05C // Output system reset reg
5071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_INT1_MSK         0x35C060 // DMA RISC interrupt mask
5091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_INT1_STAT        0x35C064 // DMA RISC interrupt status
5101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_INT1_MSTAT       0x35C068 // DMA RISC interrupt masked status
5111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
5141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* i2c bus registers                                                      */
5151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_I2C              0x368000 // I2C data/control
5171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_I2C_DIV          (0xf<<4)
5181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_I2C_SYNC         (1<<3)
5191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_I2C_W3B          (1<<2)
5201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_I2C_SCL          (1<<1)
5211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_I2C_SDA          (1<<0)
5221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
5251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* general purpose host registers                                         */
5261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* FIXME: tyops?  s/0x35/0x38/ ??                                         */
5271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHSTD_DMA       0x350000 // {64}RWp Host downstream
5291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHSTU_DMA       0x350008 // {64}RWp Host upstream
5301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHSTU_CNTRL     0x380048 // Host upstream control #1
5311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHSTD_CNTRL     0x38004C // Host downstream control #2
5321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHSTD_LNGTH     0x380050 // Host downstream line length
5331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_WSC        0x380054 // Host wait state control
5341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_XFR        0x380058 // Host transfer control
5351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_WDTH       0x38005C // Host interface width
5361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_HDSHK      0x380060 // Host peripheral handshake
5371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_MUX16      0x380064 // Host muxed 16-bit transfer parameters
5381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_MODE       0x380068 // Host mode select
5391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHSTD_GPCNT     0x35C020 // Host down general purpose counter
5411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHSTU_GPCNT     0x35C024 // Host up general purpose counter
5421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHSTD_GPCNTRL   0x38C030 // Host down general purpose control
5431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHSTU_GPCNTRL   0x38C034 // Host up general purpose control
5441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_DMACNTRL   0x38C040 // Host DMA control
5451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_XFR_STAT   0x38C044 // Host transfer status
5461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MO_GPHST_SOFT_RST   0x38C06C // Host software reset
5471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
5501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* RISC instructions                                                      */
5511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_SYNC		 0x80000000
5531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_SYNC_ODD		 0x80000000
5541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_SYNC_EVEN		 0x80000200
5551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_RESYNC		 0x80008000
5561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_RESYNC_ODD		 0x80008000
5571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_RESYNC_EVEN	 0x80008200
5581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_WRITE		 0x10000000
5591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_WRITEC		 0x50000000
5601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_READ		 0x90000000
5611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_READC		 0xA0000000
5621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_JUMP		 0x70000000
5631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_SKIP		 0x20000000
5641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_WRITERM		 0xB0000000
5651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_WRITECM		 0xC0000000
5661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_WRITECR		 0xD0000000
5671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_IMM		 0x00000001
5681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_SOL		 0x08000000
5701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_EOL		 0x04000000
5711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_IRQ2		 0x02000000
5731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_IRQ1		 0x01000000
5741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_CNT_NONE		 0x00000000
5761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_CNT_INC		 0x00010000
5771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_CNT_RSVR		 0x00020000
5781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_CNT_RESET		 0x00030000
5791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define RISC_JMP_SRP         	 0x01
5801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ---------------------------------------------------------------------- */
5831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* various constants                                                      */
5841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
5858ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho// DMA
5868ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho/* Interrupt mask/status */
5878ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_VIDINT		(1 <<  0)
5888ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_AUDINT		(1 <<  1)
5898ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_TSINT		(1 <<  2)
5908ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_VIPINT		(1 <<  3)
5918ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_HSTINT		(1 <<  4)
5928ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_TM1INT		(1 <<  5)
5938ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_SRCDMAINT	(1 <<  6)
5948ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_DSTDMAINT	(1 <<  7)
5958ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_RISC_RD_BERRINT	(1 << 10)
5968ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_RISC_WR_BERRINT	(1 << 11)
5978ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_BRDG_BERRINT	(1 << 12)
5988ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_SRC_DMA_BERRINT	(1 << 13)
5998ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_DST_DMA_BERRINT	(1 << 14)
6008ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_IPB_DMA_BERRINT	(1 << 15)
6018ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_I2CDONE		(1 << 16)
6028ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_I2CRACK		(1 << 17)
6038ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_IR_SMPINT	(1 << 18)
6048ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_GPIO_INT0	(1 << 19)
6058ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho#define PCI_INT_GPIO_INT1	(1 << 20)
6068ddac9ee4b6f08d7cacf79202ab882eefc55b0c0Trent Piepho
6071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SEL_BTSC     0x01
6081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SEL_EIAJ     0x02
6091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SEL_A2       0x04
6101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SEL_SAP      0x08
6111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SEL_NICAM    0x10
6121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SEL_FMRADIO  0x20
6131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds// AUD_CTL
61559fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_DN_RISCI1	(1 <<  0)
61659fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_UP_RISCI1	(1 <<  1)
61759fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_RDS_DN_RISCI1	(1 <<  2)
61859fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_DN_RISCI2	(1 <<  4) /* yes, 3 is skipped */
61959fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_UP_RISCI2	(1 <<  5)
62059fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_RDS_DN_RISCI2	(1 <<  6)
62159fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_DN_SYNC		(1 << 12)
62259fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_UP_SYNC		(1 << 13)
62359fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_RDS_DN_SYNC	(1 << 14)
62459fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_OPC_ERR		(1 << 16)
62559fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_BER_IRQ		(1 << 20)
62659fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho#define AUD_INT_MCHG_IRQ	(1 << 21)
62759fd8f8d8ee9f7539758419965381bcccfa6f798Trent Piepho
6281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_BTSC_FORCE_MONO      0
6291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_BTSC_FORCE_STEREO    1
6301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_BTSC_FORCE_SAP       2
6311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_BTSC_AUTO_STEREO     3
6321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_BTSC_AUTO_SAP        4
6331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_A2_FORCE_MONO1       8
6351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_A2_FORCE_MONO2       9
6361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_A2_FORCE_STEREO      10
6371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_A2_AUTO_MONO2        11
6381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_A2_AUTO_STEREO       12
6391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_EIAJ_FORCE_MONO1     16
6411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_EIAJ_FORCE_MONO2     17
6421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_EIAJ_FORCE_STEREO    18
6431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_EIAJ_AUTO_MONO2      19
6441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_EIAJ_AUTO_STEREO     20
6451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_NICAM_FORCE_MONO1    32
6471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_NICAM_FORCE_MONO2    33
6481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_NICAM_FORCE_STEREO   34
6491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_NICAM_AUTO_MONO2     35
6501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_NICAM_AUTO_STEREO    36
6511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_FMRADIO_FORCE_MONO   24
6531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_FMRADIO_FORCE_STEREO 25
6541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_FMRADIO_AUTO_STEREO  26
6551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_NICAM_AUTO_FALLBACK  0x00000040
6571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_FMRADIO_EN_RDS       0x00000200
6581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_NICAM_TRY_AGAIN_BIT  0x00000400
6591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_DAC_ENABLE           0x00001000
6601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_I2SOUT_ENABLE        0x00002000
6611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_I2SIN_STR2DAC        0x00004000
6621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_I2SIN_ENABLE         0x00008000
6631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_DMTRX_SUMDIFF        (0 << 7)
6651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_DMTRX_SUMR           (1 << 7)
6661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_DMTRX_LR             (2 << 7)
6671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_DMTRX_MONO           (3 << 7)
6681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EN_DMTRX_BYPASS         (1 << 11)
6691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds// Video
6711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VID_CAPTURE_CONTROL		0x310180
6721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CX23880_CAP_CTL_CAPTURE_VBI_ODD  (1<<3)
6741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CX23880_CAP_CTL_CAPTURE_VBI_EVEN (1<<2)
6751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CX23880_CAP_CTL_CAPTURE_ODD      (1<<1)
6761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CX23880_CAP_CTL_CAPTURE_EVEN     (1<<0)
6771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoInputMux0		 0x0
6791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoInputMux1		 0x1
6801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoInputMux2		 0x2
6811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoInputMux3		 0x3
6821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoInputTuner		 0x0
6831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoInputComposite	 0x1
6841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoInputSVideo	 0x2
6851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoInputOther		 0x3
6861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define Xtal0		 0x1
6881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define Xtal1		 0x2
6891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define XtalAuto	 0x3
6901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
6911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatAuto		 0x0
6921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatNTSC		 0x1
6931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatNTSCJapan	 0x2
6941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatNTSC443	 0x3
6951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPAL		 0x4
6961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALB		 0x4
6971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALD		 0x4
6981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALG		 0x4
6991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALH		 0x4
7001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALI		 0x4
7011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALBDGHI	 0x4
7021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALM		 0x5
7031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALN		 0x6
7041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALNC	 0x7
7051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPAL60	 0x8
7061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatSECAM	 0x9
7071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatAuto27MHz		 0x10
7091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatNTSC27MHz		 0x11
7101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatNTSCJapan27MHz	 0x12
7111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatNTSC44327MHz		 0x13
7121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPAL27MHz		 0x14
7131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALB27MHz		 0x14
7141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALD27MHz		 0x14
7151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALG27MHz		 0x14
7161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALH27MHz		 0x14
7171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALI27MHz		 0x14
7181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALBDGHI27MHz	 0x14
7191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALM27MHz		 0x15
7201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALN27MHz		 0x16
7211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPALNC27MHz		 0x17
7221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatPAL6027MHz		 0x18
7231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VideoFormatSECAM27MHz		 0x19
7241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NominalUSECAM	 0x87
7261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NominalVSECAM	 0x85
7271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NominalUNTSC	 0xFE
7281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NominalVNTSC	 0xB4
7291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NominalContrast  0xD8
7311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HFilterAutoFormat	 0x0
7331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HFilterCIF		 0x1
7341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HFilterQCIF		 0x2
7351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HFilterICON		 0x3
7361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VFilter2TapInterpolate  0
7381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VFilter3TapInterpolate  1
7391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VFilter4TapInterpolate  2
7401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VFilter5TapInterpolate  3
7411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VFilter2TapNoInterpolate  4
7421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VFilter3TapNoInterpolate  5
7431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VFilter4TapNoInterpolate  6
7441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VFilter5TapNoInterpolate  7
7451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatRGB32	 0x0000
7471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatRGB24	 0x0011
7481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatRGB16	 0x0022
7491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatRGB15	 0x0033
7501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatYUY2		 0x0044
7511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatBTYUV	 0x0055
7521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatY8		 0x0066
7531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatRGB8		 0x0077
7541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatPL422	 0x0088
7551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatPL411	 0x0099
7561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatYUV12	 0x00AA
7571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatYUV9		 0x00BB
7581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatRAW		 0x00EE
7591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatBSWAP         0x0300
7601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatWSWAP         0x0c00
7611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatEvenMask      0x050f
7621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatOddMask       0x0af0
7631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ColorFormatGamma         0x1000
7641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define Interlaced		 0x1
7664ac97914c6c35f6bf132071c718e034d0846b9f5Mauro Carvalho Chehab#define NonInterlaced		 0x0
7671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define FieldEven		 0x1
7691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define FieldOdd		 0x0
7701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7714ac97914c6c35f6bf132071c718e034d0846b9f5Mauro Carvalho Chehab#define TGReadWriteMode		 0x0
7724ac97914c6c35f6bf132071c718e034d0846b9f5Mauro Carvalho Chehab#define TGEnableMode		 0x1
7731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DV_CbAlign		 0x0
7751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DV_Y0Align		 0x1
7761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DV_CrAlign		 0x2
7771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DV_Y1Align		 0x3
7781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DVF_Analog		 0x0
7801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DVF_CCIR656		 0x1
7811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DVF_ByteStream		 0x2
7821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DVF_ExtVSYNC		 0x4
7831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DVF_ExtField		 0x5
7841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
7851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_VID_Y		 0x1
7861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_VID_U		 0x2
7871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_VID_V		 0x3
7881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_VID_VBI		 0x4
7891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_AUD_DN		 0x5
7901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_AUD_UP		 0x6
7911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_AUD_RDS_DN	 0x7
7921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_MPEG_DN		 0x8
7931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_VIP_DN		 0x9
7941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_VIP_UP		 0xA
7951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_HOST_DN		 0xB
7961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_HOST_UP		 0xC
7971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_FIRST		 0x1
7981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CHANNEL_LAST		 0xC
7991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
8001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define GP_COUNT_CONTROL_NONE		 0x0
8011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define GP_COUNT_CONTROL_INC		 0x1
8021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define GP_COUNT_CONTROL_RESERVED	 0x2
8031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define GP_COUNT_CONTROL_RESET		 0x3
8041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
8051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define PLL_PRESCALE_BY_2  2
8061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define PLL_PRESCALE_BY_3  3
8071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define PLL_PRESCALE_BY_4  4
8081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define PLL_PRESCALE_BY_5  5
8091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
8101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HLNotchFilter4xFsc	 0
8111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HLNotchFilterSquare	 1
8121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HLNotchFilter135NTSC	 2
8131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define HLNotchFilter135PAL	 3
8141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
8151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NTSC_8x_SUB_CARRIER  28.63636E6
8161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define PAL_8x_SUB_CARRIER  35.46895E6
8171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
8181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds// Default analog settings
8191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DEFAULT_HUE_NTSC			0x00
8201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DEFAULT_BRIGHTNESS_NTSC			0x00
8211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DEFAULT_CONTRAST_NTSC			0x39
8221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DEFAULT_SAT_U_NTSC			0x7F
8231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DEFAULT_SAT_V_NTSC			0x5A
8241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
8251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef enum
8261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{
8271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	SOURCE_TUNER = 0,
8281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	SOURCE_COMPOSITE,
8291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	SOURCE_SVIDEO,
8301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	SOURCE_OTHER1,
8311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	SOURCE_OTHER2,
8321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	SOURCE_COMPVIASVIDEO,
8331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	SOURCE_CCIR656
8341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} VIDEOSOURCETYPE;
8351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
8361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* _CX88_REG_H_ */
837