162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/* register 01h */
362306a36Sopenharmony_ci#define CS4362A_PDN		0x01
462306a36Sopenharmony_ci#define CS4362A_DAC1_DIS	0x02
562306a36Sopenharmony_ci#define CS4362A_DAC2_DIS	0x04
662306a36Sopenharmony_ci#define CS4362A_DAC3_DIS	0x08
762306a36Sopenharmony_ci#define CS4362A_MCLKDIV		0x20
862306a36Sopenharmony_ci#define CS4362A_FREEZE		0x40
962306a36Sopenharmony_ci#define CS4362A_CPEN		0x80
1062306a36Sopenharmony_ci/* register 02h */
1162306a36Sopenharmony_ci#define CS4362A_DIF_MASK	0x70
1262306a36Sopenharmony_ci#define CS4362A_DIF_LJUST	0x00
1362306a36Sopenharmony_ci#define CS4362A_DIF_I2S		0x10
1462306a36Sopenharmony_ci#define CS4362A_DIF_RJUST_16	0x20
1562306a36Sopenharmony_ci#define CS4362A_DIF_RJUST_24	0x30
1662306a36Sopenharmony_ci#define CS4362A_DIF_RJUST_20	0x40
1762306a36Sopenharmony_ci#define CS4362A_DIF_RJUST_18	0x50
1862306a36Sopenharmony_ci/* register 03h */
1962306a36Sopenharmony_ci#define CS4362A_MUTEC_MASK	0x03
2062306a36Sopenharmony_ci#define CS4362A_MUTEC_6		0x00
2162306a36Sopenharmony_ci#define CS4362A_MUTEC_1		0x01
2262306a36Sopenharmony_ci#define CS4362A_MUTEC_3		0x03
2362306a36Sopenharmony_ci#define CS4362A_AMUTE		0x04
2462306a36Sopenharmony_ci#define CS4362A_MUTEC_POL	0x08
2562306a36Sopenharmony_ci#define CS4362A_RMP_UP		0x10
2662306a36Sopenharmony_ci#define CS4362A_SNGLVOL		0x20
2762306a36Sopenharmony_ci#define CS4362A_ZERO_CROSS	0x40
2862306a36Sopenharmony_ci#define CS4362A_SOFT_RAMP	0x80
2962306a36Sopenharmony_ci/* register 04h */
3062306a36Sopenharmony_ci#define CS4362A_RMP_DN		0x01
3162306a36Sopenharmony_ci#define CS4362A_DEM_MASK	0x06
3262306a36Sopenharmony_ci#define CS4362A_DEM_NONE	0x00
3362306a36Sopenharmony_ci#define CS4362A_DEM_44100	0x02
3462306a36Sopenharmony_ci#define CS4362A_DEM_48000	0x04
3562306a36Sopenharmony_ci#define CS4362A_DEM_32000	0x06
3662306a36Sopenharmony_ci#define CS4362A_FILT_SEL	0x10
3762306a36Sopenharmony_ci/* register 05h */
3862306a36Sopenharmony_ci#define CS4362A_INV_A1		0x01
3962306a36Sopenharmony_ci#define CS4362A_INV_B1		0x02
4062306a36Sopenharmony_ci#define CS4362A_INV_A2		0x04
4162306a36Sopenharmony_ci#define CS4362A_INV_B2		0x08
4262306a36Sopenharmony_ci#define CS4362A_INV_A3		0x10
4362306a36Sopenharmony_ci#define CS4362A_INV_B3		0x20
4462306a36Sopenharmony_ci/* register 06h */
4562306a36Sopenharmony_ci#define CS4362A_FM_MASK		0x03
4662306a36Sopenharmony_ci#define CS4362A_FM_SINGLE	0x00
4762306a36Sopenharmony_ci#define CS4362A_FM_DOUBLE	0x01
4862306a36Sopenharmony_ci#define CS4362A_FM_QUAD		0x02
4962306a36Sopenharmony_ci#define CS4362A_FM_DSD		0x03
5062306a36Sopenharmony_ci#define CS4362A_ATAPI_MASK	0x7c
5162306a36Sopenharmony_ci#define CS4362A_ATAPI_B_MUTE	0x00
5262306a36Sopenharmony_ci#define CS4362A_ATAPI_B_R	0x04
5362306a36Sopenharmony_ci#define CS4362A_ATAPI_B_L	0x08
5462306a36Sopenharmony_ci#define CS4362A_ATAPI_B_LR	0x0c
5562306a36Sopenharmony_ci#define CS4362A_ATAPI_A_MUTE	0x00
5662306a36Sopenharmony_ci#define CS4362A_ATAPI_A_R	0x10
5762306a36Sopenharmony_ci#define CS4362A_ATAPI_A_L	0x20
5862306a36Sopenharmony_ci#define CS4362A_ATAPI_A_LR	0x30
5962306a36Sopenharmony_ci#define CS4362A_ATAPI_MIX_LR_VOL 0x40
6062306a36Sopenharmony_ci#define CS4362A_A_EQ_B		0x80
6162306a36Sopenharmony_ci/* register 07h */
6262306a36Sopenharmony_ci#define CS4362A_VOL_MASK		0x7f
6362306a36Sopenharmony_ci#define CS4362A_MUTE			0x80
6462306a36Sopenharmony_ci/* register 08h: like 07h */
6562306a36Sopenharmony_ci/* registers 09h..0Bh: like 06h..08h */
6662306a36Sopenharmony_ci/* registers 0Ch..0Eh: like 06h..08h */
6762306a36Sopenharmony_ci/* register 12h */
6862306a36Sopenharmony_ci#define CS4362A_REV_MASK	0x07
6962306a36Sopenharmony_ci#define CS4362A_PART_MASK	0xf8
7062306a36Sopenharmony_ci#define CS4362A_PART_CS4362A	0x50
71