Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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