xref: /openbmc/linux/sound/pci/aw2/saa7146.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1  /* SPDX-License-Identifier: GPL-2.0-only */
2  /*****************************************************************************
3   *
4   * Copyright (C) 2008 Cedric Bregardis <cedric.bregardis@free.fr> and
5   * Jean-Christian Hassler <jhassler@free.fr>
6   *
7   * This file is part of the Audiowerk2 ALSA driver
8   *
9   *****************************************************************************/
10  
11  /* SAA7146 registers */
12  #define PCI_BT_A	0x4C
13  #define IICTFR		0x8C
14  #define IICSTA		0x90
15  #define BaseA1_in	0x94
16  #define ProtA1_in	0x98
17  #define PageA1_in	0x9C
18  #define BaseA1_out	0xA0
19  #define ProtA1_out	0xA4
20  #define PageA1_out	0xA8
21  #define BaseA2_in	0xAC
22  #define ProtA2_in	0xB0
23  #define PageA2_in	0xB4
24  #define BaseA2_out	0xB8
25  #define ProtA2_out	0xBC
26  #define PageA2_out	0xC0
27  #define IER		0xDC
28  #define GPIO_CTRL	0xE0
29  #define ACON1		0xF4
30  #define ACON2		0xF8
31  #define MC1		0xFC
32  #define MC2		0x100
33  #define ISR		0x10C
34  #define PSR		0x110
35  #define SSR		0x114
36  #define PCI_ADP1	0x12C
37  #define PCI_ADP2	0x130
38  #define PCI_ADP3	0x134
39  #define PCI_ADP4	0x138
40  #define LEVEL_REP	0x140
41  #define FB_BUFFER1	0x144
42  #define FB_BUFFER2	0x148
43  #define TSL1		0x180
44  #define TSL2		0x1C0
45  
46  #define ME	(1UL << 11)
47  #define LIMIT	(1UL << 4)
48  #define PV	(1UL << 3)
49  
50  /* PSR/ISR/IER */
51  #define PPEF		(1UL << 31)
52  #define PABO		(1UL << 30)
53  #define IIC_S		(1UL << 17)
54  #define IIC_E		(1UL << 16)
55  #define A2_in		(1UL << 15)
56  #define A2_out		(1UL << 14)
57  #define A1_in		(1UL << 13)
58  #define A1_out		(1UL << 12)
59  #define AFOU		(1UL << 11)
60  #define PIN3		(1UL << 6)
61  #define PIN2		(1UL << 5)
62  #define PIN1		(1UL << 4)
63  #define PIN0		(1UL << 3)
64  #define ECS		(1UL << 2)
65  #define EC3S		(1UL << 1)
66  #define EC0S		(1UL << 0)
67  
68  /* SSR */
69  #define PRQ		(1UL << 31)
70  #define PMA		(1UL << 30)
71  #define IIC_EA		(1UL << 21)
72  #define IIC_EW		(1UL << 20)
73  #define IIC_ER		(1UL << 19)
74  #define IIC_EL		(1UL << 18)
75  #define IIC_EF		(1UL << 17)
76  #define AF2_in		(1UL << 10)
77  #define AF2_out		(1UL << 9)
78  #define AF1_in		(1UL << 8)
79  #define AF1_out		(1UL << 7)
80  #define EC5S		(1UL << 3)
81  #define EC4S		(1UL << 2)
82  #define EC2S		(1UL << 1)
83  #define EC1S		(1UL << 0)
84  
85  /* PCI_BT_A */
86  #define BurstA1_in	(1UL << 26)
87  #define ThreshA1_in	(1UL << 24)
88  #define BurstA1_out	(1UL << 18)
89  #define ThreshA1_out	(1UL << 16)
90  #define BurstA2_in	(1UL << 10)
91  #define ThreshA2_in	(1UL << 8)
92  #define BurstA2_out	(1UL << 2)
93  #define ThreshA2_out	(1UL << 0)
94  
95  /* MC1 */
96  #define MRST_N		(1UL << 15)
97  #define EAP		(1UL << 9)
98  #define EI2C		(1UL << 8)
99  #define TR_E_A2_OUT	(1UL << 3)
100  #define TR_E_A2_IN	(1UL << 2)
101  #define TR_E_A1_OUT	(1UL << 1)
102  #define TR_E_A1_IN	(1UL << 0)
103  
104  /* MC2 */
105  #define UPLD_IIC	(1UL << 0)
106  
107  /* ACON1 */
108  #define AUDIO_MODE	(1UL << 29)
109  #define MAXLEVEL	(1UL << 22)
110  #define A1_SWAP		(1UL << 21)
111  #define A2_SWAP		(1UL << 20)
112  #define WS0_CTRL	(1UL << 18)
113  #define WS0_SYNC	(1UL << 16)
114  #define WS1_CTRL	(1UL << 14)
115  #define WS1_SYNC	(1UL << 12)
116  #define WS2_CTRL	(1UL << 10)
117  #define WS2_SYNC	(1UL << 8)
118  #define WS3_CTRL	(1UL << 6)
119  #define WS3_SYNC	(1UL << 4)
120  #define WS4_CTRL	(1UL << 2)
121  #define WS4_SYNC	(1UL << 0)
122  
123  /* ACON2 */
124  #define A1_CLKSRC	(1UL << 27)
125  #define A2_CLKSRC	(1UL << 22)
126  #define INVERT_BCLK1	(1UL << 21)
127  #define INVERT_BCLK2	(1UL << 20)
128  #define BCLK1_OEN	(1UL << 19)
129  #define BCLK2_OEN	(1UL << 18)
130  
131  /* IICSTA */
132  #define IICCC		(1UL << 8)
133  #define ABORT		(1UL << 7)
134  #define SPERR		(1UL << 6)
135  #define APERR		(1UL << 5)
136  #define DTERR		(1UL << 4)
137  #define DRERR		(1UL << 3)
138  #define AL		(1UL << 2)
139  #define ERR		(1UL << 1)
140  #define BUSY		(1UL << 0)
141  
142  /* IICTFR */
143  #define BYTE2		(1UL << 24)
144  #define BYTE1		(1UL << 16)
145  #define BYTE0		(1UL << 8)
146  #define ATRR2		(1UL << 6)
147  #define ATRR1		(1UL << 4)
148  #define ATRR0		(1UL << 2)
149  #define ERR		(1UL << 1)
150  #define BUSY		(1UL << 0)
151  
152  #define START	3
153  #define CONT	2
154  #define STOP	1
155  #define NOP	0
156