Lines Matching refs:codec

224 static int rt5645_reset(struct snd_soc_codec *codec)  in rt5645_reset()  argument
226 return snd_soc_write(codec, RT5645_RESET, 0); in rt5645_reset()
543 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in set_dmic_clk() local
544 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in set_dmic_clk()
550 dev_err(codec->dev, "Failed to set DMIC clock\n"); in set_dmic_clk()
552 snd_soc_update_bits(codec, RT5645_DMIC_CTRL1, in set_dmic_clk()
560 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in is_sys_clk_from_pll() local
563 val = snd_soc_read(codec, RT5645_GLB_CLK); in is_sys_clk_from_pll()
574 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in is_using_asrc() local
606 val = (snd_soc_read(codec, reg) >> shift) & 0xf; in is_using_asrc()
633 int rt5645_sel_asrc_clk_src(struct snd_soc_codec *codec, in rt5645_sel_asrc_clk_src() argument
689 snd_soc_update_bits(codec, RT5645_ASRC_2, in rt5645_sel_asrc_clk_src()
693 snd_soc_update_bits(codec, RT5645_ASRC_3, in rt5645_sel_asrc_clk_src()
1223 static void hp_amp_power(struct snd_soc_codec *codec, int on) in hp_amp_power() argument
1226 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in hp_amp_power()
1231 snd_soc_update_bits(codec, RT5645_DEPOP_M2, in hp_amp_power()
1233 snd_soc_write(codec, RT5645_DEPOP_M1, 0x000d); in hp_amp_power()
1238 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in hp_amp_power()
1240 snd_soc_update_bits(codec, RT5645_PWR_VOL, in hp_amp_power()
1243 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in hp_amp_power()
1249 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in hp_amp_power()
1253 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in hp_amp_power()
1265 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in hp_amp_power()
1270 snd_soc_write(codec, RT5645_DEPOP_M1, 0x0000); in hp_amp_power()
1271 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in hp_amp_power()
1274 snd_soc_update_bits(codec, RT5645_DEPOP_M2, in hp_amp_power()
1283 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5645_hp_event() local
1284 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_hp_event()
1288 hp_amp_power(codec, 1); in rt5645_hp_event()
1291 snd_soc_write(codec, RT5645_DEPOP_M3, 0x0737); in rt5645_hp_event()
1293 snd_soc_update_bits(codec, RT5645_DEPOP_M3, in rt5645_hp_event()
1302 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1304 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1306 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1311 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1320 snd_soc_write(codec, RT5645_DEPOP_M3, 0x0737); in rt5645_hp_event()
1322 snd_soc_update_bits(codec, RT5645_DEPOP_M3, in rt5645_hp_event()
1331 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1333 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1335 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1340 hp_amp_power(codec, 0); in rt5645_hp_event()
1353 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5645_spk_event() local
1357 snd_soc_update_bits(codec, RT5645_PWR_DIG1, in rt5645_spk_event()
1365 snd_soc_update_bits(codec, RT5645_PWR_DIG1, in rt5645_spk_event()
1380 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5645_lout_event() local
1384 hp_amp_power(codec, 1); in rt5645_lout_event()
1385 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_lout_event()
1387 snd_soc_update_bits(codec, RT5645_LOUT1, in rt5645_lout_event()
1392 snd_soc_update_bits(codec, RT5645_LOUT1, in rt5645_lout_event()
1395 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_lout_event()
1397 hp_amp_power(codec, 0); in rt5645_lout_event()
1410 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5645_bst2_event() local
1414 snd_soc_update_bits(codec, RT5645_PWR_ANLG2, in rt5645_bst2_event()
1419 snd_soc_update_bits(codec, RT5645_PWR_ANLG2, in rt5645_bst2_event()
2053 struct snd_soc_codec *codec = dai->codec; in rt5645_hw_params() local
2054 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_hw_params()
2061 dev_err(codec->dev, "Unsupported clock setting\n"); in rt5645_hw_params()
2066 dev_err(codec->dev, "Unsupported frame size: %d\n", frame_size); in rt5645_hw_params()
2108 snd_soc_update_bits(codec, RT5645_I2S1_SDP, in rt5645_hw_params()
2110 snd_soc_update_bits(codec, RT5645_ADDA_CLK1, mask_clk, val_clk); in rt5645_hw_params()
2116 snd_soc_update_bits(codec, RT5645_I2S2_SDP, in rt5645_hw_params()
2118 snd_soc_update_bits(codec, RT5645_ADDA_CLK1, mask_clk, val_clk); in rt5645_hw_params()
2121 dev_err(codec->dev, "Invalid dai->id: %d\n", dai->id); in rt5645_hw_params()
2130 struct snd_soc_codec *codec = dai->codec; in rt5645_set_dai_fmt() local
2131 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_dai_fmt()
2182 snd_soc_update_bits(codec, RT5645_I2S1_SDP, in rt5645_set_dai_fmt()
2187 snd_soc_update_bits(codec, RT5645_I2S2_SDP, in rt5645_set_dai_fmt()
2192 dev_err(codec->dev, "Invalid dai->id: %d\n", dai->id); in rt5645_set_dai_fmt()
2201 struct snd_soc_codec *codec = dai->codec; in rt5645_set_dai_sysclk() local
2202 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_dai_sysclk()
2219 dev_err(codec->dev, "Invalid clock id (%d)\n", clk_id); in rt5645_set_dai_sysclk()
2222 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_sysclk()
2235 struct snd_soc_codec *codec = dai->codec; in rt5645_set_dai_pll() local
2236 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_dai_pll()
2245 dev_dbg(codec->dev, "PLL disabled\n"); in rt5645_set_dai_pll()
2249 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_pll()
2256 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_pll()
2263 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_pll()
2267 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_pll()
2271 dev_err(codec->dev, "Invalid dai->id: %d\n", dai->id); in rt5645_set_dai_pll()
2276 dev_err(codec->dev, "Unknown PLL source %d\n", source); in rt5645_set_dai_pll()
2282 dev_err(codec->dev, "Unsupport input clock %d\n", freq_in); in rt5645_set_dai_pll()
2286 dev_dbg(codec->dev, "bypass=%d m=%d n=%d k=%d\n", in rt5645_set_dai_pll()
2290 snd_soc_write(codec, RT5645_PLL_CTRL1, in rt5645_set_dai_pll()
2292 snd_soc_write(codec, RT5645_PLL_CTRL2, in rt5645_set_dai_pll()
2306 struct snd_soc_codec *codec = dai->codec; in rt5645_set_tdm_slot() local
2307 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_tdm_slot()
2330 snd_soc_update_bits(codec, RT5645_BASS_BACK, in rt5645_set_tdm_slot()
2364 snd_soc_update_bits(codec, RT5645_TDM_CTRL_1, mask, val); in rt5645_set_tdm_slot()
2369 static int rt5645_set_bias_level(struct snd_soc_codec *codec, in rt5645_set_bias_level() argument
2374 if (SND_SOC_BIAS_STANDBY == codec->dapm.bias_level) { in rt5645_set_bias_level()
2375 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2381 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2384 snd_soc_update_bits(codec, RT5645_GEN_CTRL1, in rt5645_set_bias_level()
2390 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2395 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2401 snd_soc_write(codec, RT5645_DEPOP_M2, 0x1100); in rt5645_set_bias_level()
2402 snd_soc_update_bits(codec, RT5645_GEN_CTRL1, in rt5645_set_bias_level()
2404 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2413 codec->dapm.bias_level = level; in rt5645_set_bias_level()
2418 static int rt5645_jack_detect(struct snd_soc_codec *codec) in rt5645_jack_detect() argument
2420 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_jack_detect()
2425 dev_err(codec->dev, "invalid gpio\n"); in rt5645_jack_detect()
2430 dev_dbg(codec->dev, "gpio = %d(%d)\n", rt5645->pdata.hp_det_gpio, in rt5645_jack_detect()
2435 snd_soc_dapm_force_enable_pin(&codec->dapm, "micbias1"); in rt5645_jack_detect()
2436 snd_soc_dapm_force_enable_pin(&codec->dapm, "micbias2"); in rt5645_jack_detect()
2437 snd_soc_dapm_force_enable_pin(&codec->dapm, "LDO2"); in rt5645_jack_detect()
2438 snd_soc_dapm_force_enable_pin(&codec->dapm, "Mic Det Power"); in rt5645_jack_detect()
2439 snd_soc_dapm_sync(&codec->dapm); in rt5645_jack_detect()
2441 snd_soc_write(codec, RT5645_IN1_CTRL1, 0x0006); in rt5645_jack_detect()
2442 snd_soc_write(codec, RT5645_JD_CTRL3, 0x00b0); in rt5645_jack_detect()
2444 snd_soc_update_bits(codec, RT5645_IN1_CTRL2, in rt5645_jack_detect()
2446 snd_soc_update_bits(codec, RT5645_IN1_CTRL2, in rt5645_jack_detect()
2450 val = snd_soc_read(codec, RT5645_IN1_CTRL3) & 0x7; in rt5645_jack_detect()
2451 dev_dbg(codec->dev, "val = %d\n", val); in rt5645_jack_detect()
2458 snd_soc_dapm_disable_pin(&codec->dapm, "micbias1"); in rt5645_jack_detect()
2459 snd_soc_dapm_disable_pin(&codec->dapm, "micbias2"); in rt5645_jack_detect()
2461 snd_soc_dapm_disable_pin(&codec->dapm, "LDO2"); in rt5645_jack_detect()
2462 snd_soc_dapm_disable_pin(&codec->dapm, "Mic Det Power"); in rt5645_jack_detect()
2463 snd_soc_dapm_sync(&codec->dapm); in rt5645_jack_detect()
2471 int rt5645_set_jack_detect(struct snd_soc_codec *codec, in rt5645_set_jack_detect() argument
2474 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_jack_detect()
2478 rt5645_jack_detect(codec); in rt5645_set_jack_detect()
2489 rt5645_jack_detect(rt5645->codec); in rt5645_jack_detect_work()
2502 static int rt5645_probe(struct snd_soc_codec *codec) in rt5645_probe() argument
2504 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_probe()
2506 rt5645->codec = codec; in rt5645_probe()
2510 snd_soc_dapm_add_routes(&codec->dapm, in rt5645_probe()
2515 snd_soc_dapm_new_controls(&codec->dapm, in rt5645_probe()
2518 snd_soc_dapm_add_routes(&codec->dapm, in rt5645_probe()
2524 rt5645_set_bias_level(codec, SND_SOC_BIAS_OFF); in rt5645_probe()
2526 snd_soc_update_bits(codec, RT5645_CHARGE_PUMP, 0x0300, 0x0200); in rt5645_probe()
2530 snd_soc_dapm_force_enable_pin(&codec->dapm, "JD Power"); in rt5645_probe()
2531 snd_soc_dapm_force_enable_pin(&codec->dapm, "LDO2"); in rt5645_probe()
2532 snd_soc_dapm_sync(&codec->dapm); in rt5645_probe()
2538 static int rt5645_remove(struct snd_soc_codec *codec) in rt5645_remove() argument
2540 rt5645_reset(codec); in rt5645_remove()
2545 static int rt5645_suspend(struct snd_soc_codec *codec) in rt5645_suspend() argument
2547 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_suspend()
2555 static int rt5645_resume(struct snd_soc_codec *codec) in rt5645_resume() argument
2557 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_resume()