@@ -136,26 +136,29 @@ enum {
136136#define REG_CGR3_GO1L_OFFSET 0
137137#define REG_CGR3_GO1L_MASK (0x1f << REG_CGR3_GO1L_OFFSET)
138138
139+ #define REG_CGR10_GIL_OFFSET 0
140+ #define REG_CGR10_GIR_OFFSET 4
141+
139142struct jz_icdc {
140143 struct regmap * regmap ;
141144 void __iomem * base ;
142145 struct clk * clk ;
143146};
144147
145- static const SNDRV_CTL_TLVD_DECLARE_DB_LINEAR ( jz4725b_dac_tlv , -2250 , 0 ) ;
146- static const SNDRV_CTL_TLVD_DECLARE_DB_LINEAR ( jz4725b_line_tlv , -1500 , 600 ) ;
148+ static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE ( jz4725b_adc_tlv , 0 , 150 , 0 ) ;
149+ static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE ( jz4725b_dac_tlv , -2250 , 150 , 0 ) ;
147150
148151static const struct snd_kcontrol_new jz4725b_codec_controls [] = {
149152 SOC_DOUBLE_TLV ("Master Playback Volume" ,
150153 JZ4725B_CODEC_REG_CGR1 ,
151154 REG_CGR1_GODL_OFFSET ,
152155 REG_CGR1_GODR_OFFSET ,
153156 0xf , 1 , jz4725b_dac_tlv ),
154- SOC_DOUBLE_R_TLV ("Master Capture Volume" ,
155- JZ4725B_CODEC_REG_CGR3 ,
156- JZ4725B_CODEC_REG_CGR2 ,
157- REG_CGR2_GO1R_OFFSET ,
158- 0x1f , 1 , jz4725b_line_tlv ),
157+ SOC_DOUBLE_TLV ("Master Capture Volume" ,
158+ JZ4725B_CODEC_REG_CGR10 ,
159+ REG_CGR10_GIL_OFFSET ,
160+ REG_CGR10_GIR_OFFSET ,
161+ 0xf , 0 , jz4725b_adc_tlv ),
159162
160163 SOC_SINGLE ("Master Playback Switch" , JZ4725B_CODEC_REG_CR1 ,
161164 REG_CR1_DAC_MUTE_OFFSET , 1 , 1 ),
@@ -180,7 +183,7 @@ static SOC_VALUE_ENUM_SINGLE_DECL(jz4725b_codec_adc_src_enum,
180183 jz4725b_codec_adc_src_texts ,
181184 jz4725b_codec_adc_src_values ) ;
182185static const struct snd_kcontrol_new jz4725b_codec_adc_src_ctrl =
183- SOC_DAPM_ENUM ("Route" , jz4725b_codec_adc_src_enum );
186+ SOC_DAPM_ENUM ("ADC Source Capture Route" , jz4725b_codec_adc_src_enum );
184187
185188static const struct snd_kcontrol_new jz4725b_codec_mixer_controls [] = {
186189 SOC_DAPM_SINGLE ("Line In Bypass" , JZ4725B_CODEC_REG_CR1 ,
@@ -225,7 +228,7 @@ static const struct snd_soc_dapm_widget jz4725b_codec_dapm_widgets[] = {
225228 SND_SOC_DAPM_ADC ("ADC" , "Capture" ,
226229 JZ4725B_CODEC_REG_PMR1 , REG_PMR1_SB_ADC_OFFSET , 1 ),
227230
228- SND_SOC_DAPM_MUX ("ADC Source" , SND_SOC_NOPM , 0 , 0 ,
231+ SND_SOC_DAPM_MUX ("ADC Source Capture Route " , SND_SOC_NOPM , 0 , 0 ,
229232 & jz4725b_codec_adc_src_ctrl ),
230233
231234 /* Mixer */
@@ -236,7 +239,8 @@ static const struct snd_soc_dapm_widget jz4725b_codec_dapm_widgets[] = {
236239 SND_SOC_DAPM_MIXER ("DAC to Mixer" , JZ4725B_CODEC_REG_CR1 ,
237240 REG_CR1_DACSEL_OFFSET , 0 , NULL , 0 ),
238241
239- SND_SOC_DAPM_MIXER ("Line In" , SND_SOC_NOPM , 0 , 0 , NULL , 0 ),
242+ SND_SOC_DAPM_MIXER ("Line In" , JZ4725B_CODEC_REG_PMR1 ,
243+ REG_PMR1_SB_LIN_OFFSET , 1 , NULL , 0 ),
240244 SND_SOC_DAPM_MIXER ("HP Out" , JZ4725B_CODEC_REG_CR1 ,
241245 REG_CR1_HP_DIS_OFFSET , 1 , NULL , 0 ),
242246
@@ -283,11 +287,11 @@ static const struct snd_soc_dapm_route jz4725b_codec_dapm_routes[] = {
283287 {"Mixer" , NULL , "DAC to Mixer" },
284288
285289 {"Mixer to ADC" , NULL , "Mixer" },
286- {"ADC Source" , "Mixer" , "Mixer to ADC" },
287- {"ADC Source" , "Line In" , "Line In" },
288- {"ADC Source" , "Mic 1" , "Mic 1" },
289- {"ADC Source" , "Mic 2" , "Mic 2" },
290- {"ADC" , NULL , "ADC Source" },
290+ {"ADC Source Capture Route " , "Mixer" , "Mixer to ADC" },
291+ {"ADC Source Capture Route " , "Line In" , "Line In" },
292+ {"ADC Source Capture Route " , "Mic 1" , "Mic 1" },
293+ {"ADC Source Capture Route " , "Mic 2" , "Mic 2" },
294+ {"ADC" , NULL , "ADC Source Capture Route " },
291295
292296 {"Out Stage" , NULL , "Mixer" },
293297 {"HP Out" , NULL , "Out Stage" },
0 commit comments