xref: /openbmc/linux/sound/soc/atmel/atmel-classd.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2e0a25b6dSSongjun Wu #ifndef __ATMEL_CLASSD_H_
3e0a25b6dSSongjun Wu #define __ATMEL_CLASSD_H_
4e0a25b6dSSongjun Wu 
5e0a25b6dSSongjun Wu #define CLASSD_CR		0x00000000
6e0a25b6dSSongjun Wu #define CLASSD_CR_RESET		0x1
7e0a25b6dSSongjun Wu 
8e0a25b6dSSongjun Wu #define CLASSD_MR			0x00000004
9e0a25b6dSSongjun Wu 
10e0a25b6dSSongjun Wu #define CLASSD_MR_LEN_DIS		0x0
11e0a25b6dSSongjun Wu #define CLASSD_MR_LEN_EN		0x1
12e0a25b6dSSongjun Wu #define CLASSD_MR_LEN_MASK		(0x1 << 0)
13e0a25b6dSSongjun Wu #define CLASSD_MR_LEN_SHIFT		(0)
14e0a25b6dSSongjun Wu 
15e0a25b6dSSongjun Wu #define CLASSD_MR_LMUTE_DIS		0x0
16e0a25b6dSSongjun Wu #define CLASSD_MR_LMUTE_EN		0x1
17e0a25b6dSSongjun Wu #define CLASSD_MR_LMUTE_SHIFT		(0x1)
18e0a25b6dSSongjun Wu #define CLASSD_MR_LMUTE_MASK		(0x1 << 1)
19e0a25b6dSSongjun Wu 
20e0a25b6dSSongjun Wu #define CLASSD_MR_REN_DIS		0x0
21e0a25b6dSSongjun Wu #define CLASSD_MR_REN_EN		0x1
22e0a25b6dSSongjun Wu #define CLASSD_MR_REN_MASK		(0x1 << 4)
23e0a25b6dSSongjun Wu #define CLASSD_MR_REN_SHIFT		(4)
24e0a25b6dSSongjun Wu 
25e0a25b6dSSongjun Wu #define CLASSD_MR_RMUTE_DIS		0x0
26e0a25b6dSSongjun Wu #define CLASSD_MR_RMUTE_EN		0x1
27e0a25b6dSSongjun Wu #define CLASSD_MR_RMUTE_SHIFT		(0x5)
28e0a25b6dSSongjun Wu #define CLASSD_MR_RMUTE_MASK		(0x1 << 5)
29e0a25b6dSSongjun Wu 
30e0a25b6dSSongjun Wu #define CLASSD_MR_PWMTYP_SINGLE		0x0
31e0a25b6dSSongjun Wu #define CLASSD_MR_PWMTYP_DIFF		0x1
32e0a25b6dSSongjun Wu #define CLASSD_MR_PWMTYP_MASK		(0x1 << 8)
33e0a25b6dSSongjun Wu #define CLASSD_MR_PWMTYP_SHIFT		(8)
34e0a25b6dSSongjun Wu 
35e0a25b6dSSongjun Wu #define CLASSD_MR_NON_OVERLAP_DIS	0x0
36e0a25b6dSSongjun Wu #define CLASSD_MR_NON_OVERLAP_EN	0x1
37e0a25b6dSSongjun Wu #define CLASSD_MR_NON_OVERLAP_MASK	(0x1 << 16)
38e0a25b6dSSongjun Wu #define CLASSD_MR_NON_OVERLAP_SHIFT	(16)
39e0a25b6dSSongjun Wu 
40e0a25b6dSSongjun Wu #define CLASSD_MR_NOVR_VAL_5NS		0x0
41e0a25b6dSSongjun Wu #define CLASSD_MR_NOVR_VAL_10NS		0x1
42e0a25b6dSSongjun Wu #define CLASSD_MR_NOVR_VAL_15NS		0x2
43e0a25b6dSSongjun Wu #define CLASSD_MR_NOVR_VAL_20NS		0x3
44e0a25b6dSSongjun Wu #define CLASSD_MR_NOVR_VAL_MASK		(0x3 << 20)
45e0a25b6dSSongjun Wu #define CLASSD_MR_NOVR_VAL_SHIFT	(20)
46e0a25b6dSSongjun Wu 
47e0a25b6dSSongjun Wu #define CLASSD_INTPMR				0x00000008
48e0a25b6dSSongjun Wu 
49e0a25b6dSSongjun Wu #define CLASSD_INTPMR_ATTL_MASK			(0x3f << 0)
50e0a25b6dSSongjun Wu #define CLASSD_INTPMR_ATTL_SHIFT		(0)
51e0a25b6dSSongjun Wu #define CLASSD_INTPMR_ATTR_MASK			(0x3f << 8)
52e0a25b6dSSongjun Wu #define CLASSD_INTPMR_ATTR_SHIFT		(8)
53e0a25b6dSSongjun Wu 
54e0a25b6dSSongjun Wu #define CLASSD_INTPMR_DSP_CLK_FREQ_12M288	0x0
55e0a25b6dSSongjun Wu #define CLASSD_INTPMR_DSP_CLK_FREQ_11M2896	0x1
56e0a25b6dSSongjun Wu #define CLASSD_INTPMR_DSP_CLK_FREQ_MASK		(0x1 << 16)
57e0a25b6dSSongjun Wu #define CLASSD_INTPMR_DSP_CLK_FREQ_SHIFT	(16)
58e0a25b6dSSongjun Wu 
59e0a25b6dSSongjun Wu #define CLASSD_INTPMR_DEEMP_DIS			0x0
60e0a25b6dSSongjun Wu #define CLASSD_INTPMR_DEEMP_EN			0x1
61e0a25b6dSSongjun Wu #define CLASSD_INTPMR_DEEMP_MASK		(0x1 << 18)
62e0a25b6dSSongjun Wu #define CLASSD_INTPMR_DEEMP_SHIFT		(18)
63e0a25b6dSSongjun Wu 
64e0a25b6dSSongjun Wu #define CLASSD_INTPMR_SWAP_LEFT_ON_LSB		0x0
65e0a25b6dSSongjun Wu #define CLASSD_INTPMR_SWAP_RIGHT_ON_LSB		0x1
66e0a25b6dSSongjun Wu #define CLASSD_INTPMR_SWAP_MASK			(0x1 << 19)
67e0a25b6dSSongjun Wu #define CLASSD_INTPMR_SWAP_SHIFT		(19)
68e0a25b6dSSongjun Wu 
69e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_8K			0x0
70e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_16K			0x1
71e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_32K			0x2
72e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_48K			0x3
73e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_96K			0x4
74e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_22K			0x5
75e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_44K			0x6
76e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_88K			0x7
77e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_MASK		(0x7 << 20)
78e0a25b6dSSongjun Wu #define CLASSD_INTPMR_FRAME_SHIFT		(20)
79e0a25b6dSSongjun Wu 
80e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_FLAT		0x0
81e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_B_BOOST_12		0x1
82e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_B_BOOST_6		0x2
83e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_B_CUT_12		0x3
84e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_B_CUT_6		0x4
85e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_M_BOOST_3		0x5
86e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_M_BOOST_8		0x6
87e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_M_CUT_3		0x7
88e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_M_CUT_8		0x8
89e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_T_BOOST_12		0x9
90e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_T_BOOST_6		0xa
91e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_T_CUT_12		0xb
92e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_T_CUT_6		0xc
93e0a25b6dSSongjun Wu #define CLASSD_INTPMR_EQCFG_SHIFT		(24)
94e0a25b6dSSongjun Wu 
95e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_DIS			0x0
96e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_EN			0x1
97e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_MASK			(0x1 << 28)
98e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_SHIFT		(28)
99e0a25b6dSSongjun Wu 
100e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_MODE_MIX		0x0
101e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_MODE_SAT		0x1
102e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_MODE_LEFT		0x2
103e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_MODE_RIGHT		0x3
104e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_MODE_MASK		(0x3 << 29)
105e0a25b6dSSongjun Wu #define CLASSD_INTPMR_MONO_MODE_SHIFT		(29)
106e0a25b6dSSongjun Wu 
107e0a25b6dSSongjun Wu #define CLASSD_INTSR	0x0000000c
108e0a25b6dSSongjun Wu 
109e0a25b6dSSongjun Wu #define CLASSD_THR	0x00000010
110e0a25b6dSSongjun Wu 
111e0a25b6dSSongjun Wu #define CLASSD_IER	0x00000014
112e0a25b6dSSongjun Wu 
113e0a25b6dSSongjun Wu #define CLASSD_IDR	0x00000018
114e0a25b6dSSongjun Wu 
115e0a25b6dSSongjun Wu #define CLASSD_IMR	0x0000001c
116e0a25b6dSSongjun Wu 
117e0a25b6dSSongjun Wu #define CLASSD_ISR	0x00000020
118e0a25b6dSSongjun Wu 
119e0a25b6dSSongjun Wu #define CLASSD_WPMR	0x000000e4
120e0a25b6dSSongjun Wu 
121e0a25b6dSSongjun Wu #endif
122