1d56410e0a594150c5ca06319da7bc8901c4d455eMauro Carvalho Chehab/*
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    saa7146.h - definitions philips saa7146 based cards
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    Copyright (C) 1999 Nathan Laredo (laredo@gnu.org)
4d56410e0a594150c5ca06319da7bc8901c4d455eMauro Carvalho Chehab
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    This program is free software; you can redistribute it and/or modify
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    it under the terms of the GNU General Public License as published by
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    the Free Software Foundation; either version 2 of the License, or
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    (at your option) any later version.
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    This program is distributed in the hope that it will be useful,
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    but WITHOUT ANY WARRANTY; without even the implied warranty of
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    GNU General Public License for more details.
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    You should have received a copy of the GNU General Public License
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    along with this program; if not, write to the Free Software
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds*/
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef __SAA7146_REG__
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define __SAA7146_REG__
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_ODD1	0x00
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_EVEN1	0x04
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PROT_ADDR1	0x08
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PITCH1		0x0c
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PAGE1		0x10
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_NUM_LINE_BYTE1	0x14
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_ODD2	0x18
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_EVEN2	0x1c
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PROT_ADDR2	0x20
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PITCH2		0x24
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PAGE2		0x28
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_NUM_LINE_BYTE2	0x2c
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_ODD3	0x30
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_EVEN3	0x34
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PROT_ADDR3	0x38
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PITCH3		0x3c
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PAGE3		0x40
391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_NUM_LINE_BYTE3	0x44
401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PCI_BT_V1	0x48
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PCI_BT_V2	0x49
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PCI_BT_V3	0x4a
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PCI_BT_DEBI	0x4b
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PCI_BT_A	0x4c
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_DD1_INIT	0x50
461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_DD1_STREAM_B	0x54
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_DD1_STREAM_A	0x56
481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BRS_CTRL	0x58
491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_HPS_CTRL	0x5c
501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_HPS_V_SCALE	0x60
511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_HPS_V_GAIN	0x64
521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_HPS_H_PRESCALE	0x68
531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_HPS_H_SCALE	0x6c
541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BCS_CTRL	0x70
551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_CHROMA_KEY_RANGE	0x74
561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_CLIP_FORMAT_CTRL	0x78
571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_DEBI_CONFIG	0x7c
581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_DEBI_COMMAND	0x80
591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_DEBI_PAGE	0x84
601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_DEBI_AD		0x88
611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_TRANSFER	0x8c
621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_STATUS	0x90
631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_A1_IN	0x94
641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PROT_A1_IN	0x98
651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PAGE_A1_IN	0x9C
661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_A1_OUT	0xa0
671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PROT_A1_OUT	0xa4
681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PAGE_A1_OUT	0xa8
691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_A2_IN	0xac
701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PROT_A2_IN	0xb0
711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PAGE_A2_IN	0xb4
721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_BASE_A2_OUT	0xb8
731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PROT_A2_OUT	0xbc
741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PAGE_A2_OUT	0xc0
751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RPS_PAGE0	0xc4
761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RPS_PAGE1	0xc8
771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RPS_THRESH0	0xcc
781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RPS_THRESH1	0xd0
791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RPS_TOV0	0xd4
801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RPS_TOV1	0xd8
811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_IER		0xdc
821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_GPIO_CTRL	0xe0
831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_EC1SSR		0xe4
841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_EC2SSR		0xe8
851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ECT1R		0xec
861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ECT2R		0xf0
871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ACON1		0xf4
881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ACON2		0xf8
891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1		0xfc
901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2		0x100
911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RPS_ADDR0	0x104
921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RPS_ADDR1	0x108
931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ISR		0x10c
941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR		0x110
951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR		0x114
961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_EC1R		0x118
971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_EC2R		0x11c
981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_VDP1		0x120
991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_VDP2		0x124
1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_VDP3		0x128
1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ADP1		0x12c
1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ADP2		0x130
1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ADP3		0x134
1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ADP4		0x138
1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_DDP		0x13c
1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_LEVEL_REP	0x140
1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_FB_BUFFER1	0x144
1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_FB_BUFFER2	0x148
1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_A_TIME_SLOT1	0x180
1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_A_TIME_SLOT2	0x1C0
1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* bitfield defines */
1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_31			0x80000000
1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_30			0x40000000
1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_29			0x20000000
1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_28			0x10000000
1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_27			0x08000000
1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_26			0x04000000
1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_25			0x02000000
1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_24			0x01000000
1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_23			0x00800000
1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_22			0x00400000
1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_21			0x00200000
1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_20			0x00100000
1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_19			0x00080000
1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_18			0x00040000
1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_17			0x00020000
1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_16			0x00010000
1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_15			0x00008000
1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_14			0x00004000
1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_13			0x00002000
1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_12			0x00001000
1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_11			0x00000800
1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_10			0x00000400
1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_09			0x00000200
1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_08			0x00000100
1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_07			0x00000080
1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_06			0x00000040
1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_05			0x00000020
1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_04			0x00000010
1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_03			0x00000008
1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_02			0x00000004
1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_01			0x00000002
1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_00			0x00000001
1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_B0			0x000000ff
1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_B1			0x0000ff00
1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_B2			0x00ff0000
1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_B3			0xff000000
1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_W0			0x0000ffff
1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_W1			0xffff0000
1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_PA			0xfffffffc
1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_PR			0xfffffffe
1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_ER			0xffffffff
1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MASK_NONE		0x00000000
1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PAGE_MAP_EN	MASK_11
1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* main control register 1 */
1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_MRST_N	MASK_15
1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_ERPS1	MASK_13
1601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_ERPS0	MASK_12
1611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_EDP		MASK_11
1621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_EVP		MASK_10
1631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_EAP		MASK_09
1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_EI2C	MASK_08
1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_TR_E_DEBI	MASK_07
1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_TR_E_1	MASK_06
1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_TR_E_2	MASK_05
1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_TR_E_3	MASK_04
1691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_TR_E_A2_OUT	MASK_03
1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_TR_E_A2_IN	MASK_02
1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_TR_E_A1_OUT	MASK_01
1721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC1_TR_E_A1_IN	MASK_00
1731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* main control register 2 */
1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_RPS_SIG4	MASK_15
1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_RPS_SIG3	MASK_14
1761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_RPS_SIG2	MASK_13
1771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_RPS_SIG1	MASK_12
1781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_RPS_SIG0	MASK_11
1791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_D1_B	MASK_10
1801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_D1_A	MASK_09
1811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_BRS	MASK_08
1821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_HPS_H	MASK_06
1831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_HPS_V	MASK_05
1841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_DMA3	MASK_04
1851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_DMA2	MASK_03
1861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_DMA1	MASK_02
1871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_DEBI	MASK_01
1881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_MC2_UPLD_I2C	MASK_00
1891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Primary Status Register and Interrupt Enable/Status Registers */
1901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_PPEF	MASK_31
1911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_PABO	MASK_30
1921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_PPED	MASK_29
1931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_RPS_I1	MASK_28
1941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_RPS_I0	MASK_27
1951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_RPS_LATE1	MASK_26
1961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_RPS_LATE0	MASK_25
1971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_RPS_E1	MASK_24
1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_RPS_E0	MASK_23
1991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_RPS_TO1	MASK_22
2001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_RPS_TO0	MASK_21
2011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_UPLD	MASK_20
2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_DEBI_S	MASK_19
2031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_DEBI_E	MASK_18
2041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_I2C_S	MASK_17
2051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_I2C_E	MASK_16
2061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_A2_IN	MASK_15
2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_A2_OUT	MASK_14
2081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_A1_IN	MASK_13
2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_A1_OUT	MASK_12
2101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_AFOU	MASK_11
2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_V_PE	MASK_10
2121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_VFOU	MASK_09
2131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_FIDA	MASK_08
2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_FIDB	MASK_07
2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_PIN3	MASK_06
2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_PIN2	MASK_05
2171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_PIN1	MASK_04
2181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_PIN0	MASK_03
2191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_ECS		MASK_02
2201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_EC3S	MASK_01
2211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_PSR_EC0S	MASK_00
2221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Secondary Status Register */
2231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_PRQ		MASK_31
2241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_PMA		MASK_30
2251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_RPS_RE1	MASK_29
2261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_RPS_PE1	MASK_28
2271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_RPS_A1	MASK_27
2281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_RPS_RE0	MASK_26
2291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_RPS_PE0	MASK_25
2301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_RPS_A0	MASK_24
2311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_DEBI_TO	MASK_23
2321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_DEBI_EF	MASK_22
2331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_I2C_EA	MASK_21
2341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_I2C_EW	MASK_20
2351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_I2C_ER	MASK_19
2361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_I2C_EL	MASK_18
2371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_I2C_EF	MASK_17
2381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_V3P		MASK_16
2391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_V2P		MASK_15
2401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_V1P		MASK_14
2411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_VF3		MASK_13
2421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_VF2		MASK_12
2431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_VF1		MASK_11
2441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_AF2_IN	MASK_10
2451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_AF2_OUT	MASK_09
2461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_AF1_IN	MASK_08
2471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_AF1_OUT	MASK_07
2481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_VGT		MASK_05
2491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_LNQG	MASK_04
2501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_EC5S	MASK_03
2511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_EC4S	MASK_02
2521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_EC2S	MASK_01
2531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_SSR_EC1S	MASK_00
2541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* I2C status register */
2551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_ABORT	MASK_07
2561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_SPERR	MASK_06
2571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_APERR	MASK_05
2581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_DTERR	MASK_04
2591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_DRERR	MASK_03
2601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_AL		MASK_02
2611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_ERR		MASK_01
2621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_I2C_BUSY	MASK_00
2631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* output formats */
2641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV422	0
2651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RGB16	0
2661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV444	1
2671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RGB24	1
2681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ARGB32	2
2691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV411	3
2701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_ARGB15  3
2711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV2	4
2721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RGAB15	4
2731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_Y8	6
2741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV8	7
2751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_RGB8	7
2761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV444p	8
2771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV422p	9
2781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV420p	10
2791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV1620	11
2801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_Y1	13
2811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_Y2	14
2821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAA7146_YUV1	15
2831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
284