xref: /openbmc/linux/sound/pci/oxygen/cs4362a.h (revision b2441318)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2a9d3cc48SClemens Ladisch /* register 01h */
3a9d3cc48SClemens Ladisch #define CS4362A_PDN		0x01
4a9d3cc48SClemens Ladisch #define CS4362A_DAC1_DIS	0x02
5a9d3cc48SClemens Ladisch #define CS4362A_DAC2_DIS	0x04
6a9d3cc48SClemens Ladisch #define CS4362A_DAC3_DIS	0x08
7a9d3cc48SClemens Ladisch #define CS4362A_MCLKDIV		0x20
8a9d3cc48SClemens Ladisch #define CS4362A_FREEZE		0x40
9a9d3cc48SClemens Ladisch #define CS4362A_CPEN		0x80
10a9d3cc48SClemens Ladisch /* register 02h */
11a9d3cc48SClemens Ladisch #define CS4362A_DIF_MASK	0x70
12a9d3cc48SClemens Ladisch #define CS4362A_DIF_LJUST	0x00
13a9d3cc48SClemens Ladisch #define CS4362A_DIF_I2S		0x10
14a9d3cc48SClemens Ladisch #define CS4362A_DIF_RJUST_16	0x20
15a9d3cc48SClemens Ladisch #define CS4362A_DIF_RJUST_24	0x30
16a9d3cc48SClemens Ladisch #define CS4362A_DIF_RJUST_20	0x40
17a9d3cc48SClemens Ladisch #define CS4362A_DIF_RJUST_18	0x50
18a9d3cc48SClemens Ladisch /* register 03h */
19a9d3cc48SClemens Ladisch #define CS4362A_MUTEC_MASK	0x03
20a9d3cc48SClemens Ladisch #define CS4362A_MUTEC_6		0x00
21a9d3cc48SClemens Ladisch #define CS4362A_MUTEC_1		0x01
22a9d3cc48SClemens Ladisch #define CS4362A_MUTEC_3		0x03
23a9d3cc48SClemens Ladisch #define CS4362A_AMUTE		0x04
24a9d3cc48SClemens Ladisch #define CS4362A_MUTEC_POL	0x08
25a9d3cc48SClemens Ladisch #define CS4362A_RMP_UP		0x10
26a9d3cc48SClemens Ladisch #define CS4362A_SNGLVOL		0x20
27a9d3cc48SClemens Ladisch #define CS4362A_ZERO_CROSS	0x40
28a9d3cc48SClemens Ladisch #define CS4362A_SOFT_RAMP	0x80
29a9d3cc48SClemens Ladisch /* register 04h */
30a9d3cc48SClemens Ladisch #define CS4362A_RMP_DN		0x01
31a9d3cc48SClemens Ladisch #define CS4362A_DEM_MASK	0x06
32a9d3cc48SClemens Ladisch #define CS4362A_DEM_NONE	0x00
33a9d3cc48SClemens Ladisch #define CS4362A_DEM_44100	0x02
34a9d3cc48SClemens Ladisch #define CS4362A_DEM_48000	0x04
35a9d3cc48SClemens Ladisch #define CS4362A_DEM_32000	0x06
36a9d3cc48SClemens Ladisch #define CS4362A_FILT_SEL	0x10
37a9d3cc48SClemens Ladisch /* register 05h */
38a9d3cc48SClemens Ladisch #define CS4362A_INV_A1		0x01
39a9d3cc48SClemens Ladisch #define CS4362A_INV_B1		0x02
40a9d3cc48SClemens Ladisch #define CS4362A_INV_A2		0x04
41a9d3cc48SClemens Ladisch #define CS4362A_INV_B2		0x08
42a9d3cc48SClemens Ladisch #define CS4362A_INV_A3		0x10
43a9d3cc48SClemens Ladisch #define CS4362A_INV_B3		0x20
44a9d3cc48SClemens Ladisch /* register 06h */
45a9d3cc48SClemens Ladisch #define CS4362A_FM_MASK		0x03
46a9d3cc48SClemens Ladisch #define CS4362A_FM_SINGLE	0x00
47a9d3cc48SClemens Ladisch #define CS4362A_FM_DOUBLE	0x01
48a9d3cc48SClemens Ladisch #define CS4362A_FM_QUAD		0x02
49a9d3cc48SClemens Ladisch #define CS4362A_FM_DSD		0x03
50a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_MASK	0x7c
51a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_B_MUTE	0x00
52a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_B_R	0x04
53a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_B_L	0x08
54a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_B_LR	0x0c
55a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_A_MUTE	0x00
56a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_A_R	0x10
57a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_A_L	0x20
58a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_A_LR	0x30
59a9d3cc48SClemens Ladisch #define CS4362A_ATAPI_MIX_LR_VOL 0x40
60a9d3cc48SClemens Ladisch #define CS4362A_A_EQ_B		0x80
61a9d3cc48SClemens Ladisch /* register 07h */
62a9d3cc48SClemens Ladisch #define CS4362A_VOL_MASK		0x7f
63a9d3cc48SClemens Ladisch #define CS4362A_MUTE			0x80
64a9d3cc48SClemens Ladisch /* register 08h: like 07h */
65a9d3cc48SClemens Ladisch /* registers 09h..0Bh: like 06h..08h */
66a9d3cc48SClemens Ladisch /* registers 0Ch..0Eh: like 06h..08h */
67a9d3cc48SClemens Ladisch /* register 12h */
68a9d3cc48SClemens Ladisch #define CS4362A_REV_MASK	0x07
69a9d3cc48SClemens Ladisch #define CS4362A_PART_MASK	0xf8
70a9d3cc48SClemens Ladisch #define CS4362A_PART_CS4362A	0x50
71