Lines Matching refs:rt5645
544 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in set_dmic_clk() local
547 idx = rl6231_calc_dmic_clk(rt5645->sysclk); in set_dmic_clk()
1226 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in hp_amp_power() local
1234 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1256 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1258 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1284 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_hp_event() local
1290 if (rt5645->codec_type == CODEC_TYPE_RT5650) { in rt5645_hp_event()
1300 regmap_write(rt5645->regmap, in rt5645_hp_event()
1319 if (rt5645->codec_type == CODEC_TYPE_RT5650) { in rt5645_hp_event()
1329 regmap_write(rt5645->regmap, in rt5645_hp_event()
2054 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_hw_params() local
2058 rt5645->lrck[dai->id] = params_rate(params); in rt5645_hw_params()
2059 pre_div = rl6231_get_clk_info(rt5645->sysclk, rt5645->lrck[dai->id]); in rt5645_hw_params()
2070 switch (rt5645->codec_type) { in rt5645_hw_params()
2080 rt5645->bclk[dai->id] = rt5645->lrck[dai->id] * (32 << bclk_ms); in rt5645_hw_params()
2083 rt5645->bclk[dai->id], rt5645->lrck[dai->id]); in rt5645_hw_params()
2131 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_dai_fmt() local
2134 switch (rt5645->codec_type) { in rt5645_set_dai_fmt()
2145 rt5645->master[dai->id] = 1; in rt5645_set_dai_fmt()
2149 rt5645->master[dai->id] = 0; in rt5645_set_dai_fmt()
2202 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_dai_sysclk() local
2205 if (freq == rt5645->sysclk && clk_id == rt5645->sysclk_src) in rt5645_set_dai_sysclk()
2224 rt5645->sysclk = freq; in rt5645_set_dai_sysclk()
2225 rt5645->sysclk_src = clk_id; in rt5645_set_dai_sysclk()
2236 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_dai_pll() local
2240 if (source == rt5645->pll_src && freq_in == rt5645->pll_in && in rt5645_set_dai_pll()
2241 freq_out == rt5645->pll_out) in rt5645_set_dai_pll()
2247 rt5645->pll_in = 0; in rt5645_set_dai_pll()
2248 rt5645->pll_out = 0; in rt5645_set_dai_pll()
2296 rt5645->pll_in = freq_in; in rt5645_set_dai_pll()
2297 rt5645->pll_out = freq_out; in rt5645_set_dai_pll()
2298 rt5645->pll_src = source; in rt5645_set_dai_pll()
2307 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_tdm_slot() local
2311 switch (rt5645->codec_type) { in rt5645_set_tdm_slot()
2329 if (rt5645->codec_type == CODEC_TYPE_RT5645) in rt5645_set_tdm_slot()
2420 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_jack_detect() local
2424 if (!gpio_is_valid(rt5645->pdata.hp_det_gpio)) { in rt5645_jack_detect()
2428 gpio_state = gpio_get_value(rt5645->pdata.hp_det_gpio); in rt5645_jack_detect()
2430 dev_dbg(codec->dev, "gpio = %d(%d)\n", rt5645->pdata.hp_det_gpio, in rt5645_jack_detect()
2433 if ((rt5645->pdata.gpio_hp_det_active_high && gpio_state) || in rt5645_jack_detect()
2434 (!rt5645->pdata.gpio_hp_det_active_high && !gpio_state)) { in rt5645_jack_detect()
2460 if (rt5645->pdata.jd_mode == 0) in rt5645_jack_detect()
2466 snd_soc_jack_report(rt5645->hp_jack, jack_type, SND_JACK_HEADPHONE); in rt5645_jack_detect()
2467 snd_soc_jack_report(rt5645->mic_jack, jack_type, SND_JACK_MICROPHONE); in rt5645_jack_detect()
2474 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_jack_detect() local
2476 rt5645->hp_jack = hp_jack; in rt5645_set_jack_detect()
2477 rt5645->mic_jack = mic_jack; in rt5645_set_jack_detect()
2486 struct rt5645_priv *rt5645 = in rt5645_jack_detect_work() local
2489 rt5645_jack_detect(rt5645->codec); in rt5645_jack_detect_work()
2494 struct rt5645_priv *rt5645 = data; in rt5645_irq() local
2497 &rt5645->jack_detect_work, msecs_to_jiffies(250)); in rt5645_irq()
2504 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_probe() local
2506 rt5645->codec = codec; in rt5645_probe()
2508 switch (rt5645->codec_type) { in rt5645_probe()
2529 if (rt5645->pdata.en_jd_func) { in rt5645_probe()
2547 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_suspend() local
2549 regcache_cache_only(rt5645->regmap, true); in rt5645_suspend()
2550 regcache_mark_dirty(rt5645->regmap); in rt5645_suspend()
2557 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_resume() local
2559 regcache_cache_only(rt5645->regmap, false); in rt5645_resume()
2560 regcache_sync(rt5645->regmap); in rt5645_resume()
2673 struct rt5645_priv *rt5645; in rt5645_i2c_probe() local
2677 rt5645 = devm_kzalloc(&i2c->dev, sizeof(struct rt5645_priv), in rt5645_i2c_probe()
2679 if (rt5645 == NULL) in rt5645_i2c_probe()
2682 rt5645->i2c = i2c; in rt5645_i2c_probe()
2683 i2c_set_clientdata(i2c, rt5645); in rt5645_i2c_probe()
2686 rt5645->pdata = *pdata; in rt5645_i2c_probe()
2688 rt5645->regmap = devm_regmap_init_i2c(i2c, &rt5645_regmap); in rt5645_i2c_probe()
2689 if (IS_ERR(rt5645->regmap)) { in rt5645_i2c_probe()
2690 ret = PTR_ERR(rt5645->regmap); in rt5645_i2c_probe()
2696 regmap_read(rt5645->regmap, RT5645_VENDOR_ID2, &val); in rt5645_i2c_probe()
2700 rt5645->codec_type = CODEC_TYPE_RT5645; in rt5645_i2c_probe()
2703 rt5645->codec_type = CODEC_TYPE_RT5650; in rt5645_i2c_probe()
2712 regmap_write(rt5645->regmap, RT5645_RESET, 0); in rt5645_i2c_probe()
2714 ret = regmap_register_patch(rt5645->regmap, init_list, in rt5645_i2c_probe()
2719 if (rt5645->codec_type == CODEC_TYPE_RT5650) { in rt5645_i2c_probe()
2720 ret = regmap_register_patch(rt5645->regmap, rt5650_init_list, in rt5645_i2c_probe()
2727 if (rt5645->pdata.in2_diff) in rt5645_i2c_probe()
2728 regmap_update_bits(rt5645->regmap, RT5645_IN2_CTRL, in rt5645_i2c_probe()
2731 if (rt5645->pdata.dmic_en) { in rt5645_i2c_probe()
2732 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
2735 switch (rt5645->pdata.dmic1_data_pin) { in rt5645_i2c_probe()
2737 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
2742 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
2744 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
2749 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
2751 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
2760 switch (rt5645->pdata.dmic2_data_pin) { in rt5645_i2c_probe()
2762 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
2767 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
2769 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
2774 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
2776 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
2782 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
2784 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
2795 if (rt5645->pdata.en_jd_func) { in rt5645_i2c_probe()
2796 regmap_update_bits(rt5645->regmap, RT5645_GEN_CTRL3, in rt5645_i2c_probe()
2799 regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL1, in rt5645_i2c_probe()
2801 regmap_update_bits(rt5645->regmap, RT5645_JD_CTRL3, in rt5645_i2c_probe()
2804 regmap_update_bits(rt5645->regmap, RT5645_MICBIAS, in rt5645_i2c_probe()
2808 if (rt5645->pdata.jd_mode) { in rt5645_i2c_probe()
2809 regmap_update_bits(rt5645->regmap, RT5645_IRQ_CTRL2, in rt5645_i2c_probe()
2811 regmap_update_bits(rt5645->regmap, RT5645_GEN_CTRL3, in rt5645_i2c_probe()
2813 regmap_update_bits(rt5645->regmap, RT5645_HPO_MIXER, in rt5645_i2c_probe()
2815 regmap_update_bits(rt5645->regmap, RT5645_MICBIAS, in rt5645_i2c_probe()
2817 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
2819 switch (rt5645->pdata.jd_mode) { in rt5645_i2c_probe()
2821 regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1, in rt5645_i2c_probe()
2826 regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1, in rt5645_i2c_probe()
2831 regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1, in rt5645_i2c_probe()
2840 INIT_DELAYED_WORK(&rt5645->jack_detect_work, rt5645_jack_detect_work); in rt5645_i2c_probe()
2842 if (rt5645->i2c->irq) { in rt5645_i2c_probe()
2843 ret = request_threaded_irq(rt5645->i2c->irq, NULL, rt5645_irq, in rt5645_i2c_probe()
2845 | IRQF_ONESHOT, "rt5645", rt5645); in rt5645_i2c_probe()
2850 if (gpio_is_valid(rt5645->pdata.hp_det_gpio)) { in rt5645_i2c_probe()
2851 ret = gpio_request(rt5645->pdata.hp_det_gpio, "rt5645"); in rt5645_i2c_probe()
2855 ret = gpio_direction_input(rt5645->pdata.hp_det_gpio); in rt5645_i2c_probe()
2866 struct rt5645_priv *rt5645 = i2c_get_clientdata(i2c); in rt5645_i2c_remove() local
2869 free_irq(i2c->irq, rt5645); in rt5645_i2c_remove()
2871 cancel_delayed_work_sync(&rt5645->jack_detect_work); in rt5645_i2c_remove()
2873 if (gpio_is_valid(rt5645->pdata.hp_det_gpio)) in rt5645_i2c_remove()
2874 gpio_free(rt5645->pdata.hp_det_gpio); in rt5645_i2c_remove()