Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/sound/pci/aw2/saa7146.h
10817 views
1
/*****************************************************************************
2
*
3
* Copyright (C) 2008 Cedric Bregardis <[email protected]> and
4
* Jean-Christian Hassler <[email protected]>
5
*
6
* This file is part of the Audiowerk2 ALSA driver
7
*
8
* The Audiowerk2 ALSA driver is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation; version 2.
11
*
12
* The Audiowerk2 ALSA driver is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with the Audiowerk2 ALSA driver; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
20
* USA.
21
*
22
*****************************************************************************/
23
24
/* SAA7146 registers */
25
#define PCI_BT_A 0x4C
26
#define IICTFR 0x8C
27
#define IICSTA 0x90
28
#define BaseA1_in 0x94
29
#define ProtA1_in 0x98
30
#define PageA1_in 0x9C
31
#define BaseA1_out 0xA0
32
#define ProtA1_out 0xA4
33
#define PageA1_out 0xA8
34
#define BaseA2_in 0xAC
35
#define ProtA2_in 0xB0
36
#define PageA2_in 0xB4
37
#define BaseA2_out 0xB8
38
#define ProtA2_out 0xBC
39
#define PageA2_out 0xC0
40
#define IER 0xDC
41
#define GPIO_CTRL 0xE0
42
#define ACON1 0xF4
43
#define ACON2 0xF8
44
#define MC1 0xFC
45
#define MC2 0x100
46
#define ISR 0x10C
47
#define PSR 0x110
48
#define SSR 0x114
49
#define PCI_ADP1 0x12C
50
#define PCI_ADP2 0x130
51
#define PCI_ADP3 0x134
52
#define PCI_ADP4 0x138
53
#define LEVEL_REP 0x140
54
#define FB_BUFFER1 0x144
55
#define FB_BUFFER2 0x148
56
#define TSL1 0x180
57
#define TSL2 0x1C0
58
59
#define ME (1UL << 11)
60
#define LIMIT (1UL << 4)
61
#define PV (1UL << 3)
62
63
/* PSR/ISR/IER */
64
#define PPEF (1UL << 31)
65
#define PABO (1UL << 30)
66
#define IIC_S (1UL << 17)
67
#define IIC_E (1UL << 16)
68
#define A2_in (1UL << 15)
69
#define A2_out (1UL << 14)
70
#define A1_in (1UL << 13)
71
#define A1_out (1UL << 12)
72
#define AFOU (1UL << 11)
73
#define PIN3 (1UL << 6)
74
#define PIN2 (1UL << 5)
75
#define PIN1 (1UL << 4)
76
#define PIN0 (1UL << 3)
77
#define ECS (1UL << 2)
78
#define EC3S (1UL << 1)
79
#define EC0S (1UL << 0)
80
81
/* SSR */
82
#define PRQ (1UL << 31)
83
#define PMA (1UL << 30)
84
#define IIC_EA (1UL << 21)
85
#define IIC_EW (1UL << 20)
86
#define IIC_ER (1UL << 19)
87
#define IIC_EL (1UL << 18)
88
#define IIC_EF (1UL << 17)
89
#define AF2_in (1UL << 10)
90
#define AF2_out (1UL << 9)
91
#define AF1_in (1UL << 8)
92
#define AF1_out (1UL << 7)
93
#define EC5S (1UL << 3)
94
#define EC4S (1UL << 2)
95
#define EC2S (1UL << 1)
96
#define EC1S (1UL << 0)
97
98
/* PCI_BT_A */
99
#define BurstA1_in (1UL << 26)
100
#define ThreshA1_in (1UL << 24)
101
#define BurstA1_out (1UL << 18)
102
#define ThreshA1_out (1UL << 16)
103
#define BurstA2_in (1UL << 10)
104
#define ThreshA2_in (1UL << 8)
105
#define BurstA2_out (1UL << 2)
106
#define ThreshA2_out (1UL << 0)
107
108
/* MC1 */
109
#define MRST_N (1UL << 15)
110
#define EAP (1UL << 9)
111
#define EI2C (1UL << 8)
112
#define TR_E_A2_OUT (1UL << 3)
113
#define TR_E_A2_IN (1UL << 2)
114
#define TR_E_A1_OUT (1UL << 1)
115
#define TR_E_A1_IN (1UL << 0)
116
117
/* MC2 */
118
#define UPLD_IIC (1UL << 0)
119
120
/* ACON1 */
121
#define AUDIO_MODE (1UL << 29)
122
#define MAXLEVEL (1UL << 22)
123
#define A1_SWAP (1UL << 21)
124
#define A2_SWAP (1UL << 20)
125
#define WS0_CTRL (1UL << 18)
126
#define WS0_SYNC (1UL << 16)
127
#define WS1_CTRL (1UL << 14)
128
#define WS1_SYNC (1UL << 12)
129
#define WS2_CTRL (1UL << 10)
130
#define WS2_SYNC (1UL << 8)
131
#define WS3_CTRL (1UL << 6)
132
#define WS3_SYNC (1UL << 4)
133
#define WS4_CTRL (1UL << 2)
134
#define WS4_SYNC (1UL << 0)
135
136
/* ACON2 */
137
#define A1_CLKSRC (1UL << 27)
138
#define A2_CLKSRC (1UL << 22)
139
#define INVERT_BCLK1 (1UL << 21)
140
#define INVERT_BCLK2 (1UL << 20)
141
#define BCLK1_OEN (1UL << 19)
142
#define BCLK2_OEN (1UL << 18)
143
144
/* IICSTA */
145
#define IICCC (1UL << 8)
146
#define ABORT (1UL << 7)
147
#define SPERR (1UL << 6)
148
#define APERR (1UL << 5)
149
#define DTERR (1UL << 4)
150
#define DRERR (1UL << 3)
151
#define AL (1UL << 2)
152
#define ERR (1UL << 1)
153
#define BUSY (1UL << 0)
154
155
/* IICTFR */
156
#define BYTE2 (1UL << 24)
157
#define BYTE1 (1UL << 16)
158
#define BYTE0 (1UL << 8)
159
#define ATRR2 (1UL << 6)
160
#define ATRR1 (1UL << 4)
161
#define ATRR0 (1UL << 2)
162
#define ERR (1UL << 1)
163
#define BUSY (1UL << 0)
164
165
#define START 3
166
#define CONT 2
167
#define STOP 1
168
#define NOP 0
169
170