forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/sound/soc/codecs/cx2072x.h
....@@ -1,316 +1,314 @@
11 /* SPDX-License-Identifier: GPL-2.0 */
22 /*
3
- * ALSA SoC CX2072x Solana codec driver
3
+ * ALSA SoC CX20721/CX20723 codec driver
44 *
5
- * Copyright: (C) 2016 Conexant Systems, Inc.
5
+ * Copyright: (C) 2017 Conexant Systems, Inc.
6
+ * Author: Simon Ho, <Simon.ho@conexant.com>
67 */
78
8
-#define NUM_OF_DAI 1
9
-#define CX2072X_MCLK_PLL 1
10
-#define CX2072X_MCLK_EXTERNAL_PLL 1
11
-#define CX2072X_MCLK_INTERNAL_OSC 2
9
+#ifndef __CX2072X_H__
10
+#define __CX2072X_H__
1211
13
-#define CX2072X_RATES SNDRV_PCM_RATE_8000_192000
12
+#define CX2072X_MCLK_PLL 1
13
+#define CX2072X_MCLK_EXTERNAL_PLL 1
14
+#define CX2072X_MCLK_INTERNAL_OSC 2
15
+
16
+/*#define CX2072X_RATES SNDRV_PCM_RATE_8000_192000*/
1417 #define CX2072X_RATES_DSP SNDRV_PCM_RATE_48000
15
-#define CX2072X_RATES_MCLK 12288000
1618
17
-#define CX2072X_REG_MAX 0x8a3c
18
-#define AUDDRV_VERSION(major0, major1, minor, build) \
19
- ((major0) << 24 | (major1) << 16 | (minor) << 8 | (build))
19
+#define CX2072X_REG_MAX 0x8a3c
2020
21
-#define CX2072X_VENDOR_ID 0x0200
22
-#define CX2072X_REVISION_ID 0x0208
23
-#define CX2072X_CURRENT_BCLK_FREQUENCY 0x00dc
24
-#define CX2072X_AFG_POWER_STATE 0x0414
25
-#define CX2072X_UM_RESPONSE 0x0420
26
-#define CX2072X_GPIO_DATA 0x0454
27
-#define CX2072X_GPIO_ENABLE 0x0458
28
-#define CX2072X_GPIO_DIRECTION 0x045c
29
-#define CX2072X_GPIO_WAKE 0x0460
30
-#define CX2072X_GPIO_UM_ENABLE 0x0464
31
-#define CX2072X_GPIO_STICKY_MASK 0x0468
32
-#define CX2072X_AFG_FUNCTION_RESET 0x07FC
33
-#define CX2072X_DAC1_CONVERTER_FORMAT 0x43c8
34
-#define CX2072X_DAC1_AMP_GAIN_RIGHT 0x41c0
35
-#define CX2072X_DAC1_AMP_GAIN_LEFT 0x41e0
36
-#define CX2072X_DAC1_POWER_STATE 0x4014
37
-#define CX2072X_DAC1_CONVERTER_STREAM_CHANNEL 0x4018
38
-#define CX2072X_DAC1_EAPD_ENABLE 0x4030
39
-#define CX2072X_DAC2_CONVERTER_FORMAT 0x47c8
40
-#define CX2072X_DAC2_AMP_GAIN_RIGHT 0x45c0
41
-#define CX2072X_DAC2_AMP_GAIN_LEFT 0x45e0
42
-#define CX2072X_DAC2_POWER_STATE 0x4414
43
-#define CX2072X_DAC2_CONVERTER_STREAM_CHANNEL 0x4418
44
-#define CX2072X_ADC1_CONVERTER_FORMAT 0x4fc8
45
-#define CX2072X_ADC1_AMP_GAIN_RIGHT_0 0x4d80
46
-#define CX2072X_ADC1_AMP_GAIN_LEFT_0 0x4da0
47
-#define CX2072X_ADC1_AMP_GAIN_RIGHT_1 0x4d84
48
-#define CX2072X_ADC1_AMP_GAIN_LEFT_1 0x4da4
49
-#define CX2072X_ADC1_AMP_GAIN_RIGHT_2 0x4d88
50
-#define CX2072X_ADC1_AMP_GAIN_LEFT_2 0x4da8
51
-#define CX2072X_ADC1_AMP_GAIN_RIGHT_3 0x4d8c
52
-#define CX2072X_ADC1_AMP_GAIN_LEFT_3 0x4dac
53
-#define CX2072X_ADC1_AMP_GAIN_RIGHT_4 0x4d90
54
-#define CX2072X_ADC1_AMP_GAIN_LEFT_4 0x4db0
55
-#define CX2072X_ADC1_AMP_GAIN_RIGHT_5 0x4d94
56
-#define CX2072X_ADC1_AMP_GAIN_LEFT_5 0x4db4
57
-#define CX2072X_ADC1_AMP_GAIN_RIGHT_6 0x4d98
58
-#define CX2072X_ADC1_AMP_GAIN_LEFT_6 0x4db8
59
-#define CX2072X_ADC1_CONNECTION_SELECT_CONTROL 0x4c04
60
-#define CX2072X_ADC1_POWER_STATE 0x4c14
61
-#define CX2072X_ADC1_CONVERTER_STREAM_CHANNEL 0x4c18
62
-#define CX2072X_ADC2_CONVERTER_FORMAT 0x53c8
63
-#define CX2072X_ADC2_AMP_GAIN_RIGHT_0 0x5180
64
-#define CX2072X_ADC2_AMP_GAIN_LEFT_0 0x51a0
65
-#define CX2072X_ADC2_AMP_GAIN_RIGHT_1 0x5184
66
-#define CX2072X_ADC2_AMP_GAIN_LEFT_1 0x51a4
67
-#define CX2072X_ADC2_AMP_GAIN_RIGHT_2 0x5188
68
-#define CX2072X_ADC2_AMP_GAIN_LEFT_2 0x51a8
69
-#define CX2072X_ADC2_CONNECTION_SELECT_CONTROL 0x5004
70
-#define CX2072X_ADC2_POWER_STATE 0x5014
71
-#define CX2072X_ADC2_CONVERTER_STREAM_CHANNEL 0x5018
72
-#define CX2072X_PORTA_CONNECTION_SELECT_CTRL 0x5804
73
-#define CX2072X_PORTA_POWER_STATE 0x5814
74
-#define CX2072X_PORTA_PIN_CTRL 0x581c
75
-#define CX2072X_PORTA_UNSOLICITED_RESPONSE 0x5820
76
-#define CX2072X_PORTA_PIN_SENSE 0x5824
77
-#define CX2072X_PORTA_EAPD_BTL 0x5830
78
-#define CX2072X_PORTB_POWER_STATE 0x6014
79
-#define CX2072X_PORTB_PIN_CTRL 0x601c
80
-#define CX2072X_PORTB_UNSOLICITED_RESPONSE 0x6020
81
-#define CX2072X_PORTB_PIN_SENSE 0x6024
82
-#define CX2072X_PORTB_EAPD_BTL 0x6030
83
-#define CX2072X_PORTB_GAIN_RIGHT 0x6180
84
-#define CX2072X_PORTB_GAIN_LEFT 0x61a0
85
-#define CX2072X_PORTC_POWER_STATE 0x6814
86
-#define CX2072X_PORTC_PIN_CTRL 0x681c
87
-#define CX2072X_PORTC_GAIN_RIGHT 0x6980
88
-#define CX2072X_PORTC_GAIN_LEFT 0x69a0
89
-#define CX2072X_PORTD_POWER_STATE 0x6414
90
-#define CX2072X_PORTD_PIN_CTRL 0x641c
91
-#define CX2072X_PORTD_UNSOLICITED_RESPONSE 0x6420
92
-#define CX2072X_PORTD_PIN_SENSE 0x6424
93
-#define CX2072X_PORTD_GAIN_RIGHT 0x6580
94
-#define CX2072X_PORTD_GAIN_LEFT 0x65a0
95
-#define CX2072X_PORTE_CONNECTION_SELECT_CTRL 0x7404
96
-#define CX2072X_PORTE_POWER_STATE 0x7414
97
-#define CX2072X_PORTE_PIN_CTRL 0x741c
98
-#define CX2072X_PORTE_UNSOLICITED_RESPONSE 0x7420
99
-#define CX2072X_PORTE_PIN_SENSE 0x7424
100
-#define CX2072X_PORTE_EAPD_BTL 0x7430
101
-#define CX2072X_PORTE_GAIN_RIGHT 0x7580
102
-#define CX2072X_PORTE_GAIN_LEFT 0x75a0
103
-#define CX2072X_PORTF_POWER_STATE 0x7814
104
-#define CX2072X_PORTF_PIN_CTRL 0x781c
105
-#define CX2072X_PORTF_UNSOLICITED_RESPONSE 0x7820
106
-#define CX2072X_PORTF_PIN_SENSE 0x7824
107
-#define CX2072X_PORTF_GAIN_RIGHT 0x7980
108
-#define CX2072X_PORTF_GAIN_LEFT 0x79a0
109
-#define CX2072X_PORTG_POWER_STATE 0x5c14
110
-#define CX2072X_PORTG_PIN_CTRL 0x5c1c
111
-#define CX2072X_PORTG_CONNECTION_SELECT_CTRL 0x5c04
112
-#define CX2072X_PORTG_EAPD_BTL 0x5c30
113
-#define CX2072X_PORTM_POWER_STATE 0x8814
114
-#define CX2072X_PORTM_PIN_CTRL 0x881c
115
-#define CX2072X_PORTM_CONNECTION_SELECT_CTRL 0x8804
116
-#define CX2072X_PORTM_EAPD_BTL 0x8830
117
-#define CX2072X_MIXER_POWER_STATE 0x5414
118
-#define CX2072X_MIXER_GAIN_RIGHT_0 0x5580
119
-#define CX2072X_MIXER_GAIN_LEFT_0 0x55a0
120
-#define CX2072X_MIXER_GAIN_RIGHT_1 0x5584
121
-#define CX2072X_MIXER_GAIN_LEFT_1 0x55a4
122
-#define CX2072X_EQ_ENABLE_BYPASS 0x6d00
123
-#define CX2072X_EQ_B0_COEFF 0x6d02
124
-#define CX2072X_EQ_B1_COEFF 0x6d04
125
-#define CX2072X_EQ_B2_COEFF 0x6d06
126
-#define CX2072X_EQ_A1_COEFF 0x6d08
127
-#define CX2072X_EQ_A2_COEFF 0x6d0a
128
-#define CX2072X_EQ_G_COEFF 0x6d0c
129
-#define CX2072X_EQ_BAND 0x6d0d
130
-#define CX2072X_SPKR_DRC_ENABLE_STEP 0x6d10
131
-#define CX2072X_SPKR_DRC_CONTROL 0x6d14
132
-#define CX2072X_SPKR_DRC_TEST 0X6D18
133
-#define CX2072X_DIGITAL_BIOS_TEST0 0x6d80
134
-#define CX2072X_DIGITAL_BIOS_TEST2 0x6d84
135
-#define CX2072X_I2SPCM_CONTROL1 0x6e00
136
-#define CX2072X_I2SPCM_CONTROL2 0x6e04
137
-#define CX2072X_I2SPCM_CONTROL3 0x6e08
138
-#define CX2072X_I2SPCM_CONTROL4 0x6e0c
139
-#define CX2072X_I2SPCM_CONTROL5 0x6e10
140
-#define CX2072X_I2SPCM_CONTROL6 0x6e18
141
-#define CX2072X_UM_INTERRUPT_CRTL_E 0x6e14
142
-#define CX2072X_CODEC_TEST2 0x7108
143
-#define CX2072X_CODEC_TEST9 0x7124
144
-#define CX2072X_CODEC_TEST20 0x7310
145
-#define CX2072X_CODEC_TEST26 0x7328
146
-#define CX2072X_ANALOG_TEST3 0x718c
147
-#define CX2072X_ANALOG_TEST4 0x7190
148
-#define CX2072X_ANALOG_TEST5 0x7194
149
-#define CX2072X_ANALOG_TEST6 0x7198
150
-#define CX2072X_ANALOG_TEST7 0x719c
151
-#define CX2072X_ANALOG_TEST8 0x71a0
152
-#define CX2072X_ANALOG_TEST9 0x71a4
153
-#define CX2072X_ANALOG_TEST10 0x71a8
154
-#define CX2072X_ANALOG_TEST11 0x71ac
155
-#define CX2072X_ANALOG_TEST12 0x71b0
156
-#define CX2072X_ANALOG_TEST13 0x71b4
157
-#define CX2072X_DIGITAL_TEST0 0x7200
158
-#define CX2072X_DIGITAL_TEST1 0x7204
159
-#define CX2072X_DIGITAL_TEST11 0x722c
160
-#define CX2072X_DIGITAL_TEST12 0x7230
161
-#define CX2072X_DIGITAL_TEST15 0x723c
162
-#define CX2072X_DIGITAL_TEST16 0x7080
163
-#define CX2072X_DIGITAL_TEST17 0x7084
164
-#define CX2072X_DIGITAL_TEST18 0x7088
165
-#define CX2072X_DIGITAL_TEST19 0x708c
166
-#define CX2072X_DIGITAL_TEST20 0x7090
21
+#define CX2072X_VENDOR_ID 0x0200
22
+#define CX2072X_REVISION_ID 0x0208
23
+#define CX2072X_CURRENT_BCLK_FREQUENCY 0x00dc
24
+#define CX2072X_AFG_POWER_STATE 0x0414
25
+#define CX2072X_UM_RESPONSE 0x0420
26
+#define CX2072X_GPIO_DATA 0x0454
27
+#define CX2072X_GPIO_ENABLE 0x0458
28
+#define CX2072X_GPIO_DIRECTION 0x045c
29
+#define CX2072X_GPIO_WAKE 0x0460
30
+#define CX2072X_GPIO_UM_ENABLE 0x0464
31
+#define CX2072X_GPIO_STICKY_MASK 0x0468
32
+#define CX2072X_AFG_FUNCTION_RESET 0x07fc
33
+#define CX2072X_DAC1_CONVERTER_FORMAT 0x43c8
34
+#define CX2072X_DAC1_AMP_GAIN_RIGHT 0x41c0
35
+#define CX2072X_DAC1_AMP_GAIN_LEFT 0x41e0
36
+#define CX2072X_DAC1_POWER_STATE 0x4014
37
+#define CX2072X_DAC1_CONVERTER_STREAM_CHANNEL 0x4018
38
+#define CX2072X_DAC1_EAPD_ENABLE 0x4030
39
+#define CX2072X_DAC2_CONVERTER_FORMAT 0x47c8
40
+#define CX2072X_DAC2_AMP_GAIN_RIGHT 0x45c0
41
+#define CX2072X_DAC2_AMP_GAIN_LEFT 0x45e0
42
+#define CX2072X_DAC2_POWER_STATE 0x4414
43
+#define CX2072X_DAC2_CONVERTER_STREAM_CHANNEL 0x4418
44
+#define CX2072X_ADC1_CONVERTER_FORMAT 0x4fc8
45
+#define CX2072X_ADC1_AMP_GAIN_RIGHT_0 0x4d80
46
+#define CX2072X_ADC1_AMP_GAIN_LEFT_0 0x4da0
47
+#define CX2072X_ADC1_AMP_GAIN_RIGHT_1 0x4d84
48
+#define CX2072X_ADC1_AMP_GAIN_LEFT_1 0x4da4
49
+#define CX2072X_ADC1_AMP_GAIN_RIGHT_2 0x4d88
50
+#define CX2072X_ADC1_AMP_GAIN_LEFT_2 0x4da8
51
+#define CX2072X_ADC1_AMP_GAIN_RIGHT_3 0x4d8c
52
+#define CX2072X_ADC1_AMP_GAIN_LEFT_3 0x4dac
53
+#define CX2072X_ADC1_AMP_GAIN_RIGHT_4 0x4d90
54
+#define CX2072X_ADC1_AMP_GAIN_LEFT_4 0x4db0
55
+#define CX2072X_ADC1_AMP_GAIN_RIGHT_5 0x4d94
56
+#define CX2072X_ADC1_AMP_GAIN_LEFT_5 0x4db4
57
+#define CX2072X_ADC1_AMP_GAIN_RIGHT_6 0x4d98
58
+#define CX2072X_ADC1_AMP_GAIN_LEFT_6 0x4db8
59
+#define CX2072X_ADC1_CONNECTION_SELECT_CONTROL 0x4c04
60
+#define CX2072X_ADC1_POWER_STATE 0x4c14
61
+#define CX2072X_ADC1_CONVERTER_STREAM_CHANNEL 0x4c18
62
+#define CX2072X_ADC2_CONVERTER_FORMAT 0x53c8
63
+#define CX2072X_ADC2_AMP_GAIN_RIGHT_0 0x5180
64
+#define CX2072X_ADC2_AMP_GAIN_LEFT_0 0x51a0
65
+#define CX2072X_ADC2_AMP_GAIN_RIGHT_1 0x5184
66
+#define CX2072X_ADC2_AMP_GAIN_LEFT_1 0x51a4
67
+#define CX2072X_ADC2_AMP_GAIN_RIGHT_2 0x5188
68
+#define CX2072X_ADC2_AMP_GAIN_LEFT_2 0x51a8
69
+#define CX2072X_ADC2_CONNECTION_SELECT_CONTROL 0x5004
70
+#define CX2072X_ADC2_POWER_STATE 0x5014
71
+#define CX2072X_ADC2_CONVERTER_STREAM_CHANNEL 0x5018
72
+#define CX2072X_PORTA_CONNECTION_SELECT_CTRL 0x5804
73
+#define CX2072X_PORTA_POWER_STATE 0x5814
74
+#define CX2072X_PORTA_PIN_CTRL 0x581c
75
+#define CX2072X_PORTA_UNSOLICITED_RESPONSE 0x5820
76
+#define CX2072X_PORTA_PIN_SENSE 0x5824
77
+#define CX2072X_PORTA_EAPD_BTL 0x5830
78
+#define CX2072X_PORTB_POWER_STATE 0x6014
79
+#define CX2072X_PORTB_PIN_CTRL 0x601c
80
+#define CX2072X_PORTB_UNSOLICITED_RESPONSE 0x6020
81
+#define CX2072X_PORTB_PIN_SENSE 0x6024
82
+#define CX2072X_PORTB_EAPD_BTL 0x6030
83
+#define CX2072X_PORTB_GAIN_RIGHT 0x6180
84
+#define CX2072X_PORTB_GAIN_LEFT 0x61a0
85
+#define CX2072X_PORTC_POWER_STATE 0x6814
86
+#define CX2072X_PORTC_PIN_CTRL 0x681c
87
+#define CX2072X_PORTC_GAIN_RIGHT 0x6980
88
+#define CX2072X_PORTC_GAIN_LEFT 0x69a0
89
+#define CX2072X_PORTD_POWER_STATE 0x6414
90
+#define CX2072X_PORTD_PIN_CTRL 0x641c
91
+#define CX2072X_PORTD_UNSOLICITED_RESPONSE 0x6420
92
+#define CX2072X_PORTD_PIN_SENSE 0x6424
93
+#define CX2072X_PORTD_GAIN_RIGHT 0x6580
94
+#define CX2072X_PORTD_GAIN_LEFT 0x65a0
95
+#define CX2072X_PORTE_CONNECTION_SELECT_CTRL 0x7404
96
+#define CX2072X_PORTE_POWER_STATE 0x7414
97
+#define CX2072X_PORTE_PIN_CTRL 0x741c
98
+#define CX2072X_PORTE_UNSOLICITED_RESPONSE 0x7420
99
+#define CX2072X_PORTE_PIN_SENSE 0x7424
100
+#define CX2072X_PORTE_EAPD_BTL 0x7430
101
+#define CX2072X_PORTE_GAIN_RIGHT 0x7580
102
+#define CX2072X_PORTE_GAIN_LEFT 0x75a0
103
+#define CX2072X_PORTF_POWER_STATE 0x7814
104
+#define CX2072X_PORTF_PIN_CTRL 0x781c
105
+#define CX2072X_PORTF_UNSOLICITED_RESPONSE 0x7820
106
+#define CX2072X_PORTF_PIN_SENSE 0x7824
107
+#define CX2072X_PORTF_GAIN_RIGHT 0x7980
108
+#define CX2072X_PORTF_GAIN_LEFT 0x79a0
109
+#define CX2072X_PORTG_POWER_STATE 0x5c14
110
+#define CX2072X_PORTG_PIN_CTRL 0x5c1c
111
+#define CX2072X_PORTG_CONNECTION_SELECT_CTRL 0x5c04
112
+#define CX2072X_PORTG_EAPD_BTL 0x5c30
113
+#define CX2072X_PORTM_POWER_STATE 0x8814
114
+#define CX2072X_PORTM_PIN_CTRL 0x881c
115
+#define CX2072X_PORTM_CONNECTION_SELECT_CTRL 0x8804
116
+#define CX2072X_PORTM_EAPD_BTL 0x8830
117
+#define CX2072X_MIXER_POWER_STATE 0x5414
118
+#define CX2072X_MIXER_GAIN_RIGHT_0 0x5580
119
+#define CX2072X_MIXER_GAIN_LEFT_0 0x55a0
120
+#define CX2072X_MIXER_GAIN_RIGHT_1 0x5584
121
+#define CX2072X_MIXER_GAIN_LEFT_1 0x55a4
122
+#define CX2072X_EQ_ENABLE_BYPASS 0x6d00
123
+#define CX2072X_EQ_B0_COEFF 0x6d02
124
+#define CX2072X_EQ_B1_COEFF 0x6d04
125
+#define CX2072X_EQ_B2_COEFF 0x6d06
126
+#define CX2072X_EQ_A1_COEFF 0x6d08
127
+#define CX2072X_EQ_A2_COEFF 0x6d0a
128
+#define CX2072X_EQ_G_COEFF 0x6d0c
129
+#define CX2072X_EQ_BAND 0x6d0d
130
+#define CX2072X_SPKR_DRC_ENABLE_STEP 0x6d10
131
+#define CX2072X_SPKR_DRC_CONTROL 0x6d14
132
+#define CX2072X_SPKR_DRC_TEST 0x6d18
133
+#define CX2072X_DIGITAL_BIOS_TEST0 0x6d80
134
+#define CX2072X_DIGITAL_BIOS_TEST2 0x6d84
135
+#define CX2072X_I2SPCM_CONTROL1 0x6e00
136
+#define CX2072X_I2SPCM_CONTROL2 0x6e04
137
+#define CX2072X_I2SPCM_CONTROL3 0x6e08
138
+#define CX2072X_I2SPCM_CONTROL4 0x6e0c
139
+#define CX2072X_I2SPCM_CONTROL5 0x6e10
140
+#define CX2072X_I2SPCM_CONTROL6 0x6e18
141
+#define CX2072X_UM_INTERRUPT_CRTL_E 0x6e14
142
+#define CX2072X_CODEC_TEST2 0x7108
143
+#define CX2072X_CODEC_TEST9 0x7124
144
+#define CX2072X_CODEC_TESTXX 0x7290
145
+#define CX2072X_CODEC_TEST20 0x7310
146
+#define CX2072X_CODEC_TEST24 0x731c
147
+#define CX2072X_CODEC_TEST26 0x7328
148
+#define CX2072X_ANALOG_TEST3 0x718c
149
+#define CX2072X_ANALOG_TEST4 0x7190
150
+#define CX2072X_ANALOG_TEST5 0x7194
151
+#define CX2072X_ANALOG_TEST6 0x7198
152
+#define CX2072X_ANALOG_TEST7 0x719c
153
+#define CX2072X_ANALOG_TEST8 0x71a0
154
+#define CX2072X_ANALOG_TEST9 0x71a4
155
+#define CX2072X_ANALOG_TEST10 0x71a8
156
+#define CX2072X_ANALOG_TEST11 0x71ac
157
+#define CX2072X_ANALOG_TEST12 0x71b0
158
+#define CX2072X_ANALOG_TEST13 0x71b4
159
+#define CX2072X_DIGITAL_TEST0 0x7200
160
+#define CX2072X_DIGITAL_TEST1 0x7204
161
+#define CX2072X_DIGITAL_TEST11 0x722c
162
+#define CX2072X_DIGITAL_TEST12 0x7230
163
+#define CX2072X_DIGITAL_TEST15 0x723c
164
+#define CX2072X_DIGITAL_TEST16 0x7080
165
+#define CX2072X_DIGITAL_TEST17 0x7084
166
+#define CX2072X_DIGITAL_TEST18 0x7088
167
+#define CX2072X_DIGITAL_TEST19 0x708c
168
+#define CX2072X_DIGITAL_TEST20 0x7090
167169
168
-#define INVALID_GPIO -1
169
-#define MAX_EQ_BAND 7
170
-#define MAC_EQ_COEFF 11
171
-#define MAX_DRC_REGS 9
172
-#define MIC_EQ_COEFF 10
173
-/* DAI interfae type*/
170
+/* not used in the current code, for future extensions (if any) */
171
+#define CX2072X_MAX_EQ_BAND 7
172
+#define CX2072X_MAX_EQ_COEFF 11
173
+#define CX2072X_MAX_DRC_REGS 9
174
+#define CX2072X_MIC_EQ_COEFF 10
175
+#define CX2072X_PLBK_EQ_BAND_NUM 7
176
+#define CX2072X_PLBK_EQ_COEF_LEN 11
177
+#define CX2072X_PLBK_DRC_PARM_LEN 9
178
+#define CX2072X_CLASSD_AMP_LEN 6
174179
175
-#define CX2072X_DAI_HIFI 1
176
-#define CX2072X_DAI_DSP 2
177
-/*4 ch, including mic and aec*/
178
-#define CX2072X_DAI_DSP_PWM 3
180
+/* DAI interfae type */
181
+#define CX2072X_DAI_HIFI 1
182
+#define CX2072X_DAI_DSP 2
183
+#define CX2072X_DAI_DSP_PWM 3 /* 4 ch, including mic and AEC */
179184
180
-enum cx2072x_jack_types {
181
- CX_JACK_NONE = 0x0000,
182
- CX_JACK_HEADPHONE = 0x0001,
183
- CX_JACK_APPLE_HEADSET = 0x0002,
184
- CX_JACK_NOKIE_HEADSET = 0x0003,
185
+enum cx2072x_reg_sample_size {
186
+ CX2072X_SAMPLE_SIZE_8_BITS = 0,
187
+ CX2072X_SAMPLE_SIZE_16_BITS = 1,
188
+ CX2072X_SAMPLE_SIZE_24_BITS = 2,
189
+ CX2072X_SAMPLE_SIZE_RESERVED = 3,
185190 };
186191
187
-int cx2072x_hs_jack_report(struct snd_soc_component *component);
188
-
189
-enum REG_SAMPLE_SIZE {
190
- SAMPLE_SIZE_8_BITS = 0,
191
- SAMPLE_SIZE_16_BITS = 1,
192
- SAMPLE_SIZE_24_BITS = 2,
193
- SAMPLE_SIZE_RESERVED = 3,
194
-};
195
-
196
-union REG_I2SPCM_CTRL_REG1 {
192
+union cx2072x_reg_i2spcm_ctrl_reg1 {
197193 struct {
198
- u32 rx_data_one_line :1;
199
- u32 rx_ws_pol :1;
200
- u32 rx_ws_wid :7;
201
- u32 rx_frm_len :5;
202
- u32 rx_sa_size :2;
203
- u32 tx_data_one_line :1;
204
- u32 tx_ws_pol :1;
205
- u32 tx_ws_wid :7;
206
- u32 tx_frm_len :5;
207
- u32 tx_sa_size :2;
194
+ u32 rx_data_one_line:1;
195
+ u32 rx_ws_pol:1;
196
+ u32 rx_ws_wid:7;
197
+ u32 rx_frm_len:5;
198
+ u32 rx_sa_size:2;
199
+ u32 tx_data_one_line:1;
200
+ u32 tx_ws_pol:1;
201
+ u32 tx_ws_wid:7;
202
+ u32 tx_frm_len:5;
203
+ u32 tx_sa_size:2;
208204 } r;
209205 u32 ulval;
210206 };
211207
212
-union REG_I2SPCM_CTRL_REG2 {
208
+union cx2072x_reg_i2spcm_ctrl_reg2 {
213209 struct {
214
- u32 tx_en_ch1 :1;
215
- u32 tx_en_ch2 :1;
216
- u32 tx_en_ch3 :1;
217
- u32 tx_en_ch4 :1;
218
- u32 tx_en_ch5 :1;
219
- u32 tx_en_ch6 :1;
220
- u32 tx_slot_1 :5;
221
- u32 tx_slot_2 :5;
222
- u32 tx_slot_3 :5;
223
- u32 tx_slot_4 :5;
224
- u32 res :1;
225
- u32 tx_data_neg_bclk :1;
226
- u32 tx_master :1;
227
- u32 tx_tri_n :1;
228
- u32 tx_endian_sel :1;
229
- u32 tx_dstart_dly :1;
210
+ u32 tx_en_ch1:1;
211
+ u32 tx_en_ch2:1;
212
+ u32 tx_en_ch3:1;
213
+ u32 tx_en_ch4:1;
214
+ u32 tx_en_ch5:1;
215
+ u32 tx_en_ch6:1;
216
+ u32 tx_slot_1:5;
217
+ u32 tx_slot_2:5;
218
+ u32 tx_slot_3:5;
219
+ u32 tx_slot_4:5;
220
+ u32 res:1;
221
+ u32 tx_data_neg_bclk:1;
222
+ u32 tx_master:1;
223
+ u32 tx_tri_n:1;
224
+ u32 tx_endian_sel:1;
225
+ u32 tx_dstart_dly:1;
230226 } r;
231227 u32 ulval;
232228 };
233229
234
-union REG_I2SPCM_CTRL_REG3 {
230
+union cx2072x_reg_i2spcm_ctrl_reg3 {
235231 struct {
236
- u32 rx_en_ch1 :1;
237
- u32 rx_en_ch2 :1;
238
- u32 rx_en_ch3 :1;
239
- u32 rx_en_ch4 :1;
240
- u32 rx_en_ch5 :1;
241
- u32 rx_en_ch6 :1;
242
- u32 rx_slot_1 :5;
243
- u32 rx_slot_2 :5;
244
- u32 rx_slot_3 :5;
245
- u32 rx_slot_4 :5;
246
- u32 res :1;
247
- u32 rx_data_neg_bclk :1;
248
- u32 rx_master :1;
249
- u32 rx_tri_n :1;
250
- u32 rx_endian_sel :1;
251
- u32 rx_dstart_dly :1;
232
+ u32 rx_en_ch1:1;
233
+ u32 rx_en_ch2:1;
234
+ u32 rx_en_ch3:1;
235
+ u32 rx_en_ch4:1;
236
+ u32 rx_en_ch5:1;
237
+ u32 rx_en_ch6:1;
238
+ u32 rx_slot_1:5;
239
+ u32 rx_slot_2:5;
240
+ u32 rx_slot_3:5;
241
+ u32 rx_slot_4:5;
242
+ u32 res:1;
243
+ u32 rx_data_neg_bclk:1;
244
+ u32 rx_master:1;
245
+ u32 rx_tri_n:1;
246
+ u32 rx_endian_sel:1;
247
+ u32 rx_dstart_dly:1;
252248 } r;
253249 u32 ulval;
254250 };
255251
256
-union REG_I2SPCM_CTRL_REG4 {
252
+union cx2072x_reg_i2spcm_ctrl_reg4 {
257253 struct {
258
- u32 rx_mute :1;
259
- u32 tx_mute :1;
260
- u32 reserved :1;
261
- u32 dac_34_independent :1;
254
+ u32 rx_mute:1;
255
+ u32 tx_mute:1;
256
+ u32 reserved:1;
257
+ u32 dac_34_independent:1;
262258 u32 dac_bclk_lrck_share:1;
263
- u32 bclk_lrck_share_en :1;
264
- u32 reserved2 :2;
265
- u32 rx_last_dac_ch_en :1;
266
- u32 rx_last_dac_ch :3;
267
- u32 tx_last_adc_ch_en :1;
268
- u32 tx_last_adc_ch :3;
269
- u32 rx_slot_5 :5;
270
- u32 rx_slot_6 :5;
271
- u32 reserved3 :6;
259
+ u32 bclk_lrck_share_en:1;
260
+ u32 reserved2:2;
261
+ u32 rx_last_dac_ch_en:1;
262
+ u32 rx_last_dac_ch:3;
263
+ u32 tx_last_adc_ch_en:1;
264
+ u32 tx_last_adc_ch:3;
265
+ u32 rx_slot_5:5;
266
+ u32 rx_slot_6:5;
267
+ u32 reserved3:6;
272268 } r;
273269 u32 ulval;
274270 };
275271
276
-union REG_I2SPCM_CTRL_REG5 {
272
+union cx2072x_reg_i2spcm_ctrl_reg5 {
277273 struct {
278
- u32 tx_slot_5 :5;
279
- u32 reserved :3;
280
- u32 tx_slot_6 :5;
281
- u32 reserved2 :3;
282
- u32 reserved3 :8;
283
- u32 i2s_pcm_clk_div :7;
284
- u32 i2s_pcm_clk_div_chan_en :1;
274
+ u32 tx_slot_5:5;
275
+ u32 reserved:3;
276
+ u32 tx_slot_6:5;
277
+ u32 reserved2:3;
278
+ u32 reserved3:8;
279
+ u32 i2s_pcm_clk_div:7;
280
+ u32 i2s_pcm_clk_div_chan_en:1;
285281 } r;
286282 u32 ulval;
287283 };
288284
289
-union REG_I2SPCM_CTRL_REG6 {
285
+union cx2072x_reg_i2spcm_ctrl_reg6 {
290286 struct {
291
- u32 reserved :5;
292
- u32 rx_pause_cycles :3;
293
- u32 rx_pause_start_pos :8;
294
- u32 reserved2 :5;
295
- u32 tx_pause_cycles :3;
296
- u32 tx_pause_start_pos :8;
287
+ u32 reserved:5;
288
+ u32 rx_pause_cycles:3;
289
+ u32 rx_pause_start_pos:8;
290
+ u32 reserved2:5;
291
+ u32 tx_pause_cycles:3;
292
+ u32 tx_pause_start_pos:8;
297293 } r;
298294 u32 ulval;
299295 };
300296
301
-union REG_DIGITAL_BIOS_TEST2 {
297
+union cx2072x_reg_digital_bios_test2 {
302298 struct {
303
- u32 pull_down_eapd :2;
304
- u32 input_en_eapd_pad :1;
305
- u32 push_pull_mode :1;
306
- u32 eapd_pad_output_driver :2;
307
- u32 pll_source :1;
308
- u32 i2s_bclk_en :1;
309
- u32 i2s_bclk_invert :1;
310
- u32 pll_ref_clock :1;
311
- u32 class_d_shield_clk:1;
312
- u32 audio_pll_bypass_mode:1;
313
- u32 reserved :4;
299
+ u32 pull_down_eapd:2;
300
+ u32 input_en_eapd_pad:1;
301
+ u32 push_pull_mode:1;
302
+ u32 eapd_pad_output_driver:2;
303
+ u32 pll_source:1;
304
+ u32 i2s_bclk_en:1;
305
+ u32 i2s_bclk_invert:1;
306
+ u32 pll_ref_clock:1;
307
+ u32 class_d_shield_clk:1;
308
+ u32 audio_pll_bypass_mode:1;
309
+ u32 reserved:4;
314310 } r;
315311 u32 ulval;
316312 };
313
+
314
+#endif /* __CX2072X_H__ */