169 lines
		
	
	
	
		
			4.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			169 lines
		
	
	
	
		
			4.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*****************************************************************************
 | ||
|  |  * | ||
|  |  * Copyright (C) 2008 Cedric Bregardis <cedric.bregardis@free.fr> and | ||
|  |  * Jean-Christian Hassler <jhassler@free.fr> | ||
|  |  * | ||
|  |  * This file is part of the Audiowerk2 ALSA driver | ||
|  |  * | ||
|  |  * The Audiowerk2 ALSA driver is free software; you can redistribute it and/or | ||
|  |  * modify it under the terms of the GNU General Public License as published by | ||
|  |  * the Free Software Foundation; version 2. | ||
|  |  * | ||
|  |  * The Audiowerk2 ALSA driver is distributed in the hope that it will be useful, | ||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||
|  |  * GNU General Public License for more details. | ||
|  |  * | ||
|  |  * You should have received a copy of the GNU General Public License | ||
|  |  * along with the Audiowerk2 ALSA driver; if not, write to the Free Software | ||
|  |  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, | ||
|  |  * USA. | ||
|  |  * | ||
|  |  *****************************************************************************/ | ||
|  | 
 | ||
|  | /* SAA7146 registers */ | ||
|  | #define PCI_BT_A	0x4C
 | ||
|  | #define IICTFR		0x8C
 | ||
|  | #define IICSTA		0x90
 | ||
|  | #define BaseA1_in	0x94
 | ||
|  | #define ProtA1_in	0x98
 | ||
|  | #define PageA1_in	0x9C
 | ||
|  | #define BaseA1_out	0xA0
 | ||
|  | #define ProtA1_out	0xA4
 | ||
|  | #define PageA1_out	0xA8
 | ||
|  | #define BaseA2_in	0xAC
 | ||
|  | #define ProtA2_in	0xB0
 | ||
|  | #define PageA2_in	0xB4
 | ||
|  | #define BaseA2_out	0xB8
 | ||
|  | #define ProtA2_out	0xBC
 | ||
|  | #define PageA2_out	0xC0
 | ||
|  | #define IER		0xDC
 | ||
|  | #define GPIO_CTRL	0xE0
 | ||
|  | #define ACON1		0xF4
 | ||
|  | #define ACON2		0xF8
 | ||
|  | #define MC1		0xFC
 | ||
|  | #define MC2		0x100
 | ||
|  | #define ISR		0x10C
 | ||
|  | #define PSR		0x110
 | ||
|  | #define SSR		0x114
 | ||
|  | #define PCI_ADP1	0x12C
 | ||
|  | #define PCI_ADP2	0x130
 | ||
|  | #define PCI_ADP3	0x134
 | ||
|  | #define PCI_ADP4	0x138
 | ||
|  | #define LEVEL_REP	0x140
 | ||
|  | #define FB_BUFFER1	0x144
 | ||
|  | #define FB_BUFFER2	0x148
 | ||
|  | #define TSL1		0x180
 | ||
|  | #define TSL2		0x1C0
 | ||
|  | 
 | ||
|  | #define ME	(1UL << 11)
 | ||
|  | #define LIMIT	(1UL << 4)
 | ||
|  | #define PV	(1UL << 3)
 | ||
|  | 
 | ||
|  | /* PSR/ISR/IER */ | ||
|  | #define PPEF		(1UL << 31)
 | ||
|  | #define PABO		(1UL << 30)
 | ||
|  | #define IIC_S		(1UL << 17)
 | ||
|  | #define IIC_E		(1UL << 16)
 | ||
|  | #define A2_in		(1UL << 15)
 | ||
|  | #define A2_out		(1UL << 14)
 | ||
|  | #define A1_in		(1UL << 13)
 | ||
|  | #define A1_out		(1UL << 12)
 | ||
|  | #define AFOU		(1UL << 11)
 | ||
|  | #define PIN3		(1UL << 6)
 | ||
|  | #define PIN2		(1UL << 5)
 | ||
|  | #define PIN1		(1UL << 4)
 | ||
|  | #define PIN0		(1UL << 3)
 | ||
|  | #define ECS		(1UL << 2)
 | ||
|  | #define EC3S		(1UL << 1)
 | ||
|  | #define EC0S		(1UL << 0)
 | ||
|  | 
 | ||
|  | /* SSR */ | ||
|  | #define PRQ		(1UL << 31)
 | ||
|  | #define PMA		(1UL << 30)
 | ||
|  | #define IIC_EA		(1UL << 21)
 | ||
|  | #define IIC_EW		(1UL << 20)
 | ||
|  | #define IIC_ER		(1UL << 19)
 | ||
|  | #define IIC_EL		(1UL << 18)
 | ||
|  | #define IIC_EF		(1UL << 17)
 | ||
|  | #define AF2_in		(1UL << 10)
 | ||
|  | #define AF2_out		(1UL << 9)
 | ||
|  | #define AF1_in		(1UL << 8)
 | ||
|  | #define AF1_out		(1UL << 7)
 | ||
|  | #define EC5S		(1UL << 3)
 | ||
|  | #define EC4S		(1UL << 2)
 | ||
|  | #define EC2S		(1UL << 1)
 | ||
|  | #define EC1S		(1UL << 0)
 | ||
|  | 
 | ||
|  | /* PCI_BT_A */ | ||
|  | #define BurstA1_in	(1UL << 26)
 | ||
|  | #define ThreshA1_in	(1UL << 24)
 | ||
|  | #define BurstA1_out	(1UL << 18)
 | ||
|  | #define ThreshA1_out	(1UL << 16)
 | ||
|  | #define BurstA2_in	(1UL << 10)
 | ||
|  | #define ThreshA2_in	(1UL << 8)
 | ||
|  | #define BurstA2_out	(1UL << 2)
 | ||
|  | #define ThreshA2_out	(1UL << 0)
 | ||
|  | 
 | ||
|  | /* MC1 */ | ||
|  | #define MRST_N		(1UL << 15)
 | ||
|  | #define EAP		(1UL << 9)
 | ||
|  | #define EI2C		(1UL << 8)
 | ||
|  | #define TR_E_A2_OUT	(1UL << 3)
 | ||
|  | #define TR_E_A2_IN	(1UL << 2)
 | ||
|  | #define TR_E_A1_OUT	(1UL << 1)
 | ||
|  | #define TR_E_A1_IN	(1UL << 0)
 | ||
|  | 
 | ||
|  | /* MC2 */ | ||
|  | #define UPLD_IIC	(1UL << 0)
 | ||
|  | 
 | ||
|  | /* ACON1 */ | ||
|  | #define AUDIO_MODE	(1UL << 29)
 | ||
|  | #define MAXLEVEL	(1UL << 22)
 | ||
|  | #define A1_SWAP		(1UL << 21)
 | ||
|  | #define A2_SWAP		(1UL << 20)
 | ||
|  | #define WS0_CTRL	(1UL << 18)
 | ||
|  | #define WS0_SYNC	(1UL << 16)
 | ||
|  | #define WS1_CTRL	(1UL << 14)
 | ||
|  | #define WS1_SYNC	(1UL << 12)
 | ||
|  | #define WS2_CTRL	(1UL << 10)
 | ||
|  | #define WS2_SYNC	(1UL << 8)
 | ||
|  | #define WS3_CTRL	(1UL << 6)
 | ||
|  | #define WS3_SYNC	(1UL << 4)
 | ||
|  | #define WS4_CTRL	(1UL << 2)
 | ||
|  | #define WS4_SYNC	(1UL << 0)
 | ||
|  | 
 | ||
|  | /* ACON2 */ | ||
|  | #define A1_CLKSRC	(1UL << 27)
 | ||
|  | #define A2_CLKSRC	(1UL << 22)
 | ||
|  | #define INVERT_BCLK1	(1UL << 21)
 | ||
|  | #define INVERT_BCLK2	(1UL << 20)
 | ||
|  | #define BCLK1_OEN	(1UL << 19)
 | ||
|  | #define BCLK2_OEN	(1UL << 18)
 | ||
|  | 
 | ||
|  | /* IICSTA */ | ||
|  | #define IICCC		(1UL << 8)
 | ||
|  | #define ABORT		(1UL << 7)
 | ||
|  | #define SPERR		(1UL << 6)
 | ||
|  | #define APERR		(1UL << 5)
 | ||
|  | #define DTERR		(1UL << 4)
 | ||
|  | #define DRERR		(1UL << 3)
 | ||
|  | #define AL		(1UL << 2)
 | ||
|  | #define ERR		(1UL << 1)
 | ||
|  | #define BUSY		(1UL << 0)
 | ||
|  | 
 | ||
|  | /* IICTFR */ | ||
|  | #define BYTE2		(1UL << 24)
 | ||
|  | #define BYTE1		(1UL << 16)
 | ||
|  | #define BYTE0		(1UL << 8)
 | ||
|  | #define ATRR2		(1UL << 6)
 | ||
|  | #define ATRR1		(1UL << 4)
 | ||
|  | #define ATRR0		(1UL << 2)
 | ||
|  | #define ERR		(1UL << 1)
 | ||
|  | #define BUSY		(1UL << 0)
 | ||
|  | 
 | ||
|  | #define START	3
 | ||
|  | #define CONT	2
 | ||
|  | #define STOP	1
 | ||
|  | #define NOP	0
 |