Lines Matching refs:rt5670

435 	struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component);  in rt5670_headset_detect()  local
457 rt5670->jack_type = SND_JACK_HEADSET; in rt5670_headset_detect()
464 rt5670->jack_type = SND_JACK_HEADPHONE; in rt5670_headset_detect()
471 rt5670->jack_type = 0; in rt5670_headset_detect()
476 return rt5670->jack_type; in rt5670_headset_detect()
481 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_jack_suspend() local
483 rt5670->jack_type_saved = rt5670->jack_type; in rt5670_jack_suspend()
490 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_jack_resume() local
492 if (rt5670->jack_type_saved) in rt5670_jack_resume()
515 struct rt5670_priv *rt5670 = (struct rt5670_priv *)data; in rt5670_irq_detection() local
516 struct snd_soc_jack_gpio *gpio = &rt5670->hp_gpio; in rt5670_irq_detection()
517 struct snd_soc_jack *jack = rt5670->jack; in rt5670_irq_detection()
520 if (rt5670->jd_mode == 1) /* 2 port */ in rt5670_irq_detection()
521 val = snd_soc_component_read(rt5670->component, RT5670_A_JD_CTRL1) & 0x0070; in rt5670_irq_detection()
523 val = snd_soc_component_read(rt5670->component, RT5670_A_JD_CTRL1) & 0x0020; in rt5670_irq_detection()
529 if (rt5670->jack_type == 0) { in rt5670_irq_detection()
530 report = rt5670_headset_detect(rt5670->component, 1); in rt5670_irq_detection()
536 if (snd_soc_component_read(rt5670->component, RT5670_INT_IRQ_ST) & 0x4) { in rt5670_irq_detection()
539 btn_type = rt5670_button_detect(rt5670->component); in rt5670_irq_detection()
551 dev_err(rt5670->component->dev, in rt5670_irq_detection()
558 report = rt5670->jack_type; in rt5670_irq_detection()
566 snd_soc_component_update_bits(rt5670->component, RT5670_INT_IRQ_ST, 0x1, 0x0); in rt5670_irq_detection()
567 rt5670_headset_detect(rt5670->component, 0); in rt5670_irq_detection()
580 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_jack_detect() local
583 rt5670->jack = jack; in rt5670_set_jack_detect()
584 rt5670->hp_gpio.gpiod_dev = component->dev; in rt5670_set_jack_detect()
585 rt5670->hp_gpio.name = "headset"; in rt5670_set_jack_detect()
586 rt5670->hp_gpio.report = SND_JACK_HEADSET | in rt5670_set_jack_detect()
588 rt5670->hp_gpio.debounce_time = 150; in rt5670_set_jack_detect()
589 rt5670->hp_gpio.wake = true; in rt5670_set_jack_detect()
590 rt5670->hp_gpio.data = (struct rt5670_priv *)rt5670; in rt5670_set_jack_detect()
591 rt5670->hp_gpio.jack_status_check = rt5670_irq_detection; in rt5670_set_jack_detect()
593 ret = snd_soc_jack_add_gpios(rt5670->jack, 1, in rt5670_set_jack_detect()
594 &rt5670->hp_gpio); in rt5670_set_jack_detect()
638 static void rt5670_update_ad_da_mixer_dac1_m_bits(struct rt5670_priv *rt5670) in rt5670_update_ad_da_mixer_dac1_m_bits() argument
642 if (rt5670->dac1_mixl_dac1_switch && rt5670->dac1_playback_switch_l) in rt5670_update_ad_da_mixer_dac1_m_bits()
645 if (rt5670->dac1_mixr_dac1_switch && rt5670->dac1_playback_switch_r) in rt5670_update_ad_da_mixer_dac1_m_bits()
648 regmap_update_bits(rt5670->regmap, RT5670_AD_DA_MIXER, in rt5670_update_ad_da_mixer_dac1_m_bits()
656 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_dac1_playback_switch_get() local
658 ucontrol->value.integer.value[0] = rt5670->dac1_playback_switch_l; in rt5670_dac1_playback_switch_get()
659 ucontrol->value.integer.value[1] = rt5670->dac1_playback_switch_r; in rt5670_dac1_playback_switch_get()
668 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_dac1_playback_switch_put() local
670 if (rt5670->dac1_playback_switch_l == ucontrol->value.integer.value[0] && in rt5670_dac1_playback_switch_put()
671 rt5670->dac1_playback_switch_r == ucontrol->value.integer.value[1]) in rt5670_dac1_playback_switch_put()
674 rt5670->dac1_playback_switch_l = ucontrol->value.integer.value[0]; in rt5670_dac1_playback_switch_put()
675 rt5670->dac1_playback_switch_r = ucontrol->value.integer.value[1]; in rt5670_dac1_playback_switch_put()
677 rt5670_update_ad_da_mixer_dac1_m_bits(rt5670); in rt5670_dac1_playback_switch_put()
748 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in set_dmic_clk() local
751 rate = rt5670->sysclk / rl6231_get_pre_div(rt5670->regmap, in set_dmic_clk()
766 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in is_sys_clk_from_pll() local
768 if (rt5670->sysclk_src == RT5670_SCLK_S_PLL1) in is_sys_clk_from_pll()
830 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in can_use_asrc() local
832 if (rt5670->sysclk > rt5670->lrck[RT5670_AIF1] * 384) in can_use_asrc()
970 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_put_dac1_mix_dac1_switch() local
974 rt5670->dac1_mixl_dac1_switch = ucontrol->value.integer.value[0]; in rt5670_put_dac1_mix_dac1_switch()
976 rt5670->dac1_mixr_dac1_switch = ucontrol->value.integer.value[0]; in rt5670_put_dac1_mix_dac1_switch()
983 rt5670_update_ad_da_mixer_dac1_m_bits(rt5670); in rt5670_put_dac1_mix_dac1_switch()
1442 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_hp_power_event() local
1446 regmap_update_bits(rt5670->regmap, RT5670_CHARGE_PUMP, in rt5670_hp_power_event()
1448 regmap_update_bits(rt5670->regmap, RT5670_GEN_CTRL2, in rt5670_hp_power_event()
1451 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG1, in rt5670_hp_power_event()
1456 regmap_write(rt5670->regmap, RT5670_DEPOP_M2, 0x3100); in rt5670_hp_power_event()
1457 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8009); in rt5670_hp_power_event()
1458 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_power_event()
1461 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8019); in rt5670_hp_power_event()
1464 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x0004); in rt5670_hp_power_event()
1478 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_hp_event() local
1483 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_event()
1485 regmap_write(rt5670->regmap, RT5670_DEPOP_M3, 0x0772); in rt5670_hp_event()
1486 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x805d); in rt5670_hp_event()
1487 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x831d); in rt5670_hp_event()
1488 regmap_update_bits(rt5670->regmap, RT5670_GEN_CTRL2, in rt5670_hp_event()
1490 regmap_update_bits(rt5670->regmap, RT5670_HP_VOL, in rt5670_hp_event()
1493 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8019); in rt5670_hp_event()
1498 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_event()
1500 regmap_write(rt5670->regmap, RT5670_DEPOP_M3, 0x0772); in rt5670_hp_event()
1501 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x803d); in rt5670_hp_event()
1503 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x831d); in rt5670_hp_event()
1505 regmap_update_bits(rt5670->regmap, RT5670_HP_VOL, in rt5670_hp_event()
1509 regmap_update_bits(rt5670->regmap, in rt5670_hp_event()
1511 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8019); in rt5670_hp_event()
1512 regmap_write(rt5670->regmap, RT5670_DEPOP_M3, 0x0707); in rt5670_hp_event()
1513 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_event()
1528 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_spk_event() local
1530 if (!rt5670->gpio1_is_ext_spk_en) in rt5670_spk_event()
1535 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2, in rt5670_spk_event()
1540 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2, in rt5670_spk_event()
2370 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_hw_params() local
2374 rt5670->lrck[dai->id] = params_rate(params); in rt5670_hw_params()
2375 pre_div = rl6231_get_clk_info(rt5670->sysclk, rt5670->lrck[dai->id]); in rt5670_hw_params()
2378 rt5670->lrck[dai->id], dai->id); in rt5670_hw_params()
2387 rt5670->bclk[dai->id] = rt5670->lrck[dai->id] * (32 << bclk_ms); in rt5670_hw_params()
2390 rt5670->bclk[dai->id], rt5670->lrck[dai->id]); in rt5670_hw_params()
2438 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_dai_fmt() local
2443 rt5670->master[dai->id] = 1; in rt5670_set_dai_fmt()
2447 rt5670->master[dai->id] = 0; in rt5670_set_dai_fmt()
2500 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_codec_sysclk() local
2519 rt5670->sysclk = freq; in rt5670_set_codec_sysclk()
2521 rt5670->sysclk_src = clk_id; in rt5670_set_codec_sysclk()
2532 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_dai_pll() local
2536 if (source == rt5670->pll_src && freq_in == rt5670->pll_in && in rt5670_set_dai_pll()
2537 freq_out == rt5670->pll_out) in rt5670_set_dai_pll()
2543 rt5670->pll_in = 0; in rt5670_set_dai_pll()
2544 rt5670->pll_out = 0; in rt5670_set_dai_pll()
2594 rt5670->pll_in = freq_in; in rt5670_set_dai_pll()
2595 rt5670->pll_out = freq_out; in rt5670_set_dai_pll()
2596 rt5670->pll_src = source; in rt5670_set_dai_pll()
2668 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_bias_level() local
2698 if (rt5670->jd_mode) in rt5670_set_bias_level()
2723 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_probe() local
2748 rt5670->component = component; in rt5670_probe()
2755 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_remove() local
2757 regmap_write(rt5670->regmap, RT5670_RESET, 0); in rt5670_remove()
2758 snd_soc_jack_free_gpios(rt5670->jack, 1, &rt5670->hp_gpio); in rt5670_remove()
2764 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_suspend() local
2766 regcache_cache_only(rt5670->regmap, true); in rt5670_suspend()
2767 regcache_mark_dirty(rt5670->regmap); in rt5670_suspend()
2773 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_resume() local
2775 regcache_cache_only(rt5670->regmap, false); in rt5670_resume()
2776 regcache_sync(rt5670->regmap); in rt5670_resume()
3052 struct rt5670_priv *rt5670; in rt5670_i2c_probe() local
3056 rt5670 = devm_kzalloc(&i2c->dev, in rt5670_i2c_probe()
3059 if (NULL == rt5670) in rt5670_i2c_probe()
3062 i2c_set_clientdata(i2c, rt5670); in rt5670_i2c_probe()
3072 rt5670->gpio1_is_irq = true; in rt5670_i2c_probe()
3076 rt5670->gpio1_is_ext_spk_en = true; in rt5670_i2c_probe()
3080 rt5670->in2_diff = true; in rt5670_i2c_probe()
3084 rt5670->dmic_en = true; in rt5670_i2c_probe()
3088 rt5670->dmic1_data_pin = RT5670_DMIC_DATA_IN2P; in rt5670_i2c_probe()
3092 rt5670->dmic1_data_pin = RT5670_DMIC_DATA_GPIO6; in rt5670_i2c_probe()
3096 rt5670->dmic1_data_pin = RT5670_DMIC_DATA_GPIO7; in rt5670_i2c_probe()
3100 rt5670->dmic2_data_pin = RT5670_DMIC_DATA_IN3N; in rt5670_i2c_probe()
3104 rt5670->dmic2_data_pin = RT5670_DMIC_DATA_GPIO8; in rt5670_i2c_probe()
3108 rt5670->dmic3_data_pin = RT5670_DMIC_DATA_GPIO5; in rt5670_i2c_probe()
3113 rt5670->jd_mode = 1; in rt5670_i2c_probe()
3117 rt5670->jd_mode = 2; in rt5670_i2c_probe()
3121 rt5670->jd_mode = 3; in rt5670_i2c_probe()
3129 rt5670->dac1_playback_switch_l = true; in rt5670_i2c_probe()
3130 rt5670->dac1_playback_switch_r = true; in rt5670_i2c_probe()
3132 rt5670->dac1_mixl_dac1_switch = true; in rt5670_i2c_probe()
3133 rt5670->dac1_mixr_dac1_switch = true; in rt5670_i2c_probe()
3135 rt5670->regmap = devm_regmap_init_i2c(i2c, &rt5670_regmap); in rt5670_i2c_probe()
3136 if (IS_ERR(rt5670->regmap)) { in rt5670_i2c_probe()
3137 ret = PTR_ERR(rt5670->regmap); in rt5670_i2c_probe()
3143 regmap_read(rt5670->regmap, RT5670_VENDOR_ID2, &val); in rt5670_i2c_probe()
3150 regmap_write(rt5670->regmap, RT5670_RESET, 0); in rt5670_i2c_probe()
3151 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG1, in rt5670_i2c_probe()
3156 regmap_write(rt5670->regmap, RT5670_RESET, 0); in rt5670_i2c_probe()
3158 regmap_read(rt5670->regmap, RT5670_VENDOR_ID, &val); in rt5670_i2c_probe()
3160 regmap_write(rt5670->regmap, RT5670_GPIO_CTRL3, 0x0980); in rt5670_i2c_probe()
3162 regmap_write(rt5670->regmap, RT5670_GPIO_CTRL3, 0x0d00); in rt5670_i2c_probe()
3164 ret = regmap_register_patch(rt5670->regmap, init_list, in rt5670_i2c_probe()
3169 regmap_update_bits(rt5670->regmap, RT5670_DIG_MISC, in rt5670_i2c_probe()
3172 if (rt5670->in2_diff) in rt5670_i2c_probe()
3173 regmap_update_bits(rt5670->regmap, RT5670_IN2, in rt5670_i2c_probe()
3176 if (rt5670->gpio1_is_irq) { in rt5670_i2c_probe()
3178 regmap_write(rt5670->regmap, RT5670_IL_CMD, 0x0000); in rt5670_i2c_probe()
3179 regmap_write(rt5670->regmap, RT5670_IL_CMD2, 0x0010); in rt5670_i2c_probe()
3180 regmap_write(rt5670->regmap, RT5670_IL_CMD3, 0x0014); in rt5670_i2c_probe()
3182 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3184 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2, in rt5670_i2c_probe()
3188 if (rt5670->gpio1_is_ext_spk_en) { in rt5670_i2c_probe()
3189 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3191 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2, in rt5670_i2c_probe()
3195 if (rt5670->jd_mode) { in rt5670_i2c_probe()
3196 regmap_update_bits(rt5670->regmap, RT5670_GLB_CLK, in rt5670_i2c_probe()
3198 rt5670->sysclk = 0; in rt5670_i2c_probe()
3199 rt5670->sysclk_src = RT5670_SCLK_S_RCCLK; in rt5670_i2c_probe()
3200 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG1, in rt5670_i2c_probe()
3202 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG2, in rt5670_i2c_probe()
3204 regmap_update_bits(rt5670->regmap, RT5670_IRQ_CTRL1, in rt5670_i2c_probe()
3206 regmap_update_bits(rt5670->regmap, RT5670_JD_CTRL3, in rt5670_i2c_probe()
3210 switch (rt5670->jd_mode) { in rt5670_i2c_probe()
3212 regmap_update_bits(rt5670->regmap, RT5670_A_JD_CTRL1, in rt5670_i2c_probe()
3217 regmap_update_bits(rt5670->regmap, RT5670_A_JD_CTRL1, in rt5670_i2c_probe()
3222 regmap_update_bits(rt5670->regmap, RT5670_A_JD_CTRL1, in rt5670_i2c_probe()
3231 if (rt5670->dmic_en) { in rt5670_i2c_probe()
3232 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3236 switch (rt5670->dmic1_data_pin) { in rt5670_i2c_probe()
3238 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3244 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3247 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3253 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3256 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3265 switch (rt5670->dmic2_data_pin) { in rt5670_i2c_probe()
3267 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3273 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3276 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3285 switch (rt5670->dmic3_data_pin) { in rt5670_i2c_probe()
3287 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL2, in rt5670_i2c_probe()
3290 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()