Lines Matching +full:adc +full:- +full:delay +full:- +full:ms
1 // SPDX-License-Identifier: GPL-2.0
5 #include <linux/delay.h>
24 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in max98373_dac_event()
29 regmap_update_bits(max98373->regmap, in max98373_dac_event()
35 regmap_update_bits(max98373->regmap, in max98373_dac_event()
39 max98373->tdm_mode = false; in max98373_dac_event()
86 static DECLARE_TLV_DB_SCALE(max98373_digital_tlv, -6350, 50, 1);
102 0, 1, TLV_DB_SCALE_ITEM(-3000, 500, 0),
103 2, 4, TLV_DB_SCALE_ITEM(-2200, 200, 0),
104 5, 6, TLV_DB_SCALE_ITEM(-1500, 300, 0),
105 7, 9, TLV_DB_SCALE_ITEM(-1000, 200, 0),
106 10, 13, TLV_DB_SCALE_ITEM(-500, 100, 0),
107 14, 15, TLV_DB_SCALE_ITEM(-100, 50, 0),
110 0, 15, TLV_DB_SCALE_ITEM(-1500, 100, 0),
114 0, 60, TLV_DB_SCALE_ITEM(-1500, 25, 0),
136 "45ms", "225ms", "450ms", "1150ms",
137 "2250ms", "3100ms", "4500ms", "6750ms"
146 "160us", "320us", "640us", "1.28ms",
147 "2.56ms", "5.12ms", "10.24ms", "20.48ms",
148 "40.96ms", "81.92ms", "16.384ms", "32.768ms"
157 "640us", "1.28ms", "2.56ms", "5.120ms",
158 "10.24ms", "20.48ms", "40.96ms", "81.92ms",
159 "163.84ms", "327.68ms", "655.36ms", "1310.72ms"
179 (struct soc_mixer_control *)kcontrol->private_value; in max98373_feedback_get()
188 for (i = 0; i < max98373->cache_num; i++) { in max98373_feedback_get()
189 if (mc->reg == max98373->cache[i].reg) { in max98373_feedback_get()
190 ucontrol->value.integer.value[0] = max98373->cache[i].val; in max98373_feedback_get()
243 /* ADC configuration */
244 SOC_SINGLE("ADC PVDD CH Switch", MAX98373_R2056_MEAS_ADC_PVDD_CH_EN, 0, 1, 0),
245 SOC_SINGLE("ADC PVDD FLT Switch", MAX98373_R2052_MEAS_ADC_PVDD_FLT_CFG,
247 SOC_SINGLE("ADC TEMP FLT Switch", MAX98373_R2053_MEAS_ADC_THERM_FLT_CFG,
249 SOC_SINGLE_EXT("ADC PVDD", MAX98373_R2054_MEAS_ADC_PVDD_CH_READBACK, 0, 0xFF, 0,
251 SOC_SINGLE_EXT("ADC TEMP", MAX98373_R2055_MEAS_ADC_THERM_CH_READBACK, 0, 0xFF, 0,
253 SOC_SINGLE("ADC PVDD FLT Coeff", MAX98373_R2052_MEAS_ADC_PVDD_FLT_CFG,
255 SOC_SINGLE("ADC TEMP FLT Coeff", MAX98373_R2053_MEAS_ADC_THERM_FLT_CFG,
257 SOC_ENUM("ADC SampleRate", max98373_adc_samplerate_enum),
330 ret = regmap_update_bits(max98373->regmap, in max98373_reset()
341 ret = regmap_read(max98373->regmap, in max98373_reset()
358 max98373_reset(max98373, component->dev); in max98373_probe()
361 regmap_write(max98373->regmap, in max98373_probe()
364 regmap_write(max98373->regmap, in max98373_probe()
368 regmap_write(max98373->regmap, in max98373_probe()
371 regmap_write(max98373->regmap, in max98373_probe()
375 regmap_write(max98373->regmap, in max98373_probe()
379 regmap_write(max98373->regmap, in max98373_probe()
383 regmap_write(max98373->regmap, in max98373_probe()
385 (max98373->i_slot << MAX98373_PCM_TX_CH_SRC_A_I_SHIFT | in max98373_probe()
386 max98373->v_slot) & 0xFF); in max98373_probe()
387 if (max98373->v_slot < 8) in max98373_probe()
388 regmap_update_bits(max98373->regmap, in max98373_probe()
390 1 << max98373->v_slot, 0); in max98373_probe()
392 regmap_update_bits(max98373->regmap, in max98373_probe()
394 1 << (max98373->v_slot - 8), 0); in max98373_probe()
396 if (max98373->i_slot < 8) in max98373_probe()
397 regmap_update_bits(max98373->regmap, in max98373_probe()
399 1 << max98373->i_slot, 0); in max98373_probe()
401 regmap_update_bits(max98373->regmap, in max98373_probe()
403 1 << (max98373->i_slot - 8), 0); in max98373_probe()
406 regmap_write(max98373->regmap, in max98373_probe()
411 regmap_write(max98373->regmap, in max98373_probe()
413 max98373->spkfb_slot & 0xFF); in max98373_probe()
416 if (max98373->interleave_mode) in max98373_probe()
417 regmap_update_bits(max98373->regmap, in max98373_probe()
423 regmap_update_bits(max98373->regmap, in max98373_probe()
447 ret = pm_runtime_resume(component->dev); in max98373_sdw_probe()
448 if (ret < 0 && ret != -EACCES) in max98373_sdw_probe()
472 if (!device_property_read_u32(dev, "maxim,vmon-slot-no", &value)) in max98373_slot_config()
473 max98373->v_slot = value & 0xF; in max98373_slot_config()
475 max98373->v_slot = 0; in max98373_slot_config()
477 if (!device_property_read_u32(dev, "maxim,imon-slot-no", &value)) in max98373_slot_config()
478 max98373->i_slot = value & 0xF; in max98373_slot_config()
480 max98373->i_slot = 1; in max98373_slot_config()
481 if (dev->of_node) { in max98373_slot_config()
482 max98373->reset_gpio = of_get_named_gpio(dev->of_node, in max98373_slot_config()
483 "maxim,reset-gpio", 0); in max98373_slot_config()
484 if (!gpio_is_valid(max98373->reset_gpio)) { in max98373_slot_config()
486 "maxim,reset-gpio", dev->of_node->full_name, in max98373_slot_config()
487 max98373->reset_gpio); in max98373_slot_config()
489 dev_dbg(dev, "maxim,reset-gpio=%d", in max98373_slot_config()
490 max98373->reset_gpio); in max98373_slot_config()
494 max98373->reset_gpio = -1; in max98373_slot_config()
497 if (!device_property_read_u32(dev, "maxim,spkfb-slot-no", &value)) in max98373_slot_config()
498 max98373->spkfb_slot = value & 0xF; in max98373_slot_config()
500 max98373->spkfb_slot = 2; in max98373_slot_config()