• Home
  • Raw
  • Download

Lines Matching +full:ch3 +full:- +full:0

1 // SPDX-License-Identifier: GPL-2.0
20 #include <sound/soc-dapm.h>
37 { 0x0, 0xFF }, /* 0x00 AK5558_00_POWER_MANAGEMENT1 */
38 { 0x1, 0x01 }, /* 0x01 AK5558_01_POWER_MANAGEMENT2 */
39 { 0x2, 0x01 }, /* 0x02 AK5558_02_CONTROL1 */
40 { 0x3, 0x00 }, /* 0x03 AK5558_03_CONTROL2 */
41 { 0x4, 0x00 }, /* 0x04 AK5558_04_CONTROL3 */
42 { 0x5, 0x00 } /* 0x05 AK5558_05_DSD */
55 "Sharp Roll-Off", "Show Roll-Off",
56 "Short Delay Sharp Roll-Off", "Short Delay Show Roll-Off",
60 SOC_ENUM_SINGLE(AK5558_04_CONTROL3, 0,
65 SOC_ENUM("AK5558 Monaural Mode", ak5558_mono_enum[0]),
66 SOC_ENUM("AK5558 Digital Filter", ak5558_adcset_enum[0]),
80 SND_SOC_DAPM_ADC("ADC Ch1", NULL, AK5558_00_POWER_MANAGEMENT1, 0, 0),
81 SND_SOC_DAPM_ADC("ADC Ch2", NULL, AK5558_00_POWER_MANAGEMENT1, 1, 0),
82 SND_SOC_DAPM_ADC("ADC Ch3", NULL, AK5558_00_POWER_MANAGEMENT1, 2, 0),
83 SND_SOC_DAPM_ADC("ADC Ch4", NULL, AK5558_00_POWER_MANAGEMENT1, 3, 0),
84 SND_SOC_DAPM_ADC("ADC Ch5", NULL, AK5558_00_POWER_MANAGEMENT1, 4, 0),
85 SND_SOC_DAPM_ADC("ADC Ch6", NULL, AK5558_00_POWER_MANAGEMENT1, 5, 0),
86 SND_SOC_DAPM_ADC("ADC Ch7", NULL, AK5558_00_POWER_MANAGEMENT1, 6, 0),
87 SND_SOC_DAPM_ADC("ADC Ch8", NULL, AK5558_00_POWER_MANAGEMENT1, 7, 0),
89 SND_SOC_DAPM_AIF_OUT("SDTO", "Capture", 0, SND_SOC_NOPM, 0, 0),
99 {"ADC Ch3", NULL, "AIN3"},
100 {"SDTO", NULL, "ADC Ch3"},
128 struct snd_soc_component *component = dai->component; in ak5558_hw_params()
131 int pcm_width = max(params_physical_width(params), ak5558->slot_width); in ak5558_hw_params()
145 return -EINVAL; in ak5558_hw_params()
150 return 0; in ak5558_hw_params()
155 struct snd_soc_component *component = dai->component; in ak5558_set_dai_fmt()
166 dev_err(dai->dev, "Clock mode unsupported"); in ak5558_set_dai_fmt()
167 return -EINVAL; in ak5558_set_dai_fmt()
185 return -EINVAL; in ak5558_set_dai_fmt()
190 return 0; in ak5558_set_dai_fmt()
197 struct snd_soc_component *component = dai->component; in ak5558_set_tdm_slot()
201 ak5558->slots = slots; in ak5558_set_tdm_slot()
202 ak5558->slot_width = slot_width; in ak5558_set_tdm_slot()
221 return 0; in ak5558_set_tdm_slot()
244 return snd_pcm_hw_constraint_list(substream->runtime, 0, in ak5558_startup()
258 .name = "ak5558-aif",
271 if (!ak5558->reset_gpiod) in ak5558_power_off()
274 gpiod_set_value_cansleep(ak5558->reset_gpiod, 0); in ak5558_power_off()
280 if (!ak5558->reset_gpiod) in ak5558_power_on()
283 gpiod_set_value_cansleep(ak5558->reset_gpiod, 1); in ak5558_power_on()
306 regcache_cache_only(ak5558->regmap, true); in ak5558_runtime_suspend()
309 return 0; in ak5558_runtime_suspend()
319 regcache_cache_only(ak5558->regmap, false); in ak5558_runtime_resume()
320 regcache_mark_dirty(ak5558->regmap); in ak5558_runtime_resume()
322 return regcache_sync(ak5558->regmap); in ak5558_runtime_resume()
359 int ret = 0; in ak5558_i2c_probe()
361 ak5558 = devm_kzalloc(&i2c->dev, sizeof(*ak5558), GFP_KERNEL); in ak5558_i2c_probe()
363 return -ENOMEM; in ak5558_i2c_probe()
365 ak5558->regmap = devm_regmap_init_i2c(i2c, &ak5558_regmap); in ak5558_i2c_probe()
366 if (IS_ERR(ak5558->regmap)) in ak5558_i2c_probe()
367 return PTR_ERR(ak5558->regmap); in ak5558_i2c_probe()
370 ak5558->i2c = i2c; in ak5558_i2c_probe()
372 ak5558->reset_gpiod = devm_gpiod_get_optional(&i2c->dev, "reset", in ak5558_i2c_probe()
374 if (IS_ERR(ak5558->reset_gpiod)) in ak5558_i2c_probe()
375 return PTR_ERR(ak5558->reset_gpiod); in ak5558_i2c_probe()
377 ret = devm_snd_soc_register_component(&i2c->dev, in ak5558_i2c_probe()
383 pm_runtime_enable(&i2c->dev); in ak5558_i2c_probe()
385 return 0; in ak5558_i2c_probe()
390 pm_runtime_disable(&i2c->dev); in ak5558_i2c_remove()
392 return 0; in ak5558_i2c_remove()
396 { .compatible = "asahi-kasei,ak5558"},
412 MODULE_AUTHOR("Junichi Wakasugi <wakasugi.jb@om.asahi-kasei.co.jp>");