18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef __ATMEL_CLASSD_H_
38c2ecf20Sopenharmony_ci#define __ATMEL_CLASSD_H_
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#define CLASSD_CR		0x00000000
68c2ecf20Sopenharmony_ci#define CLASSD_CR_RESET		0x1
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#define CLASSD_MR			0x00000004
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#define CLASSD_MR_LEN_DIS		0x0
118c2ecf20Sopenharmony_ci#define CLASSD_MR_LEN_EN		0x1
128c2ecf20Sopenharmony_ci#define CLASSD_MR_LEN_MASK		(0x1 << 0)
138c2ecf20Sopenharmony_ci#define CLASSD_MR_LEN_SHIFT		(0)
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#define CLASSD_MR_LMUTE_DIS		0x0
168c2ecf20Sopenharmony_ci#define CLASSD_MR_LMUTE_EN		0x1
178c2ecf20Sopenharmony_ci#define CLASSD_MR_LMUTE_SHIFT		(0x1)
188c2ecf20Sopenharmony_ci#define CLASSD_MR_LMUTE_MASK		(0x1 << 1)
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#define CLASSD_MR_REN_DIS		0x0
218c2ecf20Sopenharmony_ci#define CLASSD_MR_REN_EN		0x1
228c2ecf20Sopenharmony_ci#define CLASSD_MR_REN_MASK		(0x1 << 4)
238c2ecf20Sopenharmony_ci#define CLASSD_MR_REN_SHIFT		(4)
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci#define CLASSD_MR_RMUTE_DIS		0x0
268c2ecf20Sopenharmony_ci#define CLASSD_MR_RMUTE_EN		0x1
278c2ecf20Sopenharmony_ci#define CLASSD_MR_RMUTE_SHIFT		(0x5)
288c2ecf20Sopenharmony_ci#define CLASSD_MR_RMUTE_MASK		(0x1 << 5)
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#define CLASSD_MR_PWMTYP_SINGLE		0x0
318c2ecf20Sopenharmony_ci#define CLASSD_MR_PWMTYP_DIFF		0x1
328c2ecf20Sopenharmony_ci#define CLASSD_MR_PWMTYP_MASK		(0x1 << 8)
338c2ecf20Sopenharmony_ci#define CLASSD_MR_PWMTYP_SHIFT		(8)
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci#define CLASSD_MR_NON_OVERLAP_DIS	0x0
368c2ecf20Sopenharmony_ci#define CLASSD_MR_NON_OVERLAP_EN	0x1
378c2ecf20Sopenharmony_ci#define CLASSD_MR_NON_OVERLAP_MASK	(0x1 << 16)
388c2ecf20Sopenharmony_ci#define CLASSD_MR_NON_OVERLAP_SHIFT	(16)
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci#define CLASSD_MR_NOVR_VAL_5NS		0x0
418c2ecf20Sopenharmony_ci#define CLASSD_MR_NOVR_VAL_10NS		0x1
428c2ecf20Sopenharmony_ci#define CLASSD_MR_NOVR_VAL_15NS		0x2
438c2ecf20Sopenharmony_ci#define CLASSD_MR_NOVR_VAL_20NS		0x3
448c2ecf20Sopenharmony_ci#define CLASSD_MR_NOVR_VAL_MASK		(0x3 << 20)
458c2ecf20Sopenharmony_ci#define CLASSD_MR_NOVR_VAL_SHIFT	(20)
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci#define CLASSD_INTPMR				0x00000008
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_ATTL_MASK			(0x3f << 0)
508c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_ATTL_SHIFT		(0)
518c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_ATTR_MASK			(0x3f << 8)
528c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_ATTR_SHIFT		(8)
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_DSP_CLK_FREQ_12M288	0x0
558c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_DSP_CLK_FREQ_11M2896	0x1
568c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_DSP_CLK_FREQ_MASK		(0x1 << 16)
578c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_DSP_CLK_FREQ_SHIFT	(16)
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_DEEMP_DIS			0x0
608c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_DEEMP_EN			0x1
618c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_DEEMP_MASK		(0x1 << 18)
628c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_DEEMP_SHIFT		(18)
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_SWAP_LEFT_ON_LSB		0x0
658c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_SWAP_RIGHT_ON_LSB		0x1
668c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_SWAP_MASK			(0x1 << 19)
678c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_SWAP_SHIFT		(19)
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_8K			0x0
708c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_16K			0x1
718c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_32K			0x2
728c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_48K			0x3
738c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_96K			0x4
748c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_22K			0x5
758c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_44K			0x6
768c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_88K			0x7
778c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_MASK		(0x7 << 20)
788c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_FRAME_SHIFT		(20)
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_FLAT		0x0
818c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_B_BOOST_12		0x1
828c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_B_BOOST_6		0x2
838c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_B_CUT_12		0x3
848c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_B_CUT_6		0x4
858c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_M_BOOST_3		0x5
868c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_M_BOOST_8		0x6
878c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_M_CUT_3		0x7
888c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_M_CUT_8		0x8
898c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_T_BOOST_12		0x9
908c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_T_BOOST_6		0xa
918c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_T_CUT_12		0xb
928c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_T_CUT_6		0xc
938c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_EQCFG_SHIFT		(24)
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_DIS			0x0
968c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_EN			0x1
978c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_MASK			(0x1 << 28)
988c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_SHIFT		(28)
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_MODE_MIX		0x0
1018c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_MODE_SAT		0x1
1028c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_MODE_LEFT		0x2
1038c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_MODE_RIGHT		0x3
1048c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_MODE_MASK		(0x3 << 29)
1058c2ecf20Sopenharmony_ci#define CLASSD_INTPMR_MONO_MODE_SHIFT		(29)
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci#define CLASSD_INTSR	0x0000000c
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci#define CLASSD_THR	0x00000010
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci#define CLASSD_IER	0x00000014
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci#define CLASSD_IDR	0x00000018
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci#define CLASSD_IMR	0x0000001c
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci#define CLASSD_ISR	0x00000020
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci#define CLASSD_WPMR	0x000000e4
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci#endif
122