Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/pci/oxygen/cs4245.h
26424 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
#define CS4245_CHIP_ID 0x01
3
#define CS4245_POWER_CTRL 0x02
4
#define CS4245_DAC_CTRL_1 0x03
5
#define CS4245_ADC_CTRL 0x04
6
#define CS4245_MCLK_FREQ 0x05
7
#define CS4245_SIGNAL_SEL 0x06
8
#define CS4245_PGA_B_CTRL 0x07
9
#define CS4245_PGA_A_CTRL 0x08
10
#define CS4245_ANALOG_IN 0x09
11
#define CS4245_DAC_A_CTRL 0x0a
12
#define CS4245_DAC_B_CTRL 0x0b
13
#define CS4245_DAC_CTRL_2 0x0c
14
#define CS4245_INT_STATUS 0x0d
15
#define CS4245_INT_MASK 0x0e
16
#define CS4245_INT_MODE_MSB 0x0f
17
#define CS4245_INT_MODE_LSB 0x10
18
19
/* Chip ID */
20
#define CS4245_CHIP_PART_MASK 0xf0
21
#define CS4245_CHIP_REV_MASK 0x0f
22
23
/* Power Control */
24
#define CS4245_FREEZE 0x80
25
#define CS4245_PDN_MIC 0x08
26
#define CS4245_PDN_ADC 0x04
27
#define CS4245_PDN_DAC 0x02
28
#define CS4245_PDN 0x01
29
30
/* DAC Control */
31
#define CS4245_DAC_FM_MASK 0xc0
32
#define CS4245_DAC_FM_SINGLE 0x00
33
#define CS4245_DAC_FM_DOUBLE 0x40
34
#define CS4245_DAC_FM_QUAD 0x80
35
#define CS4245_DAC_DIF_MASK 0x30
36
#define CS4245_DAC_DIF_LJUST 0x00
37
#define CS4245_DAC_DIF_I2S 0x10
38
#define CS4245_DAC_DIF_RJUST_16 0x20
39
#define CS4245_DAC_DIF_RJUST_24 0x30
40
#define CS4245_RESERVED_1 0x08
41
#define CS4245_MUTE_DAC 0x04
42
#define CS4245_DEEMPH 0x02
43
#define CS4245_DAC_MASTER 0x01
44
45
/* ADC Control */
46
#define CS4245_ADC_FM_MASK 0xc0
47
#define CS4245_ADC_FM_SINGLE 0x00
48
#define CS4245_ADC_FM_DOUBLE 0x40
49
#define CS4245_ADC_FM_QUAD 0x80
50
#define CS4245_ADC_DIF_MASK 0x10
51
#define CS4245_ADC_DIF_LJUST 0x00
52
#define CS4245_ADC_DIF_I2S 0x10
53
#define CS4245_MUTE_ADC 0x04
54
#define CS4245_HPF_FREEZE 0x02
55
#define CS4245_ADC_MASTER 0x01
56
57
/* MCLK Frequency */
58
#define CS4245_MCLK1_MASK 0x70
59
#define CS4245_MCLK1_SHIFT 4
60
#define CS4245_MCLK2_MASK 0x07
61
#define CS4245_MCLK2_SHIFT 0
62
#define CS4245_MCLK_1 0
63
#define CS4245_MCLK_1_5 1
64
#define CS4245_MCLK_2 2
65
#define CS4245_MCLK_3 3
66
#define CS4245_MCLK_4 4
67
68
/* Signal Selection */
69
#define CS4245_A_OUT_SEL_MASK 0x60
70
#define CS4245_A_OUT_SEL_HIZ 0x00
71
#define CS4245_A_OUT_SEL_DAC 0x20
72
#define CS4245_A_OUT_SEL_PGA 0x40
73
#define CS4245_LOOP 0x02
74
#define CS4245_ASYNCH 0x01
75
76
/* Channel B/A PGA Control */
77
#define CS4245_PGA_GAIN_MASK 0x3f
78
79
/* ADC Input Control */
80
#define CS4245_PGA_SOFT 0x10
81
#define CS4245_PGA_ZERO 0x08
82
#define CS4245_SEL_MASK 0x07
83
#define CS4245_SEL_MIC 0x00
84
#define CS4245_SEL_INPUT_1 0x01
85
#define CS4245_SEL_INPUT_2 0x02
86
#define CS4245_SEL_INPUT_3 0x03
87
#define CS4245_SEL_INPUT_4 0x04
88
#define CS4245_SEL_INPUT_5 0x05
89
#define CS4245_SEL_INPUT_6 0x06
90
91
/* DAC Channel A/B Volume Control */
92
#define CS4245_VOL_MASK 0xff
93
94
/* DAC Control 2 */
95
#define CS4245_DAC_SOFT 0x80
96
#define CS4245_DAC_ZERO 0x40
97
#define CS4245_INVERT_DAC 0x20
98
#define CS4245_INT_ACTIVE_HIGH 0x01
99
100
/* Interrupt Status/Mask/Mode */
101
#define CS4245_ADC_CLK_ERR 0x08
102
#define CS4245_DAC_CLK_ERR 0x04
103
#define CS4245_ADC_OVFL 0x02
104
#define CS4245_ADC_UNDRFL 0x01
105
106
#define CS4245_SPI_ADDRESS_S (0x9e << 16)
107
#define CS4245_SPI_WRITE_S (0 << 16)
108
109
#define CS4245_SPI_ADDRESS 0x9e
110
#define CS4245_SPI_WRITE 0
111
#define CS4245_SPI_READ 1
112
113