~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/sound/soc/ti/davinci-mcasp.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 /*
  3  * ALSA SoC McASP Audio Layer for TI DAVINCI processor
  4  *
  5  * MCASP related definitions
  6  *
  7  * Author: Nirmal Pandey <n-pandey@ti.com>,
  8  *         Suresh Rajashekara <suresh.r@ti.com>
  9  *         Steve Chen <schen@.mvista.com>
 10  *
 11  * Copyright:   (C) 2009 MontaVista Software, Inc., <source@mvista.com>
 12  * Copyright:   (C) 2009  Texas Instruments, India
 13  */
 14 
 15 #ifndef DAVINCI_MCASP_H
 16 #define DAVINCI_MCASP_H
 17 
 18 /*
 19  * McASP register definitions
 20  */
 21 #define DAVINCI_MCASP_PID_REG           0x00
 22 #define DAVINCI_MCASP_PWREMUMGT_REG     0x04
 23 
 24 #define DAVINCI_MCASP_PFUNC_REG         0x10
 25 #define DAVINCI_MCASP_PDIR_REG          0x14
 26 #define DAVINCI_MCASP_PDOUT_REG         0x18
 27 #define DAVINCI_MCASP_PDSET_REG         0x1c
 28 
 29 #define DAVINCI_MCASP_PDCLR_REG         0x20
 30 
 31 #define DAVINCI_MCASP_TLGC_REG          0x30
 32 #define DAVINCI_MCASP_TLMR_REG          0x34
 33 
 34 #define DAVINCI_MCASP_GBLCTL_REG        0x44
 35 #define DAVINCI_MCASP_AMUTE_REG         0x48
 36 #define DAVINCI_MCASP_LBCTL_REG         0x4c
 37 
 38 #define DAVINCI_MCASP_TXDITCTL_REG      0x50
 39 
 40 #define DAVINCI_MCASP_GBLCTLR_REG       0x60
 41 #define DAVINCI_MCASP_RXMASK_REG        0x64
 42 #define DAVINCI_MCASP_RXFMT_REG         0x68
 43 #define DAVINCI_MCASP_RXFMCTL_REG       0x6c
 44 
 45 #define DAVINCI_MCASP_ACLKRCTL_REG      0x70
 46 #define DAVINCI_MCASP_AHCLKRCTL_REG     0x74
 47 #define DAVINCI_MCASP_RXTDM_REG         0x78
 48 #define DAVINCI_MCASP_EVTCTLR_REG       0x7c
 49 
 50 #define DAVINCI_MCASP_RXSTAT_REG        0x80
 51 #define DAVINCI_MCASP_RXTDMSLOT_REG     0x84
 52 #define DAVINCI_MCASP_RXCLKCHK_REG      0x88
 53 #define DAVINCI_MCASP_REVTCTL_REG       0x8c
 54 
 55 #define DAVINCI_MCASP_GBLCTLX_REG       0xa0
 56 #define DAVINCI_MCASP_TXMASK_REG        0xa4
 57 #define DAVINCI_MCASP_TXFMT_REG         0xa8
 58 #define DAVINCI_MCASP_TXFMCTL_REG       0xac
 59 
 60 #define DAVINCI_MCASP_ACLKXCTL_REG      0xb0
 61 #define DAVINCI_MCASP_AHCLKXCTL_REG     0xb4
 62 #define DAVINCI_MCASP_TXTDM_REG         0xb8
 63 #define DAVINCI_MCASP_EVTCTLX_REG       0xbc
 64 
 65 #define DAVINCI_MCASP_TXSTAT_REG        0xc0
 66 #define DAVINCI_MCASP_TXTDMSLOT_REG     0xc4
 67 #define DAVINCI_MCASP_TXCLKCHK_REG      0xc8
 68 #define DAVINCI_MCASP_XEVTCTL_REG       0xcc
 69 
 70 /* Left(even TDM Slot) Channel Status Register File */
 71 #define DAVINCI_MCASP_DITCSRA_REG       0x100
 72 /* Right(odd TDM slot) Channel Status Register File */
 73 #define DAVINCI_MCASP_DITCSRB_REG       0x118
 74 /* Left(even TDM slot) User Data Register File */
 75 #define DAVINCI_MCASP_DITUDRA_REG       0x130
 76 /* Right(odd TDM Slot) User Data Register File */
 77 #define DAVINCI_MCASP_DITUDRB_REG       0x148
 78 
 79 /* Serializer n Control Register */
 80 #define DAVINCI_MCASP_XRSRCTL_BASE_REG  0x180
 81 #define DAVINCI_MCASP_XRSRCTL_REG(n)    (DAVINCI_MCASP_XRSRCTL_BASE_REG + \
 82                                                 (n << 2))
 83 
 84 /* Transmit Buffer for Serializer n */
 85 #define DAVINCI_MCASP_TXBUF_REG(n)      (0x200 + (n << 2))
 86 /* Receive Buffer for Serializer n */
 87 #define DAVINCI_MCASP_RXBUF_REG(n)      (0x280 + (n << 2))
 88 
 89 /* McASP FIFO Registers */
 90 #define DAVINCI_MCASP_V2_AFIFO_BASE     (0x1010)
 91 #define DAVINCI_MCASP_V3_AFIFO_BASE     (0x1000)
 92 
 93 /* FIFO register offsets from AFIFO base */
 94 #define MCASP_WFIFOCTL_OFFSET           (0x0)
 95 #define MCASP_WFIFOSTS_OFFSET           (0x4)
 96 #define MCASP_RFIFOCTL_OFFSET           (0x8)
 97 #define MCASP_RFIFOSTS_OFFSET           (0xc)
 98 
 99 /*
100  * DAVINCI_MCASP_PWREMUMGT_REG - Power Down and Emulation Management
101  *     Register Bits
102  */
103 #define MCASP_FREE      BIT(0)
104 #define MCASP_SOFT      BIT(1)
105 
106 /*
107  * DAVINCI_MCASP_PFUNC_REG - Pin Function / GPIO Enable Register Bits
108  * DAVINCI_MCASP_PDIR_REG - Pin Direction Register Bits
109  * DAVINCI_MCASP_PDOUT_REG - Pin output in GPIO mode
110  * DAVINCI_MCASP_PDSET_REG - Pin input in GPIO mode
111  */
112 #define PIN_BIT_AXR(n)  (n)
113 #define PIN_BIT_AMUTE   25
114 #define PIN_BIT_ACLKX   26
115 #define PIN_BIT_AHCLKX  27
116 #define PIN_BIT_AFSX    28
117 #define PIN_BIT_ACLKR   29
118 #define PIN_BIT_AHCLKR  30
119 #define PIN_BIT_AFSR    31
120 
121 /*
122  * DAVINCI_MCASP_TXDITCTL_REG - Transmit DIT Control Register Bits
123  */
124 #define DITEN   BIT(0)  /* Transmit DIT mode enable/disable */
125 #define VA      BIT(2)
126 #define VB      BIT(3)
127 
128 /*
129  * DAVINCI_MCASP_TXFMT_REG - Transmit Bitstream Format Register Bits
130  */
131 #define TXROT(val)      (val)
132 #define TXSEL           BIT(3)
133 #define TXSSZ(val)      (val<<4)
134 #define TXPBIT(val)     (val<<8)
135 #define TXPAD(val)      (val<<13)
136 #define TXORD           BIT(15)
137 #define FSXDLY(val)     (val<<16)
138 
139 /*
140  * DAVINCI_MCASP_RXFMT_REG - Receive Bitstream Format Register Bits
141  */
142 #define RXROT(val)      (val)
143 #define RXSEL           BIT(3)
144 #define RXSSZ(val)      (val<<4)
145 #define RXPBIT(val)     (val<<8)
146 #define RXPAD(val)      (val<<13)
147 #define RXORD           BIT(15)
148 #define FSRDLY(val)     (val<<16)
149 
150 /*
151  * DAVINCI_MCASP_TXFMCTL_REG -  Transmit Frame Control Register Bits
152  */
153 #define FSXPOL          BIT(0)
154 #define AFSXE           BIT(1)
155 #define FSXDUR          BIT(4)
156 #define FSXMOD(val)     (val<<7)
157 
158 /*
159  * DAVINCI_MCASP_RXFMCTL_REG - Receive Frame Control Register Bits
160  */
161 #define FSRPOL          BIT(0)
162 #define AFSRE           BIT(1)
163 #define FSRDUR          BIT(4)
164 #define FSRMOD(val)     (val<<7)
165 
166 /*
167  * DAVINCI_MCASP_ACLKXCTL_REG - Transmit Clock Control Register Bits
168  */
169 #define ACLKXDIV(val)   (val)
170 #define ACLKXE          BIT(5)
171 #define TX_ASYNC        BIT(6)
172 #define ACLKXPOL        BIT(7)
173 #define ACLKXDIV_MASK   0x1f
174 
175 /*
176  * DAVINCI_MCASP_ACLKRCTL_REG Receive Clock Control Register Bits
177  */
178 #define ACLKRDIV(val)   (val)
179 #define ACLKRE          BIT(5)
180 #define RX_ASYNC        BIT(6)
181 #define ACLKRPOL        BIT(7)
182 #define ACLKRDIV_MASK   0x1f
183 
184 /*
185  * DAVINCI_MCASP_AHCLKXCTL_REG - High Frequency Transmit Clock Control
186  *     Register Bits
187  */
188 #define AHCLKXDIV(val)  (val)
189 #define AHCLKXPOL       BIT(14)
190 #define AHCLKXE         BIT(15)
191 #define AHCLKXDIV_MASK  0xfff
192 
193 /*
194  * DAVINCI_MCASP_AHCLKRCTL_REG - High Frequency Receive Clock Control
195  *     Register Bits
196  */
197 #define AHCLKRDIV(val)  (val)
198 #define AHCLKRPOL       BIT(14)
199 #define AHCLKRE         BIT(15)
200 #define AHCLKRDIV_MASK  0xfff
201 
202 /*
203  * DAVINCI_MCASP_XRSRCTL_BASE_REG -  Serializer Control Register Bits
204  */
205 #define MODE(val)       (val)
206 #define DISMOD_3STATE   (0x0)
207 #define DISMOD_LOW      (0x2 << 2)
208 #define DISMOD_HIGH     (0x3 << 2)
209 #define DISMOD_VAL(x)   ((x) << 2)
210 #define DISMOD_MASK     DISMOD_HIGH
211 #define TXSTATE         BIT(4)
212 #define RXSTATE         BIT(5)
213 #define SRMOD_MASK      3
214 #define SRMOD_INACTIVE  0
215 
216 /*
217  * DAVINCI_MCASP_LBCTL_REG - Loop Back Control Register Bits
218  */
219 #define LBEN            BIT(0)
220 #define LBORD           BIT(1)
221 #define LBGENMODE(val)  (val<<2)
222 
223 /*
224  * DAVINCI_MCASP_TXTDMSLOT_REG - Transmit TDM Slot Register configuration
225  */
226 #define TXTDMS(n)       (1<<n)
227 
228 /*
229  * DAVINCI_MCASP_RXTDMSLOT_REG - Receive TDM Slot Register configuration
230  */
231 #define RXTDMS(n)       (1<<n)
232 
233 /*
234  * DAVINCI_MCASP_GBLCTL_REG -  Global Control Register Bits
235  */
236 #define RXCLKRST        BIT(0)  /* Receiver Clock Divider Reset */
237 #define RXHCLKRST       BIT(1)  /* Receiver High Frequency Clock Divider */
238 #define RXSERCLR        BIT(2)  /* Receiver Serializer Clear */
239 #define RXSMRST         BIT(3)  /* Receiver State Machine Reset */
240 #define RXFSRST         BIT(4)  /* Frame Sync Generator Reset */
241 #define TXCLKRST        BIT(8)  /* Transmitter Clock Divider Reset */
242 #define TXHCLKRST       BIT(9)  /* Transmitter High Frequency Clock Divider*/
243 #define TXSERCLR        BIT(10) /* Transmit Serializer Clear */
244 #define TXSMRST         BIT(11) /* Transmitter State Machine Reset */
245 #define TXFSRST         BIT(12) /* Frame Sync Generator Reset */
246 
247 /*
248  * DAVINCI_MCASP_TXSTAT_REG - Transmitter Status Register Bits
249  * DAVINCI_MCASP_RXSTAT_REG - Receiver Status Register Bits
250  */
251 #define XRERR           BIT(8) /* Transmit/Receive error */
252 #define XRDATA          BIT(5) /* Transmit/Receive data ready */
253 
254 /*
255  * DAVINCI_MCASP_AMUTE_REG -  Mute Control Register Bits
256  */
257 #define MUTENA(val)     (val)
258 #define MUTEINPOL       BIT(2)
259 #define MUTEINENA       BIT(3)
260 #define MUTEIN          BIT(4)
261 #define MUTER           BIT(5)
262 #define MUTEX           BIT(6)
263 #define MUTEFSR         BIT(7)
264 #define MUTEFSX         BIT(8)
265 #define MUTEBADCLKR     BIT(9)
266 #define MUTEBADCLKX     BIT(10)
267 #define MUTERXDMAERR    BIT(11)
268 #define MUTETXDMAERR    BIT(12)
269 
270 /*
271  * DAVINCI_MCASP_REVTCTL_REG - Receiver DMA Event Control Register bits
272  */
273 #define RXDATADMADIS    BIT(0)
274 
275 /*
276  * DAVINCI_MCASP_XEVTCTL_REG - Transmitter DMA Event Control Register bits
277  */
278 #define TXDATADMADIS    BIT(0)
279 
280 /*
281  * DAVINCI_MCASP_EVTCTLR_REG - Receiver Interrupt Control Register Bits
282  */
283 #define ROVRN           BIT(0)
284 
285 /*
286  * DAVINCI_MCASP_EVTCTLX_REG - Transmitter Interrupt Control Register Bits
287  */
288 #define XUNDRN          BIT(0)
289 
290 /*
291  * DAVINCI_MCASP_W[R]FIFOCTL - Write/Read FIFO Control Register bits
292  */
293 #define FIFO_ENABLE     BIT(16)
294 #define NUMEVT_MASK     (0xFF << 8)
295 #define NUMEVT(x)       (((x) & 0xFF) << 8)
296 #define NUMDMA_MASK     (0xFF)
297 
298 /* Source of High-frequency transmit/receive clock */
299 #define MCASP_CLK_HCLK_AHCLK            0 /* AHCLKX/R */
300 #define MCASP_CLK_HCLK_AUXCLK           1 /* Internal functional clock */
301 
302 /* clock divider IDs */
303 #define MCASP_CLKDIV_AUXCLK             0 /* HCLK divider from AUXCLK */
304 #define MCASP_CLKDIV_BCLK               1 /* BCLK divider from HCLK */
305 #define MCASP_CLKDIV_BCLK_FS_RATIO      2 /* to set BCLK FS ration */
306 
307 #endif  /* DAVINCI_MCASP_H */
308 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php