Lines Matching refs:component
254 static void m98095_eq_band(struct snd_soc_component *component, unsigned int dai, in m98095_eq_band() argument
272 snd_soc_component_write(component, eq_reg++, M98095_BYTE1(coefs[i])); in m98095_eq_band()
273 snd_soc_component_write(component, eq_reg++, M98095_BYTE0(coefs[i])); in m98095_eq_band()
280 static void m98095_biquad_band(struct snd_soc_component *component, unsigned int dai, in m98095_biquad_band() argument
298 snd_soc_component_write(component, bq_reg++, M98095_BYTE1(coefs[i])); in m98095_biquad_band()
299 snd_soc_component_write(component, bq_reg++, M98095_BYTE0(coefs[i])); in m98095_biquad_band()
356 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in max98095_mic1pre_set() local
357 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic1pre_set()
361 snd_soc_component_update_bits(component, M98095_05F_LVL_MIC1, M98095_MICPRE_MASK, in max98095_mic1pre_set()
370 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in max98095_mic1pre_get() local
371 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic1pre_get()
380 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in max98095_mic2pre_set() local
381 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic2pre_set()
385 snd_soc_component_update_bits(component, M98095_060_LVL_MIC2, M98095_MICPRE_MASK, in max98095_mic2pre_set()
394 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in max98095_mic2pre_get() local
395 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic2pre_get()
601 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in max98095_mic_event() local
602 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic_event()
607 snd_soc_component_update_bits(component, w->reg, M98095_MICPRE_MASK, in max98095_mic_event()
610 snd_soc_component_update_bits(component, w->reg, M98095_MICPRE_MASK, in max98095_mic_event()
615 snd_soc_component_update_bits(component, w->reg, M98095_MICPRE_MASK, 0); in max98095_mic_event()
631 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in max98095_line_pga() local
632 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_line_pga()
643 snd_soc_component_update_bits(component, w->reg, in max98095_line_pga()
649 snd_soc_component_update_bits(component, w->reg, in max98095_line_pga()
679 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in max98095_lineout_event() local
683 snd_soc_component_update_bits(component, w->reg, in max98095_lineout_event()
687 snd_soc_component_update_bits(component, w->reg, in max98095_lineout_event()
945 struct snd_soc_component *component = dai->component; in max98095_dai1_hw_params() local
946 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai1_hw_params()
958 snd_soc_component_update_bits(component, M98095_02A_DAI1_FORMAT, in max98095_dai1_hw_params()
962 snd_soc_component_update_bits(component, M98095_02A_DAI1_FORMAT, in max98095_dai1_hw_params()
972 snd_soc_component_update_bits(component, M98095_027_DAI1_CLKMODE, in max98095_dai1_hw_params()
977 if (snd_soc_component_read32(component, M98095_02A_DAI1_FORMAT) & M98095_DAI_MAS) { in max98095_dai1_hw_params()
979 dev_err(component->dev, "Invalid system clock frequency\n"); in max98095_dai1_hw_params()
985 snd_soc_component_write(component, M98095_028_DAI1_CLKCFG_HI, in max98095_dai1_hw_params()
987 snd_soc_component_write(component, M98095_029_DAI1_CLKCFG_LO, in max98095_dai1_hw_params()
993 snd_soc_component_update_bits(component, M98095_02E_DAI1_FILTERS, in max98095_dai1_hw_params()
996 snd_soc_component_update_bits(component, M98095_02E_DAI1_FILTERS, in max98095_dai1_hw_params()
1006 struct snd_soc_component *component = dai->component; in max98095_dai2_hw_params() local
1007 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai2_hw_params()
1019 snd_soc_component_update_bits(component, M98095_034_DAI2_FORMAT, in max98095_dai2_hw_params()
1023 snd_soc_component_update_bits(component, M98095_034_DAI2_FORMAT, in max98095_dai2_hw_params()
1033 snd_soc_component_update_bits(component, M98095_031_DAI2_CLKMODE, in max98095_dai2_hw_params()
1038 if (snd_soc_component_read32(component, M98095_034_DAI2_FORMAT) & M98095_DAI_MAS) { in max98095_dai2_hw_params()
1040 dev_err(component->dev, "Invalid system clock frequency\n"); in max98095_dai2_hw_params()
1046 snd_soc_component_write(component, M98095_032_DAI2_CLKCFG_HI, in max98095_dai2_hw_params()
1048 snd_soc_component_write(component, M98095_033_DAI2_CLKCFG_LO, in max98095_dai2_hw_params()
1054 snd_soc_component_update_bits(component, M98095_038_DAI2_FILTERS, in max98095_dai2_hw_params()
1057 snd_soc_component_update_bits(component, M98095_038_DAI2_FILTERS, in max98095_dai2_hw_params()
1067 struct snd_soc_component *component = dai->component; in max98095_dai3_hw_params() local
1068 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai3_hw_params()
1080 snd_soc_component_update_bits(component, M98095_03E_DAI3_FORMAT, in max98095_dai3_hw_params()
1084 snd_soc_component_update_bits(component, M98095_03E_DAI3_FORMAT, in max98095_dai3_hw_params()
1094 snd_soc_component_update_bits(component, M98095_03B_DAI3_CLKMODE, in max98095_dai3_hw_params()
1099 if (snd_soc_component_read32(component, M98095_03E_DAI3_FORMAT) & M98095_DAI_MAS) { in max98095_dai3_hw_params()
1101 dev_err(component->dev, "Invalid system clock frequency\n"); in max98095_dai3_hw_params()
1107 snd_soc_component_write(component, M98095_03C_DAI3_CLKCFG_HI, in max98095_dai3_hw_params()
1109 snd_soc_component_write(component, M98095_03D_DAI3_CLKCFG_LO, in max98095_dai3_hw_params()
1115 snd_soc_component_update_bits(component, M98095_042_DAI3_FILTERS, in max98095_dai3_hw_params()
1118 snd_soc_component_update_bits(component, M98095_042_DAI3_FILTERS, in max98095_dai3_hw_params()
1127 struct snd_soc_component *component = dai->component; in max98095_dai_set_sysclk() local
1128 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai_set_sysclk()
1145 snd_soc_component_write(component, M98095_026_SYS_CLK, 0x10); in max98095_dai_set_sysclk()
1147 snd_soc_component_write(component, M98095_026_SYS_CLK, 0x20); in max98095_dai_set_sysclk()
1149 snd_soc_component_write(component, M98095_026_SYS_CLK, 0x30); in max98095_dai_set_sysclk()
1151 dev_err(component->dev, "Invalid master clock frequency\n"); in max98095_dai_set_sysclk()
1164 struct snd_soc_component *component = codec_dai->component; in max98095_dai1_set_fmt() local
1165 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai1_set_fmt()
1177 snd_soc_component_write(component, M98095_028_DAI1_CLKCFG_HI, in max98095_dai1_set_fmt()
1179 snd_soc_component_write(component, M98095_029_DAI1_CLKCFG_LO, in max98095_dai1_set_fmt()
1189 dev_err(component->dev, "Clock mode unsupported"); in max98095_dai1_set_fmt()
1219 snd_soc_component_update_bits(component, M98095_02A_DAI1_FORMAT, in max98095_dai1_set_fmt()
1223 snd_soc_component_write(component, M98095_02B_DAI1_CLOCK, M98095_DAI_BSEL64); in max98095_dai1_set_fmt()
1232 struct snd_soc_component *component = codec_dai->component; in max98095_dai2_set_fmt() local
1233 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai2_set_fmt()
1245 snd_soc_component_write(component, M98095_032_DAI2_CLKCFG_HI, in max98095_dai2_set_fmt()
1247 snd_soc_component_write(component, M98095_033_DAI2_CLKCFG_LO, in max98095_dai2_set_fmt()
1257 dev_err(component->dev, "Clock mode unsupported"); in max98095_dai2_set_fmt()
1287 snd_soc_component_update_bits(component, M98095_034_DAI2_FORMAT, in max98095_dai2_set_fmt()
1291 snd_soc_component_write(component, M98095_035_DAI2_CLOCK, in max98095_dai2_set_fmt()
1301 struct snd_soc_component *component = codec_dai->component; in max98095_dai3_set_fmt() local
1302 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai3_set_fmt()
1314 snd_soc_component_write(component, M98095_03C_DAI3_CLKCFG_HI, in max98095_dai3_set_fmt()
1316 snd_soc_component_write(component, M98095_03D_DAI3_CLKCFG_LO, in max98095_dai3_set_fmt()
1326 dev_err(component->dev, "Clock mode unsupported"); in max98095_dai3_set_fmt()
1356 snd_soc_component_update_bits(component, M98095_03E_DAI3_FORMAT, in max98095_dai3_set_fmt()
1360 snd_soc_component_write(component, M98095_03F_DAI3_CLOCK, in max98095_dai3_set_fmt()
1367 static int max98095_set_bias_level(struct snd_soc_component *component, in max98095_set_bias_level() argument
1370 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_set_bias_level()
1388 if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_ON) { in max98095_set_bias_level()
1398 if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_OFF) { in max98095_set_bias_level()
1402 dev_err(component->dev, "Failed to sync cache: %d\n", ret); in max98095_set_bias_level()
1407 snd_soc_component_update_bits(component, M98095_090_PWR_EN_IN, in max98095_set_bias_level()
1412 snd_soc_component_update_bits(component, M98095_090_PWR_EN_IN, in max98095_set_bias_level()
1497 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in max98095_put_eq_enum() local
1498 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_put_eq_enum()
1531 dev_dbg(component->dev, "Selected %s/%dHz for %dHz sample rate\n", in max98095_put_eq_enum()
1540 regsave = snd_soc_component_read32(component, M98095_088_CFG_LEVEL); in max98095_put_eq_enum()
1541 snd_soc_component_update_bits(component, M98095_088_CFG_LEVEL, regmask, 0); in max98095_put_eq_enum()
1544 snd_soc_component_update_bits(component, M98095_00F_HOST_CFG, M98095_SEG, M98095_SEG); in max98095_put_eq_enum()
1545 m98095_eq_band(component, channel, 0, coef_set->band1); in max98095_put_eq_enum()
1546 m98095_eq_band(component, channel, 1, coef_set->band2); in max98095_put_eq_enum()
1547 m98095_eq_band(component, channel, 2, coef_set->band3); in max98095_put_eq_enum()
1548 m98095_eq_band(component, channel, 3, coef_set->band4); in max98095_put_eq_enum()
1549 m98095_eq_band(component, channel, 4, coef_set->band5); in max98095_put_eq_enum()
1550 snd_soc_component_update_bits(component, M98095_00F_HOST_CFG, M98095_SEG, 0); in max98095_put_eq_enum()
1554 snd_soc_component_update_bits(component, M98095_088_CFG_LEVEL, regmask, regsave); in max98095_put_eq_enum()
1561 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in max98095_get_eq_enum() local
1562 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_get_eq_enum()
1572 static void max98095_handle_eq_pdata(struct snd_soc_component *component) in max98095_handle_eq_pdata() argument
1574 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_handle_eq_pdata()
1627 ret = snd_soc_add_component_controls(component, controls, ARRAY_SIZE(controls)); in max98095_handle_eq_pdata()
1629 dev_err(component->dev, "Failed to add EQ control: %d\n", ret); in max98095_handle_eq_pdata()
1634 static int max98095_get_bq_channel(struct snd_soc_component *component, in max98095_get_bq_channel() argument
1641 dev_err(component->dev, "Bad biquad channel name '%s'\n", name); in max98095_get_bq_channel()
1648 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in max98095_put_bq_enum() local
1649 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_put_bq_enum()
1651 int channel = max98095_get_bq_channel(component, kcontrol->id.name); in max98095_put_bq_enum()
1682 dev_dbg(component->dev, "Selected %s/%dHz for %dHz sample rate\n", in max98095_put_bq_enum()
1691 regsave = snd_soc_component_read32(component, M98095_088_CFG_LEVEL); in max98095_put_bq_enum()
1692 snd_soc_component_update_bits(component, M98095_088_CFG_LEVEL, regmask, 0); in max98095_put_bq_enum()
1695 snd_soc_component_update_bits(component, M98095_00F_HOST_CFG, M98095_SEG, M98095_SEG); in max98095_put_bq_enum()
1696 m98095_biquad_band(component, channel, 0, coef_set->band1); in max98095_put_bq_enum()
1697 m98095_biquad_band(component, channel, 1, coef_set->band2); in max98095_put_bq_enum()
1698 snd_soc_component_update_bits(component, M98095_00F_HOST_CFG, M98095_SEG, 0); in max98095_put_bq_enum()
1702 snd_soc_component_update_bits(component, M98095_088_CFG_LEVEL, regmask, regsave); in max98095_put_bq_enum()
1709 struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol); in max98095_get_bq_enum() local
1710 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_get_bq_enum()
1711 int channel = max98095_get_bq_channel(component, kcontrol->id.name); in max98095_get_bq_enum()
1723 static void max98095_handle_bq_pdata(struct snd_soc_component *component) in max98095_handle_bq_pdata() argument
1725 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_handle_bq_pdata()
1779 ret = snd_soc_add_component_controls(component, controls, ARRAY_SIZE(controls)); in max98095_handle_bq_pdata()
1781 dev_err(component->dev, "Failed to add Biquad control: %d\n", ret); in max98095_handle_bq_pdata()
1784 static void max98095_handle_pdata(struct snd_soc_component *component) in max98095_handle_pdata() argument
1786 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_handle_pdata()
1791 dev_dbg(component->dev, "No platform data\n"); in max98095_handle_pdata()
1802 snd_soc_component_write(component, M98095_087_CFG_MIC, regval); in max98095_handle_pdata()
1806 max98095_handle_eq_pdata(component); in max98095_handle_pdata()
1810 max98095_handle_bq_pdata(component); in max98095_handle_pdata()
1815 struct snd_soc_component *component = data; in max98095_report_jack() local
1816 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_report_jack()
1822 value = snd_soc_component_read32(component, M98095_007_JACK_AUTO_STS); in max98095_report_jack()
1853 static int max98095_jack_detect_enable(struct snd_soc_component *component) in max98095_jack_detect_enable() argument
1855 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_jack_detect_enable()
1866 ret = snd_soc_component_write(component, M98095_08E_JACK_DC_SLEW, slew); in max98095_jack_detect_enable()
1868 dev_err(component->dev, "Failed to cfg auto detect %d\n", ret); in max98095_jack_detect_enable()
1873 ret = snd_soc_component_write(component, M98095_089_JACK_DET_AUTO, detect_enable); in max98095_jack_detect_enable()
1875 dev_err(component->dev, "Failed to cfg auto detect %d\n", ret); in max98095_jack_detect_enable()
1882 static int max98095_jack_detect_disable(struct snd_soc_component *component) in max98095_jack_detect_disable() argument
1887 ret = snd_soc_component_write(component, M98095_089_JACK_DET_AUTO, 0x0); in max98095_jack_detect_disable()
1889 dev_err(component->dev, "Failed to cfg auto detect %d\n", ret); in max98095_jack_detect_disable()
1896 int max98095_jack_detect(struct snd_soc_component *component, in max98095_jack_detect() argument
1899 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_jack_detect()
1900 struct i2c_client *client = to_i2c_client(component->dev); in max98095_jack_detect()
1910 max98095_jack_detect_enable(component); in max98095_jack_detect()
1913 ret = snd_soc_component_update_bits(component, M98095_013_JACK_INT_EN, in max98095_jack_detect()
1916 dev_err(component->dev, "Failed to cfg jack irqs %d\n", ret); in max98095_jack_detect()
1920 max98095_report_jack(client->irq, component); in max98095_jack_detect()
1926 static int max98095_suspend(struct snd_soc_component *component) in max98095_suspend() argument
1928 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_suspend()
1931 max98095_jack_detect_disable(component); in max98095_suspend()
1933 snd_soc_component_force_bias_level(component, SND_SOC_BIAS_OFF); in max98095_suspend()
1938 static int max98095_resume(struct snd_soc_component *component) in max98095_resume() argument
1940 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_resume()
1941 struct i2c_client *client = to_i2c_client(component->dev); in max98095_resume()
1943 snd_soc_component_force_bias_level(component, SND_SOC_BIAS_STANDBY); in max98095_resume()
1946 max98095_jack_detect_enable(component); in max98095_resume()
1947 max98095_report_jack(client->irq, component); in max98095_resume()
1957 static int max98095_reset(struct snd_soc_component *component) in max98095_reset() argument
1963 ret = snd_soc_component_write(component, M98095_00F_HOST_CFG, 0); in max98095_reset()
1965 dev_err(component->dev, "Failed to reset DSP: %d\n", ret); in max98095_reset()
1969 ret = snd_soc_component_write(component, M98095_097_PWR_SYS, 0); in max98095_reset()
1971 dev_err(component->dev, "Failed to reset component: %d\n", ret); in max98095_reset()
1978 ret = snd_soc_component_write(component, i, snd_soc_component_read32(component, i)); in max98095_reset()
1980 dev_err(component->dev, "Failed to reset: %d\n", ret); in max98095_reset()
1988 static int max98095_probe(struct snd_soc_component *component) in max98095_probe() argument
1990 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_probe()
1995 max98095->mclk = devm_clk_get(component->dev, "mclk"); in max98095_probe()
2000 max98095_reset(component); in max98095_probe()
2002 client = to_i2c_client(component->dev); in max98095_probe()
2037 IRQF_ONESHOT, "max98095", component); in max98095_probe()
2039 dev_err(component->dev, "Failed to request IRQ: %d\n", ret); in max98095_probe()
2044 ret = snd_soc_component_read32(component, M98095_0FF_REV_ID); in max98095_probe()
2046 dev_err(component->dev, "Failure reading hardware revision: %d\n", in max98095_probe()
2050 dev_info(component->dev, "Hardware revision: %c\n", ret - 0x40 + 'A'); in max98095_probe()
2052 snd_soc_component_write(component, M98095_097_PWR_SYS, M98095_PWRSV); in max98095_probe()
2054 snd_soc_component_write(component, M98095_048_MIX_DAC_LR, in max98095_probe()
2057 snd_soc_component_write(component, M98095_049_MIX_DAC_M, in max98095_probe()
2060 snd_soc_component_write(component, M98095_092_PWR_EN_OUT, M98095_SPK_SPREADSPECTRUM); in max98095_probe()
2061 snd_soc_component_write(component, M98095_045_CFG_DSP, M98095_DSPNORMAL); in max98095_probe()
2062 snd_soc_component_write(component, M98095_04E_CFG_HP, M98095_HPNORMAL); in max98095_probe()
2064 snd_soc_component_write(component, M98095_02C_DAI1_IOCFG, in max98095_probe()
2067 snd_soc_component_write(component, M98095_036_DAI2_IOCFG, in max98095_probe()
2070 snd_soc_component_write(component, M98095_040_DAI3_IOCFG, in max98095_probe()
2073 max98095_handle_pdata(component); in max98095_probe()
2076 snd_soc_component_update_bits(component, M98095_097_PWR_SYS, M98095_SHDNRUN, in max98095_probe()
2083 free_irq(client->irq, component); in max98095_probe()
2088 static void max98095_remove(struct snd_soc_component *component) in max98095_remove() argument
2090 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_remove()
2091 struct i2c_client *client = to_i2c_client(component->dev); in max98095_remove()
2094 max98095_jack_detect_disable(component); in max98095_remove()
2097 free_irq(client->irq, component); in max98095_remove()