.. | .. |
---|
1 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
---|
2 | 2 | /* |
---|
3 | | - * ALSA SoC CX2072x Solana codec driver |
---|
| 3 | + * ALSA SoC CX20721/CX20723 codec driver |
---|
4 | 4 | * |
---|
5 | | - * Copyright: (C) 2016 Conexant Systems, Inc. |
---|
| 5 | + * Copyright: (C) 2017 Conexant Systems, Inc. |
---|
| 6 | + * Author: Simon Ho, <Simon.ho@conexant.com> |
---|
6 | 7 | */ |
---|
7 | 8 | |
---|
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__ |
---|
12 | 11 | |
---|
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*/ |
---|
14 | 17 | #define CX2072X_RATES_DSP SNDRV_PCM_RATE_48000 |
---|
15 | | -#define CX2072X_RATES_MCLK 12288000 |
---|
16 | 18 | |
---|
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 |
---|
20 | 20 | |
---|
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 |
---|
167 | 169 | |
---|
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 |
---|
174 | 179 | |
---|
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 */ |
---|
179 | 184 | |
---|
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, |
---|
185 | 190 | }; |
---|
186 | 191 | |
---|
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 { |
---|
197 | 193 | 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; |
---|
208 | 204 | } r; |
---|
209 | 205 | u32 ulval; |
---|
210 | 206 | }; |
---|
211 | 207 | |
---|
212 | | -union REG_I2SPCM_CTRL_REG2 { |
---|
| 208 | +union cx2072x_reg_i2spcm_ctrl_reg2 { |
---|
213 | 209 | 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; |
---|
230 | 226 | } r; |
---|
231 | 227 | u32 ulval; |
---|
232 | 228 | }; |
---|
233 | 229 | |
---|
234 | | -union REG_I2SPCM_CTRL_REG3 { |
---|
| 230 | +union cx2072x_reg_i2spcm_ctrl_reg3 { |
---|
235 | 231 | 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; |
---|
252 | 248 | } r; |
---|
253 | 249 | u32 ulval; |
---|
254 | 250 | }; |
---|
255 | 251 | |
---|
256 | | -union REG_I2SPCM_CTRL_REG4 { |
---|
| 252 | +union cx2072x_reg_i2spcm_ctrl_reg4 { |
---|
257 | 253 | 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; |
---|
262 | 258 | 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; |
---|
272 | 268 | } r; |
---|
273 | 269 | u32 ulval; |
---|
274 | 270 | }; |
---|
275 | 271 | |
---|
276 | | -union REG_I2SPCM_CTRL_REG5 { |
---|
| 272 | +union cx2072x_reg_i2spcm_ctrl_reg5 { |
---|
277 | 273 | 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; |
---|
285 | 281 | } r; |
---|
286 | 282 | u32 ulval; |
---|
287 | 283 | }; |
---|
288 | 284 | |
---|
289 | | -union REG_I2SPCM_CTRL_REG6 { |
---|
| 285 | +union cx2072x_reg_i2spcm_ctrl_reg6 { |
---|
290 | 286 | 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; |
---|
297 | 293 | } r; |
---|
298 | 294 | u32 ulval; |
---|
299 | 295 | }; |
---|
300 | 296 | |
---|
301 | | -union REG_DIGITAL_BIOS_TEST2 { |
---|
| 297 | +union cx2072x_reg_digital_bios_test2 { |
---|
302 | 298 | 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; |
---|
314 | 310 | } r; |
---|
315 | 311 | u32 ulval; |
---|
316 | 312 | }; |
---|
| 313 | + |
---|
| 314 | +#endif /* __CX2072X_H__ */ |
---|