xref: /OK3568_Linux_fs/kernel/sound/soc/codecs/rk_codec_digital.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Rockchip Audio Codec Digital driver
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (C) 2020 Rockchip Electronics Co., Ltd
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #ifndef _RK_CODEC_DIGITAL_H
10*4882a593Smuzhiyun #define _RK_CODEC_DIGITAL_H
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #define SYSCTRL0		0x0000
13*4882a593Smuzhiyun #define ADCVUCTL		0x0040
14*4882a593Smuzhiyun #define ADCVUCTIME		0x0044
15*4882a593Smuzhiyun #define ADCDIGEN		0x0048
16*4882a593Smuzhiyun #define ADCCLKCTRL		0x004C
17*4882a593Smuzhiyun #define ADCINT_DIV		0x0054
18*4882a593Smuzhiyun #define ADCSCLKTXINT_DIV	0x006C
19*4882a593Smuzhiyun #define ADCCFG1			0x0084
20*4882a593Smuzhiyun #define ADCVOLL0		0x0088
21*4882a593Smuzhiyun #define ADCVOLL1		0x008C
22*4882a593Smuzhiyun #define ADCVOLR0		0x0098
23*4882a593Smuzhiyun #define ADCVOGP			0x00A8
24*4882a593Smuzhiyun #define ADCRVOLL0		0x00AC
25*4882a593Smuzhiyun #define ADCRVOLL1		0x00B0
26*4882a593Smuzhiyun #define ADCRVOLR0		0x00BC
27*4882a593Smuzhiyun #define ADCALC0			0x00CC
28*4882a593Smuzhiyun #define ADCALC1			0x00D0
29*4882a593Smuzhiyun #define ADCALC2			0x00D4
30*4882a593Smuzhiyun #define ADCNG			0x00D8
31*4882a593Smuzhiyun #define ADCNGST			0x00DC
32*4882a593Smuzhiyun #define ADCHPFEN		0x00E0
33*4882a593Smuzhiyun #define ADCHPFCF		0x00E4
34*4882a593Smuzhiyun #define ADCPGL0			0x00EC
35*4882a593Smuzhiyun #define ADCPGL1			0x00F0
36*4882a593Smuzhiyun #define ADCPGR0			0x00FC
37*4882a593Smuzhiyun #define ADCLILMT0		0x010C
38*4882a593Smuzhiyun #define ADCLILMT1		0x0110
39*4882a593Smuzhiyun #define ADCDMICNG0		0x0114
40*4882a593Smuzhiyun #define ADCDMICNG1		0x0118
41*4882a593Smuzhiyun #define DACVUCTL		0x0140
42*4882a593Smuzhiyun #define DACVUCTIME		0x0144
43*4882a593Smuzhiyun #define DACDIGEN		0x0148
44*4882a593Smuzhiyun #define DACCLKCTRL		0x014C
45*4882a593Smuzhiyun #define DACINT_DIV		0x0154
46*4882a593Smuzhiyun #define DACSCLKRXINT_DIV	0x0160
47*4882a593Smuzhiyun #define DACPWM_DIV		0x0164
48*4882a593Smuzhiyun #define DACPWM_CTRL		0x0168
49*4882a593Smuzhiyun #define DACCFG1			0x0184
50*4882a593Smuzhiyun #define DACMUTE			0x0188
51*4882a593Smuzhiyun #define DACMUTEST		0x018C
52*4882a593Smuzhiyun #define DACVOLL0		0x0190
53*4882a593Smuzhiyun #define DACVOLR0		0x01A0
54*4882a593Smuzhiyun #define DACVOGP			0x01B0
55*4882a593Smuzhiyun #define DACRVOLL0		0x01B4
56*4882a593Smuzhiyun #define DACRVOLR0		0x01C4
57*4882a593Smuzhiyun #define DACLMT0			0x01D4
58*4882a593Smuzhiyun #define DACLMT1			0x01D8
59*4882a593Smuzhiyun #define DACLMT2			0x01DC
60*4882a593Smuzhiyun #define DACMIXCTRLL		0x01E0
61*4882a593Smuzhiyun #define DACMIXCTRLR		0x01E4
62*4882a593Smuzhiyun #define DACHPF			0x01E8
63*4882a593Smuzhiyun #define I2S_TXCR0		0x0300
64*4882a593Smuzhiyun #define I2S_TXCR1		0x0304
65*4882a593Smuzhiyun #define I2S_TXCR2		0x0308
66*4882a593Smuzhiyun #define I2S_RXCR0		0x030C
67*4882a593Smuzhiyun #define I2S_RXCR1		0x0310
68*4882a593Smuzhiyun #define I2S_CKR0		0x0314
69*4882a593Smuzhiyun #define I2S_CKR1		0x0318
70*4882a593Smuzhiyun #define I2S_XFER		0x031C
71*4882a593Smuzhiyun #define I2S_CLR			0x0320
72*4882a593Smuzhiyun #define VERSION			0x0380
73*4882a593Smuzhiyun 
74*4882a593Smuzhiyun /* SYSCTRL0 */
75*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_SYNC_SEL_MASK		BIT(1)
76*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_SYNC_SEL_DAC		BIT(1)
77*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_SYNC_SEL_ADC		0
78*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_GLB_CKE_MASK		BIT(3)
79*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_GLB_CKE_EN		BIT(3)
80*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_GLB_CKE_DIS		0
81*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_CLK_COM_SEL_MASK	BIT(4)
82*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_CLK_COM_SEL_DAC	BIT(4)
83*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_CLK_COM_SEL_ADC	0
84*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_SYNC_MODE_MASK		BIT(5)
85*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_SYNC_MODE_SYNC		BIT(5)
86*4882a593Smuzhiyun #define ACDCDIG_SYSCTRL0_SYNC_MODE_ASYNC	0
87*4882a593Smuzhiyun /* ADCVUCTL */
88*4882a593Smuzhiyun #define ACDCDIG_ADCVUCTL_ADC_BYPS_MASK		BIT(2)
89*4882a593Smuzhiyun #define ACDCDIG_ADCVUCTL_ADC_BYPS		BIT(2)
90*4882a593Smuzhiyun /* ADCDIGEN */
91*4882a593Smuzhiyun #define ACDCDIG_ADCDIGEN_ADCEN_L0R1_MASK	BIT(0)
92*4882a593Smuzhiyun #define ACDCDIG_ADCDIGEN_ADCEN_L0R1_EN		BIT(0)
93*4882a593Smuzhiyun #define ACDCDIG_ADCDIGEN_ADCEN_L0R1_DIS		0
94*4882a593Smuzhiyun #define ACDCDIG_ADCDIGEN_ADCEN_L2_MASK		BIT(1)
95*4882a593Smuzhiyun #define ACDCDIG_ADCDIGEN_ADCEN_L2_EN		BIT(1)
96*4882a593Smuzhiyun #define ACDCDIG_ADCDIGEN_ADCEN_L2_DIS		0
97*4882a593Smuzhiyun #define ACDCDIG_ADCDIGEN_ADC_GLBEN_MASK		BIT(4)
98*4882a593Smuzhiyun #define ACDCDIG_ADCDIGEN_ADC_GLBEN_EN		BIT(4)
99*4882a593Smuzhiyun #define ACDCDIG_ADCDIGEN_ADC_GLBEN_DIS		0
100*4882a593Smuzhiyun /* ADCCLKCTRL */
101*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_ADC_SYNC_STATUS_MASK	BIT(0)
102*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_ADC_SYNC_ENA_MASK	BIT(1)
103*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_ADC_SYNC_ENA_EN	BIT(1)
104*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_ADC_SYNC_ENA_DIS	0
105*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_FILTER_GATE_EN_MASK	BIT(2)
106*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_FILTER_GATE_EN	BIT(2)
107*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_CKE_BCLKTX_MASK	BIT(3)
108*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_CKE_BCLKTX_EN	BIT(3)
109*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_CKE_BCLKTX_DIS	0
110*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_I2STX_CKE_MASK	BIT(4)
111*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_I2STX_CKE_EN		BIT(4)
112*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_I2STX_CKE_DIS	0
113*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_ADC_CKE_MASK		BIT(5)
114*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_ADC_CKE_EN		BIT(5)
115*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_ADC_CKE_DIS		0
116*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_CIC_DS_RATIO_MASK	GENMASK(7, 6)
117*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_CIC_DS_RATIO_16	(0x0 << 6)
118*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_CIC_DS_RATIO_8	(0x1 << 6)
119*4882a593Smuzhiyun #define ACDCDIG_ADCCLKCTRL_CIC_DS_RATIO_4	(0x2 << 6)
120*4882a593Smuzhiyun /* ADCINT_DIV */
121*4882a593Smuzhiyun #define ACDCDIG_ADCINT_DIV_INT_DIV_CON_MASK	GENMASK(7, 0)
122*4882a593Smuzhiyun #define ACDCDIG_ADCINT_DIV_INT_DIV_CON(x)	((x) - 1)
123*4882a593Smuzhiyun /* ADCSCLKTXINT_DIV */
124*4882a593Smuzhiyun #define ACDCDIG_ADCSCLKTXINT_DIV_SCKTXDIV_MASK	GENMASK(7, 0)
125*4882a593Smuzhiyun #define ACDCDIG_ADCSCLKTXINT_DIV_SCKTXDIV(x)	((x) - 1)
126*4882a593Smuzhiyun /* ADCCFG1 */
127*4882a593Smuzhiyun #define ACDCDIG_ADCCFG1_FIR_COM_BPS_MASK	BIT(0)
128*4882a593Smuzhiyun #define ACDCDIG_ADCCFG1_FIR_COM_BPS_EN		BIT(0)
129*4882a593Smuzhiyun #define ACDCDIG_ADCCFG1_SIG_SCALE_MODE_MASK	BIT(1)
130*4882a593Smuzhiyun #define ACDCDIG_ADCCFG1_SIG_SCALE_MODE_HALF	BIT(1)
131*4882a593Smuzhiyun #define ACDCDIG_ADCCFG1_ADCSRT_MASK		GENMASK(4, 2)
132*4882a593Smuzhiyun #define ACDCDIG_ADCCFG1_ADCSRT(x)		(((x) & 0x7) << 2)
133*4882a593Smuzhiyun /* ADCVOLL0 */
134*4882a593Smuzhiyun #define ACDCDIG_ADCVOLL0_ADCLV0_MASK		GENMASK(7, 0)
135*4882a593Smuzhiyun #define ACDCDIG_ADCVOLL0_ADCLV0(x)		(x)
136*4882a593Smuzhiyun /* ADCVOLL1 */
137*4882a593Smuzhiyun #define ACDCDIG_ADCVOLL1_ADCLV1_MASK		GENMASK(7, 0)
138*4882a593Smuzhiyun #define ACDCDIG_ADCVOLL1_ADCLV1(x)		(x)
139*4882a593Smuzhiyun /* ADCVOLR0 */
140*4882a593Smuzhiyun #define ACDCDIG_ADCVOLR0_ADCRV0_MASK		GENMASK(7, 0)
141*4882a593Smuzhiyun #define ACDCDIG_ADCVOLR0_ADCRV0(x)		(x)
142*4882a593Smuzhiyun /* ADCVOGP */
143*4882a593Smuzhiyun #define ACDCDIG_ADCVOGP_VOLGPL0_MASK		BIT(0)
144*4882a593Smuzhiyun #define ACDCDIG_ADCVOGP_VOLGPL0_POS		BIT(0)
145*4882a593Smuzhiyun #define ACDCDIG_ADCVOGP_VOLGPL0_NEG		0
146*4882a593Smuzhiyun #define ACDCDIG_ADCVOGP_VOLGPR0_MASK		BIT(1)
147*4882a593Smuzhiyun #define ACDCDIG_ADCVOGP_VOLGPR0_POS		BIT(1)
148*4882a593Smuzhiyun #define ACDCDIG_ADCVOGP_VOLGPR0_NEG		0
149*4882a593Smuzhiyun #define ACDCDIG_ADCVOGP_VOLGPL1_MASK		BIT(2)
150*4882a593Smuzhiyun #define ACDCDIG_ADCVOGP_VOLGPL1_POS		BIT(2)
151*4882a593Smuzhiyun #define ACDCDIG_ADCVOGP_VOLGPL1_NEG		0
152*4882a593Smuzhiyun /* ADCALC0 */
153*4882a593Smuzhiyun #define ACDCDIG_ADCALC0_ALCL0_MASK		BIT(0)
154*4882a593Smuzhiyun #define ACDCDIG_ADCALC0_ALCL0_EN		BIT(0)
155*4882a593Smuzhiyun #define ACDCDIG_ADCALC0_ALCR0_MASK		BIT(1)
156*4882a593Smuzhiyun #define ACDCDIG_ADCALC0_ALCR0_EN		BIT(1)
157*4882a593Smuzhiyun #define ACDCDIG_ADCALC0_ALCL1_MASK		BIT(2)
158*4882a593Smuzhiyun #define ACDCDIG_ADCALC0_ALCL1_EN		BIT(2)
159*4882a593Smuzhiyun /* ADCALC1 */
160*4882a593Smuzhiyun #define ACDCDIG_ADCALC1_ALCRRATE_MASK		GENMASK(3, 0)
161*4882a593Smuzhiyun #define ACDCDIG_ADCALC1_ALCRRATE(x)		((x) & 0xf)
162*4882a593Smuzhiyun #define ACDCDIG_ADCALC1_ALCARATE_MASK		GENMASK(7, 4)
163*4882a593Smuzhiyun #define ACDCDIG_ADCALC1_ALCARATE(x)		(((x) & 0xf) << 4)
164*4882a593Smuzhiyun /* ADCALC2 */
165*4882a593Smuzhiyun #define ACDCDIG_ADCALC2_ALCMIN_MASK		GENMASK(2, 0)
166*4882a593Smuzhiyun #define ACDCDIG_ADCALC2_ALCMIN(x)		((x) & 0x7)
167*4882a593Smuzhiyun #define ACDCDIG_ADCALC2_ALCMAX_MASK		GENMASK(6, 4)
168*4882a593Smuzhiyun #define ACDCDIG_ADCALC2_ALCMAX(x)		(((x) & 0x7) << 4)
169*4882a593Smuzhiyun /* ADCHPFEN */
170*4882a593Smuzhiyun #define ACDCDIG_ADCHPFEN_HPFEN_L0_MASK		BIT(0)
171*4882a593Smuzhiyun #define ACDCDIG_ADCHPFEN_HPFEN_L0_EN		BIT(0)
172*4882a593Smuzhiyun #define ACDCDIG_ADCHPFEN_HPFEN_R0_MASK		BIT(1)
173*4882a593Smuzhiyun #define ACDCDIG_ADCHPFEN_HPFEN_R0_EN		BIT(1)
174*4882a593Smuzhiyun #define ACDCDIG_ADCHPFEN_HPFEN_L1_MASK		BIT(2)
175*4882a593Smuzhiyun #define ACDCDIG_ADCHPFEN_HPFEN_L1_EN		BIT(2)
176*4882a593Smuzhiyun /* ADCHPFCF */
177*4882a593Smuzhiyun #define ACDCDIG_ADCHPFCF_HPFCF_MASK		GENMASK(1, 0)
178*4882a593Smuzhiyun #define ACDCDIG_ADCHPFCF_HPFCF_493HZ		3
179*4882a593Smuzhiyun #define ACDCDIG_ADCHPFCF_HPFCF_243HZ		2
180*4882a593Smuzhiyun #define ACDCDIG_ADCHPFCF_HPFCF_60HZ		1
181*4882a593Smuzhiyun #define ACDCDIG_ADCHPFCF_HPFCF_3P79HZ		0
182*4882a593Smuzhiyun /* ADCPGL0 */
183*4882a593Smuzhiyun #define ACDCDIG_ADCPGL0_PGA_L0_MASK		GENMASK(3, 0)
184*4882a593Smuzhiyun /* ADCPGL1 */
185*4882a593Smuzhiyun #define ACDCDIG_ADCPGL1_PGA_L1_MASK		GENMASK(3, 0)
186*4882a593Smuzhiyun /* ADCPGR0 */
187*4882a593Smuzhiyun #define ACDCDIG_ADCPGR0_PGA_R0_MASK		GENMASK(3, 0)
188*4882a593Smuzhiyun /* DACDIGEN */
189*4882a593Smuzhiyun #define ACDCDIG_DACDIGEN_DACEN_L0R1_MASK	BIT(0)
190*4882a593Smuzhiyun #define ACDCDIG_DACDIGEN_DACEN_L0R1_EN		BIT(0)
191*4882a593Smuzhiyun #define ACDCDIG_DACDIGEN_DACEN_L0R1_DIS		0
192*4882a593Smuzhiyun #define ACDCDIG_DACDIGEN_DAC_GLBEN_MASK		BIT(4)
193*4882a593Smuzhiyun #define ACDCDIG_DACDIGEN_DAC_GLBEN_EN		BIT(4)
194*4882a593Smuzhiyun #define ACDCDIG_DACDIGEN_DAC_GLBEN_DIS		0
195*4882a593Smuzhiyun /* DACCLKCTRL */
196*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_MODE_ATTENU_MASK	BIT(0)
197*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_MODE_ATTENU_EN	BIT(0)
198*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_MODE_ATTENU_DIS	0
199*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_SYNC_STATUS_MASK	BIT(1)
200*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_SYNC_STATUS_DONE	0
201*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_SYNC_ENA_MASK	BIT(2)
202*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_SYNC_ENA_EN	BIT(2)
203*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_SYNC_ENA_DIS	0
204*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_CKE_BCLKRX_MASK	BIT(3)
205*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_CKE_BCLKRX_EN	BIT(3)
206*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_CKE_BCLKRX_DIS	0
207*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_I2SRX_CKE_MASK	BIT(4)
208*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_I2SRX_CKE_EN		BIT(4)
209*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_I2SRX_CKE_DIS	0
210*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_CKE_MASK		BIT(5)
211*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_CKE_EN		BIT(5)
212*4882a593Smuzhiyun #define ACDCDIG_DACCLKCTRL_DAC_CKE_DIS		0
213*4882a593Smuzhiyun /* DACINT_DIV */
214*4882a593Smuzhiyun #define ACDCDIG_DACINT_DIV_INT_DIV_CON_MASK	GENMASK(7, 0)
215*4882a593Smuzhiyun #define ACDCDIG_DACINT_DIV_INT_DIV_CON(x)	((x) - 1)
216*4882a593Smuzhiyun /* DACSCLKRXINT_DIV */
217*4882a593Smuzhiyun #define ACDCDIG_DACSCLKRXINT_DIV_SCKRXDIV_MASK	GENMASK(7, 0)
218*4882a593Smuzhiyun #define ACDCDIG_DACSCLKRXINT_DIV_SCKRXDIV(x)	((x) - 1)
219*4882a593Smuzhiyun /* DACPWM_DIV */
220*4882a593Smuzhiyun #define ACDCDIG_DACPWM_DIV_AUDIO_PWM_DIV_MASK	GENMASK(7, 0)
221*4882a593Smuzhiyun #define ACDCDIG_DACPWM_DIV_AUDIO_PWM_DIV(x)	((x) - 1)
222*4882a593Smuzhiyun /* DACPWM_CTRL */
223*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_DITH_SEL_MASK	GENMASK(2, 0)
224*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_DITH_SEL(x)		(x)
225*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_EN_MASK		BIT(3)
226*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_EN		BIT(3)
227*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_DIS		0
228*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_MODE_MASK	GENMASK(5, 4)
229*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_MODE_1		(0x2 << 4)
230*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_MODE_0		(0x1 << 4)
231*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_MODE_DAC	(0x0 << 4)
232*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_MODE_CKE_MASK	BIT(6)
233*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_MODE_CKE_EN	BIT(6)
234*4882a593Smuzhiyun #define ACDCDIG_DACPWM_CTRL_PWM_MODE_CKE_DIS	0
235*4882a593Smuzhiyun /* DACCFG1 */
236*4882a593Smuzhiyun #define ACDCDIG_DACCFG1_DACSRT_MASK		GENMASK(4, 2)
237*4882a593Smuzhiyun #define ACDCDIG_DACCFG1_DACSRT(x)		((x) << 2)
238*4882a593Smuzhiyun /* DACMUTE */
239*4882a593Smuzhiyun #define ACDCDIG_DACMUTE_DACMT_MASK		BIT(0)
240*4882a593Smuzhiyun #define ACDCDIG_DACMUTE_DACUNMT_MASK		BIT(1)
241*4882a593Smuzhiyun /* DACVOLL0 */
242*4882a593Smuzhiyun #define ACDCDIG_DACVOLL0_DACLV0_MASK		GENMASK(7, 0)
243*4882a593Smuzhiyun #define ACDCDIG_DACVOLL0_DACLV0(x)		(x)
244*4882a593Smuzhiyun /* DACVOLR0 */
245*4882a593Smuzhiyun #define ACDCDIG_DACVOLR0_DACRV0_MASK		GENMASK(7, 0)
246*4882a593Smuzhiyun #define ACDCDIG_DACVOLR0_DACRV0(x)		(x)
247*4882a593Smuzhiyun /* DACVOGP */
248*4882a593Smuzhiyun #define ACDCDIG_DACVOGP_VOLGPL0_MASK		BIT(0)
249*4882a593Smuzhiyun #define ACDCDIG_DACVOGP_VOLGPL0_POS		BIT(0)
250*4882a593Smuzhiyun #define ACDCDIG_DACVOGP_VOLGPL0_NEG		0
251*4882a593Smuzhiyun #define ACDCDIG_DACVOGP_VOLGPR0_MASK		BIT(1)
252*4882a593Smuzhiyun #define ACDCDIG_DACVOGP_VOLGPR0_POS		BIT(1)
253*4882a593Smuzhiyun #define ACDCDIG_DACVOGP_VOLGPR0_NEG		0
254*4882a593Smuzhiyun /* DACMIXCTRLL */
255*4882a593Smuzhiyun #define ACDCDIG_DACMIXCTRLL_MIXMODE_L0_MASK	GENMASK(1, 0)
256*4882a593Smuzhiyun #define ACDCDIG_DACMIXCTRLL_MIXMODE_L0_LR	2
257*4882a593Smuzhiyun #define ACDCDIG_DACMIXCTRLL_MIXMODE_L0_R	1
258*4882a593Smuzhiyun #define ACDCDIG_DACMIXCTRLL_MIXMODE_L0_L	0
259*4882a593Smuzhiyun /* DACMIXCTRLR */
260*4882a593Smuzhiyun #define ACDCDIG_DACMIXCTRLR_MIXMODE_R0_MASK	GENMASK(1, 0)
261*4882a593Smuzhiyun #define ACDCDIG_DACMIXCTRLR_MIXMODE_R0_LR	2
262*4882a593Smuzhiyun #define ACDCDIG_DACMIXCTRLR_MIXMODE_R0_L	1
263*4882a593Smuzhiyun #define ACDCDIG_DACMIXCTRLR_MIXMODE_R0_R	0
264*4882a593Smuzhiyun /* DACHPF */
265*4882a593Smuzhiyun #define ACDCDIG_DACHPF_HPFEN_L0R0_MASK		BIT(0)
266*4882a593Smuzhiyun #define ACDCDIG_DACHPF_HPFEN_L0R0_EN		BIT(0)
267*4882a593Smuzhiyun #define ACDCDIG_DACHPF_HPFCF_MASK		GENMASK(5, 4)
268*4882a593Smuzhiyun #define ACDCDIG_DACHPF_HPFCF_140HZ		(0x3 << 4)
269*4882a593Smuzhiyun #define ACDCDIG_DACHPF_HPFCF_120HZ		(0x2 << 4)
270*4882a593Smuzhiyun #define ACDCDIG_DACHPF_HPFCF_100HZ		(0x1 << 4)
271*4882a593Smuzhiyun #define ACDCDIG_DACHPF_HPFCF_80HZ		(0x0 << 4)
272*4882a593Smuzhiyun /* I2S_TXCR0 */
273*4882a593Smuzhiyun #define ACDCDIG_I2S_TXCR0_VDW_MASK		GENMASK(4, 0)
274*4882a593Smuzhiyun #define ACDCDIG_I2S_TXCR0_VDW(x)		((x) - 1)
275*4882a593Smuzhiyun /* I2S_TXCR1 */
276*4882a593Smuzhiyun #define ACDCDIG_I2S_TXCR1_CEX_MASK		BIT(4)
277*4882a593Smuzhiyun #define ACDCDIG_I2S_TXCR1_CEX_EXCHANGE		BIT(4)
278*4882a593Smuzhiyun #define ACDCDIG_I2S_TXCR1_TCSR_MASK		GENMASK(7, 6)
279*4882a593Smuzhiyun #define ACDCDIG_I2S_TXCR1_TCSR_4CH		(0x1 << 6)
280*4882a593Smuzhiyun #define ACDCDIG_I2S_TXCR1_TCSR_2CH		(0x0 << 6)
281*4882a593Smuzhiyun /* I2S_RXCR0 */
282*4882a593Smuzhiyun #define ACDCDIG_I2S_RXCR0_VDW_MASK		GENMASK(4, 0)
283*4882a593Smuzhiyun #define ACDCDIG_I2S_RXCR0_VDW(x)		((x) - 1)
284*4882a593Smuzhiyun /* I2S_RXCR1 */
285*4882a593Smuzhiyun #define ACDCDIG_I2S_RXCR1_CEX_MASK		BIT(4)
286*4882a593Smuzhiyun #define ACDCDIG_I2S_RXCR1_CEX_EXCHANGE		BIT(4)
287*4882a593Smuzhiyun #define ACDCDIG_I2S_RXCR1_RCSR_MASK		GENMASK(7, 6)
288*4882a593Smuzhiyun #define ACDCDIG_I2S_RXCR1_RCSR_2CH		(0x0 << 6)
289*4882a593Smuzhiyun /* I2S_CKR0 */
290*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR0_TSD_MASK		GENMASK(1, 0)
291*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR0_TSD_64			(0 << 0)
292*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR0_TSD_128		(1 << 0)
293*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR0_TSD_256		(2 << 0)
294*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR0_RSD_MASK		GENMASK(3, 2)
295*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR0_RSD_64			(0 << 2)
296*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR0_RSD_128		(1 << 2)
297*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR0_RSD_256		(2 << 2)
298*4882a593Smuzhiyun 
299*4882a593Smuzhiyun /* I2S_CKR1 */
300*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_TLP_MASK		BIT(0)
301*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_TLP_INVERTED		BIT(0)
302*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_TLP_NORMAL		0
303*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_RLP_MASK		BIT(1)
304*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_RLP_INVERTED		BIT(1)
305*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_RLP_NORMAL		0
306*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_CKP_MASK		BIT(2)
307*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_CKP_INVERTED		BIT(2)
308*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_CKP_NORMAL		0
309*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_MSS_MASK		BIT(3)
310*4882a593Smuzhiyun #define ACDCDIG_I2S_CKR1_MSS_MASTER		0
311*4882a593Smuzhiyun /* I2S_XFER */
312*4882a593Smuzhiyun #define ACDCDIG_I2S_XFER_TXS_MASK		BIT(0)
313*4882a593Smuzhiyun #define ACDCDIG_I2S_XFER_TXS_START		BIT(0)
314*4882a593Smuzhiyun #define ACDCDIG_I2S_XFER_TXS_STOP		0
315*4882a593Smuzhiyun #define ACDCDIG_I2S_XFER_RXS_MASK		BIT(1)
316*4882a593Smuzhiyun #define ACDCDIG_I2S_XFER_RXS_START		BIT(1)
317*4882a593Smuzhiyun #define ACDCDIG_I2S_XFER_RXS_STOP		0
318*4882a593Smuzhiyun /* I2S_CLR */
319*4882a593Smuzhiyun #define ACDCDIG_I2S_CLR_TXC_MASK		BIT(0)
320*4882a593Smuzhiyun #define ACDCDIG_I2S_CLR_TXC_CLR			BIT(0)
321*4882a593Smuzhiyun #define ACDCDIG_I2S_CLR_RXC_MASK		BIT(1)
322*4882a593Smuzhiyun #define ACDCDIG_I2S_CLR_RXC_CLR			BIT(1)
323*4882a593Smuzhiyun 
324*4882a593Smuzhiyun #endif
325