Lines Matching defs:component
194 static int da7213_get_alc_data(struct snd_soc_component *component, u8 reg_val)
203 snd_soc_component_write(component, DA7213_ALC_CIC_OP_LVL_CTRL, reg_val);
206 snd_soc_component_write(component, DA7213_ALC_CIC_OP_LVL_CTRL,
208 mid_data = snd_soc_component_read(component, DA7213_ALC_CIC_OP_LVL_DATA);
211 snd_soc_component_write(component, DA7213_ALC_CIC_OP_LVL_CTRL,
213 top_data = snd_soc_component_read(component, DA7213_ALC_CIC_OP_LVL_DATA);
221 static void da7213_alc_calib_man(struct snd_soc_component *component)
228 avg_left_data = da7213_get_alc_data(component,
231 avg_right_data = da7213_get_alc_data(component,
239 snd_soc_component_write(component, DA7213_ALC_OFFSET_MAN_M_L, reg_val);
241 snd_soc_component_write(component, DA7213_ALC_OFFSET_MAN_U_L, reg_val);
244 snd_soc_component_write(component, DA7213_ALC_OFFSET_MAN_M_R, reg_val);
246 snd_soc_component_write(component, DA7213_ALC_OFFSET_MAN_U_R, reg_val);
249 snd_soc_component_update_bits(component, DA7213_ALC_CTRL1,
254 static void da7213_alc_calib_auto(struct snd_soc_component *component)
259 snd_soc_component_update_bits(component, DA7213_ALC_CTRL1, DA7213_ALC_AUTO_CALIB_EN,
262 alc_ctrl1 = snd_soc_component_read(component, DA7213_ALC_CTRL1);
267 dev_warn(component->dev,
269 snd_soc_component_update_bits(component, DA7213_ALC_CTRL1,
274 snd_soc_component_update_bits(component, DA7213_ALC_CTRL1,
281 static void da7213_alc_calib(struct snd_soc_component *component)
283 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
289 adc_l_ctrl = snd_soc_component_read(component, DA7213_ADC_L_CTRL);
290 adc_r_ctrl = snd_soc_component_read(component, DA7213_ADC_R_CTRL);
293 mixin_l_sel = snd_soc_component_read(component, DA7213_MIXIN_L_SELECT);
294 mixin_r_sel = snd_soc_component_read(component, DA7213_MIXIN_R_SELECT);
297 mic_1_ctrl = snd_soc_component_read(component, DA7213_MIC_1_CTRL);
298 mic_2_ctrl = snd_soc_component_read(component, DA7213_MIC_2_CTRL);
301 snd_soc_component_update_bits(component, DA7213_ADC_L_CTRL, DA7213_ADC_EN,
303 snd_soc_component_update_bits(component, DA7213_ADC_R_CTRL, DA7213_ADC_EN,
307 snd_soc_component_update_bits(component, DA7213_MIXIN_L_SELECT,
312 snd_soc_component_update_bits(component, DA7213_MIXIN_R_SELECT,
319 snd_soc_component_update_bits(component, DA7213_MIC_1_CTRL, DA7213_MUTE_EN,
321 snd_soc_component_update_bits(component, DA7213_MIC_2_CTRL, DA7213_MUTE_EN,
326 da7213_alc_calib_auto(component);
328 da7213_alc_calib_man(component);
331 snd_soc_component_write(component, DA7213_MIXIN_L_SELECT, mixin_l_sel);
332 snd_soc_component_write(component, DA7213_MIXIN_R_SELECT, mixin_r_sel);
335 snd_soc_component_write(component, DA7213_ADC_L_CTRL, adc_l_ctrl);
336 snd_soc_component_write(component, DA7213_ADC_R_CTRL, adc_r_ctrl);
339 snd_soc_component_write(component, DA7213_MIC_1_CTRL, mic_1_ctrl);
340 snd_soc_component_write(component, DA7213_MIC_2_CTRL, mic_2_ctrl);
346 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
347 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
354 da7213_alc_calib(component);
362 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
363 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
369 da7213_alc_calib(component);
735 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
736 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
745 snd_soc_component_update_bits(component, DA7213_DAI_CLK_MODE,
750 snd_soc_component_update_bits(component, DA7213_PC_COUNT,
754 pll_ctrl = snd_soc_component_read(component, DA7213_PLL_CTRL);
760 snd_soc_component_write(component, 0xF0, 0x8B);
761 snd_soc_component_write(component, 0xF2, 0x03);
762 snd_soc_component_write(component, 0xF0, 0x00);
767 pll_status = snd_soc_component_read(component, DA7213_PLL_STATUS);
777 dev_warn(component->dev, "SRM failed to lock\n");
782 pll_ctrl = snd_soc_component_read(component, DA7213_PLL_CTRL);
784 snd_soc_component_write(component, 0xF0, 0x8B);
785 snd_soc_component_write(component, 0xF2, 0x01);
786 snd_soc_component_write(component, 0xF0, 0x00);
790 snd_soc_component_update_bits(component, DA7213_PC_COUNT,
796 snd_soc_component_update_bits(component, DA7213_DAI_CLK_MODE,
1158 struct snd_soc_component *component = dai->component;
1159 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1227 snd_soc_component_update_bits(component, DA7213_DAI_CTRL, DA7213_DAI_WORD_LENGTH_MASK,
1229 snd_soc_component_write(component, DA7213_SR, fs);
1236 struct snd_soc_component *component = codec_dai->component;
1237 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1324 snd_soc_component_update_bits(component, DA7213_DAI_CLK_MODE,
1328 snd_soc_component_update_bits(component, DA7213_DAI_CTRL, DA7213_DAI_FORMAT_MASK,
1330 snd_soc_component_write(component, DA7213_DAI_OFFSET, dai_offset);
1337 struct snd_soc_component *component = dai->component;
1340 snd_soc_component_update_bits(component, DA7213_DAC_L_CTRL,
1342 snd_soc_component_update_bits(component, DA7213_DAC_R_CTRL,
1345 snd_soc_component_update_bits(component, DA7213_DAC_L_CTRL,
1347 snd_soc_component_update_bits(component, DA7213_DAC_R_CTRL,
1357 static int da7213_set_component_sysclk(struct snd_soc_component *component,
1361 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1368 dev_err(component->dev, "Unsupported MCLK value %d\n",
1375 snd_soc_component_update_bits(component, DA7213_PLL_CTRL,
1379 snd_soc_component_update_bits(component, DA7213_PLL_CTRL,
1384 dev_err(component->dev, "Unknown clock source %d\n", clk_id);
1394 dev_err(component->dev, "Failed to set clock rate %d\n",
1406 static int _da7213_set_component_pll(struct snd_soc_component *component,
1410 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1420 dev_err(component->dev,
1433 dev_err(component->dev,
1450 dev_err(component->dev,
1463 snd_soc_component_update_bits(component, DA7213_PLL_CTRL,
1475 dev_err(component->dev,
1484 dev_err(component->dev, "Invalid PLL config\n");
1496 snd_soc_component_write(component, DA7213_PLL_FRAC_TOP, pll_frac_top);
1497 snd_soc_component_write(component, DA7213_PLL_FRAC_BOT, pll_frac_bot);
1498 snd_soc_component_write(component, DA7213_PLL_INTEGER, pll_integer);
1502 snd_soc_component_update_bits(component, DA7213_PLL_CTRL,
1508 snd_soc_component_write(component, 0xF0, 0x8B);
1509 snd_soc_component_write(component, 0xF1, 0x03);
1510 snd_soc_component_write(component, 0xF1, 0x01);
1511 snd_soc_component_write(component, 0xF0, 0x00);
1517 static int da7213_set_component_pll(struct snd_soc_component *component,
1521 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1524 return _da7213_set_component_pll(component, pll_id, source, fref, fout);
1557 static int da7213_set_auto_pll(struct snd_soc_component *component, bool enable)
1559 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1597 return _da7213_set_component_pll(component, 0, mode,
1601 static int da7213_set_bias_level(struct snd_soc_component *component,
1604 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1612 if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_STANDBY) {
1616 dev_err(component->dev,
1621 da7213_set_auto_pll(component, true);
1626 if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_OFF) {
1628 snd_soc_component_update_bits(component, DA7213_REFERENCES,
1634 da7213_set_auto_pll(component, false);
1641 snd_soc_component_update_bits(component, DA7213_REFERENCES,
1668 da7213_of_micbias_lvl(struct snd_soc_component *component, u32 val)
1680 dev_warn(component->dev, "Invalid micbias level\n");
1686 da7213_of_dmic_data_sel(struct snd_soc_component *component, const char *str)
1693 dev_warn(component->dev, "Invalid DMIC data select type\n");
1699 da7213_of_dmic_samplephase(struct snd_soc_component *component, const char *str)
1706 dev_warn(component->dev, "Invalid DMIC sample phase\n");
1712 da7213_of_dmic_clkrate(struct snd_soc_component *component, u32 val)
1720 dev_warn(component->dev, "Invalid DMIC clock rate\n");
1726 *da7213_fw_to_pdata(struct snd_soc_component *component)
1728 struct device *dev = component->dev;
1733 pdata = devm_kzalloc(component->dev, sizeof(*pdata), GFP_KERNEL);
1738 pdata->micbias1_lvl = da7213_of_micbias_lvl(component, fw_val32);
1743 pdata->micbias2_lvl = da7213_of_micbias_lvl(component, fw_val32);
1748 pdata->dmic_data_sel = da7213_of_dmic_data_sel(component, fw_str);
1754 da7213_of_dmic_samplephase(component, fw_str);
1759 pdata->dmic_clk_rate = da7213_of_dmic_clkrate(component, fw_val32);
1766 static int da7213_probe(struct snd_soc_component *component)
1768 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1770 pm_runtime_get_sync(component->dev);
1773 snd_soc_component_update_bits(component, DA7213_ALC_CTRL1,
1778 snd_soc_component_update_bits(component, DA7213_PC_COUNT, DA7213_PC_FREERUN_MASK,
1782 snd_soc_component_update_bits(component, DA7213_AUX_L_CTRL,
1784 snd_soc_component_update_bits(component, DA7213_AUX_R_CTRL,
1786 snd_soc_component_update_bits(component, DA7213_MIXIN_L_CTRL,
1788 snd_soc_component_update_bits(component, DA7213_MIXIN_R_CTRL,
1790 snd_soc_component_update_bits(component, DA7213_ADC_L_CTRL,
1792 snd_soc_component_update_bits(component, DA7213_ADC_R_CTRL,
1794 snd_soc_component_update_bits(component, DA7213_DAC_L_CTRL,
1796 snd_soc_component_update_bits(component, DA7213_DAC_R_CTRL,
1798 snd_soc_component_update_bits(component, DA7213_HP_L_CTRL,
1800 snd_soc_component_update_bits(component, DA7213_HP_R_CTRL,
1802 snd_soc_component_update_bits(component, DA7213_LINE_CTRL,
1813 snd_soc_component_update_bits(component, DA7213_MIXIN_L_CTRL,
1815 snd_soc_component_update_bits(component, DA7213_MIXIN_R_CTRL,
1818 snd_soc_component_update_bits(component, DA7213_MIXOUT_L_CTRL,
1820 snd_soc_component_update_bits(component, DA7213_MIXOUT_R_CTRL,
1823 snd_soc_component_update_bits(component, DA7213_HP_L_CTRL,
1825 snd_soc_component_update_bits(component, DA7213_HP_R_CTRL,
1828 snd_soc_component_update_bits(component, DA7213_LINE_CTRL,
1832 da7213->pdata = dev_get_platdata(component->dev);
1834 da7213->pdata = da7213_fw_to_pdata(component);
1860 snd_soc_component_update_bits(component, DA7213_MICBIAS_CTRL,
1886 snd_soc_component_update_bits(component, DA7213_MIC_CONFIG,
1892 pm_runtime_put_sync(component->dev);
1895 da7213->mclk = devm_clk_get(component->dev, "mclk");
1995 dev_err(&i2c->dev, "Failed to register da7213 component: %d\n",