• Home
  • Raw
  • Download

Lines Matching +full:codec +full:- +full:aif3

2  * da732x.c --- Dialog DA732X ALSA SoC Audio Driver
27 #include <sound/soc-dapm.h>
44 * da732x register cache - default settings
192 return -EINVAL; in da732x_get_input_div()
335 struct soc_enum *enum_ctrl = (struct soc_enum *)kcontrol->private_value; in da732x_hpf_set()
336 unsigned int reg = enum_ctrl->reg; in da732x_hpf_set()
337 unsigned int sel = ucontrol->value.enumerated.item[0]; in da732x_hpf_set()
351 return -EINVAL; in da732x_hpf_set()
363 struct soc_enum *enum_ctrl = (struct soc_enum *)kcontrol->private_value; in da732x_hpf_get()
364 unsigned int reg = enum_ctrl->reg; in da732x_hpf_get()
371 ucontrol->value.enumerated.item[0] = DA732X_HPF_VOICE; in da732x_hpf_get()
374 ucontrol->value.enumerated.item[0] = DA732X_HPF_MUSIC; in da732x_hpf_get()
377 ucontrol->value.enumerated.item[0] = DA732X_HPF_DISABLED; in da732x_hpf_get()
612 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in da732x_adc_event()
616 switch (w->reg) { in da732x_adc_event()
628 return -EINVAL; in da732x_adc_event()
631 snd_soc_component_update_bits(component, w->reg, DA732X_ADC_RST_MASK, in da732x_adc_event()
633 snd_soc_component_update_bits(component, w->reg, DA732X_ADC_PD_MASK, in da732x_adc_event()
637 snd_soc_component_update_bits(component, w->reg, DA732X_ADC_PD_MASK, in da732x_adc_event()
639 snd_soc_component_update_bits(component, w->reg, DA732X_ADC_RST_MASK, in da732x_adc_event()
642 switch (w->reg) { in da732x_adc_event()
652 return -EINVAL; in da732x_adc_event()
657 return -EINVAL; in da732x_adc_event()
666 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in da732x_out_pga_event()
670 snd_soc_component_update_bits(component, w->reg, in da732x_out_pga_event()
671 (1 << w->shift) | DA732X_OUT_HIZ_EN, in da732x_out_pga_event()
672 (1 << w->shift) | DA732X_OUT_HIZ_EN); in da732x_out_pga_event()
675 snd_soc_component_update_bits(component, w->reg, in da732x_out_pga_event()
676 (1 << w->shift) | DA732X_OUT_HIZ_EN, in da732x_out_pga_event()
677 (1 << w->shift) | DA732X_OUT_HIZ_DIS); in da732x_out_pga_event()
680 return -EINVAL; in da732x_out_pga_event()
952 struct snd_soc_component *component = dai->component; in da732x_hw_params()
957 reg_aif = dai->driver->base; in da732x_hw_params()
973 return -EINVAL; in da732x_hw_params()
1011 return -EINVAL; in da732x_hw_params()
1022 struct snd_soc_component *component = dai->component; in da732x_set_dai_fmt()
1025 u32 reg_aif3, aif3; in da732x_set_dai_fmt() local
1027 switch (dai->id) { in da732x_set_dai_fmt()
1041 return -EINVAL; in da732x_set_dai_fmt()
1054 return -EINVAL; in da732x_set_dai_fmt()
1059 aif3 = DA732X_AIF_I2S_MODE; in da732x_set_dai_fmt()
1062 aif3 = DA732X_AIF_RIGHT_J_MODE; in da732x_set_dai_fmt()
1065 aif3 = DA732X_AIF_LEFT_J_MODE; in da732x_set_dai_fmt()
1068 aif3 = DA732X_AIF_DSP_MODE; in da732x_set_dai_fmt()
1071 return -EINVAL; in da732x_set_dai_fmt()
1081 aif3 |= DA732X_AIF_BCLK_INV; in da732x_set_dai_fmt()
1084 return -EINVAL; in da732x_set_dai_fmt()
1094 aif3 |= DA732X_AIF_BCLK_INV | DA732X_AIF_WCLK_INV; in da732x_set_dai_fmt()
1097 aif3 |= DA732X_AIF_BCLK_INV; in da732x_set_dai_fmt()
1100 aif3 |= DA732X_AIF_WCLK_INV; in da732x_set_dai_fmt()
1103 return -EINVAL; in da732x_set_dai_fmt()
1107 return -EINVAL; in da732x_set_dai_fmt()
1113 DA732X_AIF_WCLK_INV | DA732X_AIF_MODE_MASK, aif3); in da732x_set_dai_fmt()
1134 da732x->pll_en = false; in da732x_set_dai_pll()
1138 if (da732x->pll_en) in da732x_set_dai_pll()
1139 return -EBUSY; in da732x_set_dai_pll()
1143 switch (da732x->sysclk) { in da732x_set_dai_pll()
1154 dev_err(component->dev, in da732x_set_dai_pll()
1156 return -EINVAL; in da732x_set_dai_pll()
1160 indiv = da732x_get_input_div(component, da732x->sysclk); in da732x_set_dai_pll()
1164 fref = (da732x->sysclk / indiv); in da732x_set_dai_pll()
1178 da732x->pll_en = true; in da732x_set_dai_pll()
1186 struct snd_soc_component *component = dai->component; in da732x_set_dai_sysclk()
1189 da732x->sysclk = freq; in da732x_set_dai_sysclk()
1430 /* Init Codec */ in da732x_set_bias_level()
1479 regcache_cache_only(da732x->regmap, false); in da732x_set_bias_level()
1480 regcache_sync(da732x->regmap); in da732x_set_bias_level()
1487 da732x->pll_en = false; in da732x_set_bias_level()
1491 regcache_cache_only(da732x->regmap, true); in da732x_set_bias_level()
1495 da732x->pll_en = false; in da732x_set_bias_level()
1524 da732x = devm_kzalloc(&i2c->dev, sizeof(struct da732x_priv), in da732x_i2c_probe()
1527 return -ENOMEM; in da732x_i2c_probe()
1531 da732x->regmap = devm_regmap_init_i2c(i2c, &da732x_regmap); in da732x_i2c_probe()
1532 if (IS_ERR(da732x->regmap)) { in da732x_i2c_probe()
1533 ret = PTR_ERR(da732x->regmap); in da732x_i2c_probe()
1534 dev_err(&i2c->dev, "Failed to initialize regmap\n"); in da732x_i2c_probe()
1538 ret = regmap_read(da732x->regmap, DA732X_REG_ID, &reg); in da732x_i2c_probe()
1540 dev_err(&i2c->dev, "Failed to read ID register: %d\n", ret); in da732x_i2c_probe()
1544 dev_info(&i2c->dev, "Revision: %d.%d\n", in da732x_i2c_probe()
1548 ret = devm_snd_soc_register_component(&i2c->dev, in da732x_i2c_probe()
1552 dev_err(&i2c->dev, "Failed to register component.\n"); in da732x_i2c_probe()