Lines Matching refs:rt5670
438 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_headset_detect() local
460 rt5670->jack_type = SND_JACK_HEADSET; in rt5670_headset_detect()
467 rt5670->jack_type = SND_JACK_HEADPHONE; in rt5670_headset_detect()
474 rt5670->jack_type = 0; in rt5670_headset_detect()
479 return rt5670->jack_type; in rt5670_headset_detect()
484 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_jack_suspend() local
486 rt5670->jack_type_saved = rt5670->jack_type; in rt5670_jack_suspend()
493 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_jack_resume() local
495 if (rt5670->jack_type_saved) in rt5670_jack_resume()
518 struct rt5670_priv *rt5670 = (struct rt5670_priv *)data; in rt5670_irq_detection() local
519 struct snd_soc_jack_gpio *gpio = &rt5670->hp_gpio; in rt5670_irq_detection()
520 struct snd_soc_jack *jack = rt5670->jack; in rt5670_irq_detection()
523 if (rt5670->pdata.jd_mode == 1) /* 2 port */ in rt5670_irq_detection()
524 val = snd_soc_component_read32(rt5670->component, RT5670_A_JD_CTRL1) & 0x0070; in rt5670_irq_detection()
526 val = snd_soc_component_read32(rt5670->component, RT5670_A_JD_CTRL1) & 0x0020; in rt5670_irq_detection()
532 if (rt5670->jack_type == 0) { in rt5670_irq_detection()
533 report = rt5670_headset_detect(rt5670->component, 1); in rt5670_irq_detection()
539 if (snd_soc_component_read32(rt5670->component, RT5670_INT_IRQ_ST) & 0x4) { in rt5670_irq_detection()
542 btn_type = rt5670_button_detect(rt5670->component); in rt5670_irq_detection()
554 dev_err(rt5670->component->dev, in rt5670_irq_detection()
561 report = rt5670->jack_type; in rt5670_irq_detection()
569 snd_soc_component_update_bits(rt5670->component, RT5670_INT_IRQ_ST, 0x1, 0x0); in rt5670_irq_detection()
570 rt5670_headset_detect(rt5670->component, 0); in rt5670_irq_detection()
583 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_jack_detect() local
586 rt5670->jack = jack; in rt5670_set_jack_detect()
587 rt5670->hp_gpio.gpiod_dev = component->dev; in rt5670_set_jack_detect()
588 rt5670->hp_gpio.name = "headset"; in rt5670_set_jack_detect()
589 rt5670->hp_gpio.report = SND_JACK_HEADSET | in rt5670_set_jack_detect()
591 rt5670->hp_gpio.debounce_time = 150; in rt5670_set_jack_detect()
592 rt5670->hp_gpio.wake = true; in rt5670_set_jack_detect()
593 rt5670->hp_gpio.data = (struct rt5670_priv *)rt5670; in rt5670_set_jack_detect()
594 rt5670->hp_gpio.jack_status_check = rt5670_irq_detection; in rt5670_set_jack_detect()
596 ret = snd_soc_jack_add_gpios(rt5670->jack, 1, in rt5670_set_jack_detect()
597 &rt5670->hp_gpio); in rt5670_set_jack_detect()
703 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in set_dmic_clk() local
706 rate = rt5670->sysclk / rl6231_get_pre_div(rt5670->regmap, in set_dmic_clk()
721 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in is_sys_clk_from_pll() local
723 if (rt5670->sysclk_src == RT5670_SCLK_S_PLL1) in is_sys_clk_from_pll()
785 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in can_use_asrc() local
787 if (rt5670->sysclk > rt5670->lrck[RT5670_AIF1] * 384) in can_use_asrc()
1425 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_hp_power_event() local
1429 regmap_update_bits(rt5670->regmap, RT5670_CHARGE_PUMP, in rt5670_hp_power_event()
1431 regmap_update_bits(rt5670->regmap, RT5670_GEN_CTRL2, in rt5670_hp_power_event()
1434 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG1, in rt5670_hp_power_event()
1439 regmap_write(rt5670->regmap, RT5670_DEPOP_M2, 0x3100); in rt5670_hp_power_event()
1440 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8009); in rt5670_hp_power_event()
1441 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_power_event()
1444 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8019); in rt5670_hp_power_event()
1447 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x0004); in rt5670_hp_power_event()
1461 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_hp_event() local
1466 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_event()
1468 regmap_write(rt5670->regmap, RT5670_DEPOP_M3, 0x0772); in rt5670_hp_event()
1469 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x805d); in rt5670_hp_event()
1470 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x831d); in rt5670_hp_event()
1471 regmap_update_bits(rt5670->regmap, RT5670_GEN_CTRL2, in rt5670_hp_event()
1473 regmap_update_bits(rt5670->regmap, RT5670_HP_VOL, in rt5670_hp_event()
1476 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8019); in rt5670_hp_event()
1481 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_event()
1483 regmap_write(rt5670->regmap, RT5670_DEPOP_M3, 0x0772); in rt5670_hp_event()
1484 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x803d); in rt5670_hp_event()
1486 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x831d); in rt5670_hp_event()
1488 regmap_update_bits(rt5670->regmap, RT5670_HP_VOL, in rt5670_hp_event()
1492 regmap_update_bits(rt5670->regmap, in rt5670_hp_event()
1494 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8019); in rt5670_hp_event()
1495 regmap_write(rt5670->regmap, RT5670_DEPOP_M3, 0x0707); in rt5670_hp_event()
1496 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_event()
2326 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_hw_params() local
2330 rt5670->lrck[dai->id] = params_rate(params); in rt5670_hw_params()
2331 pre_div = rl6231_get_clk_info(rt5670->sysclk, rt5670->lrck[dai->id]); in rt5670_hw_params()
2334 rt5670->lrck[dai->id], dai->id); in rt5670_hw_params()
2343 rt5670->bclk[dai->id] = rt5670->lrck[dai->id] * (32 << bclk_ms); in rt5670_hw_params()
2346 rt5670->bclk[dai->id], rt5670->lrck[dai->id]); in rt5670_hw_params()
2394 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_dai_fmt() local
2399 rt5670->master[dai->id] = 1; in rt5670_set_dai_fmt()
2403 rt5670->master[dai->id] = 0; in rt5670_set_dai_fmt()
2456 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_codec_sysclk() local
2475 rt5670->sysclk = freq; in rt5670_set_codec_sysclk()
2477 rt5670->sysclk_src = clk_id; in rt5670_set_codec_sysclk()
2488 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_dai_pll() local
2492 if (source == rt5670->pll_src && freq_in == rt5670->pll_in && in rt5670_set_dai_pll()
2493 freq_out == rt5670->pll_out) in rt5670_set_dai_pll()
2499 rt5670->pll_in = 0; in rt5670_set_dai_pll()
2500 rt5670->pll_out = 0; in rt5670_set_dai_pll()
2550 rt5670->pll_in = freq_in; in rt5670_set_dai_pll()
2551 rt5670->pll_out = freq_out; in rt5670_set_dai_pll()
2552 rt5670->pll_src = source; in rt5670_set_dai_pll()
2624 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_set_bias_level() local
2654 if (rt5670->pdata.jd_mode) in rt5670_set_bias_level()
2679 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_probe() local
2704 rt5670->component = component; in rt5670_probe()
2711 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_remove() local
2713 regmap_write(rt5670->regmap, RT5670_RESET, 0); in rt5670_remove()
2714 snd_soc_jack_free_gpios(rt5670->jack, 1, &rt5670->hp_gpio); in rt5670_remove()
2720 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_suspend() local
2722 regcache_cache_only(rt5670->regmap, true); in rt5670_suspend()
2723 regcache_mark_dirty(rt5670->regmap); in rt5670_suspend()
2729 struct rt5670_priv *rt5670 = snd_soc_component_get_drvdata(component); in rt5670_resume() local
2731 regcache_cache_only(rt5670->regmap, false); in rt5670_resume()
2732 regcache_sync(rt5670->regmap); in rt5670_resume()
2933 struct rt5670_priv *rt5670; in rt5670_i2c_probe() local
2937 rt5670 = devm_kzalloc(&i2c->dev, in rt5670_i2c_probe()
2940 if (NULL == rt5670) in rt5670_i2c_probe()
2943 i2c_set_clientdata(i2c, rt5670); in rt5670_i2c_probe()
2946 rt5670->pdata = *pdata; in rt5670_i2c_probe()
2956 rt5670->pdata.dev_gpio = true; in rt5670_i2c_probe()
2960 rt5670->pdata.in2_diff = true; in rt5670_i2c_probe()
2964 rt5670->pdata.dmic_en = true; in rt5670_i2c_probe()
2968 rt5670->pdata.dmic1_data_pin = RT5670_DMIC_DATA_IN2P; in rt5670_i2c_probe()
2972 rt5670->pdata.dmic1_data_pin = RT5670_DMIC_DATA_GPIO6; in rt5670_i2c_probe()
2976 rt5670->pdata.dmic1_data_pin = RT5670_DMIC_DATA_GPIO7; in rt5670_i2c_probe()
2980 rt5670->pdata.dmic2_data_pin = RT5670_DMIC_DATA_IN3N; in rt5670_i2c_probe()
2984 rt5670->pdata.dmic2_data_pin = RT5670_DMIC_DATA_GPIO8; in rt5670_i2c_probe()
2988 rt5670->pdata.dmic3_data_pin = RT5670_DMIC_DATA_GPIO5; in rt5670_i2c_probe()
2993 rt5670->pdata.jd_mode = 1; in rt5670_i2c_probe()
2997 rt5670->pdata.jd_mode = 2; in rt5670_i2c_probe()
3001 rt5670->pdata.jd_mode = 3; in rt5670_i2c_probe()
3005 rt5670->regmap = devm_regmap_init_i2c(i2c, &rt5670_regmap); in rt5670_i2c_probe()
3006 if (IS_ERR(rt5670->regmap)) { in rt5670_i2c_probe()
3007 ret = PTR_ERR(rt5670->regmap); in rt5670_i2c_probe()
3013 regmap_read(rt5670->regmap, RT5670_VENDOR_ID2, &val); in rt5670_i2c_probe()
3020 regmap_write(rt5670->regmap, RT5670_RESET, 0); in rt5670_i2c_probe()
3021 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG1, in rt5670_i2c_probe()
3026 regmap_write(rt5670->regmap, RT5670_RESET, 0); in rt5670_i2c_probe()
3028 regmap_read(rt5670->regmap, RT5670_VENDOR_ID, &val); in rt5670_i2c_probe()
3030 regmap_write(rt5670->regmap, RT5670_GPIO_CTRL3, 0x0980); in rt5670_i2c_probe()
3032 regmap_write(rt5670->regmap, RT5670_GPIO_CTRL3, 0x0d00); in rt5670_i2c_probe()
3034 ret = regmap_register_patch(rt5670->regmap, init_list, in rt5670_i2c_probe()
3039 regmap_update_bits(rt5670->regmap, RT5670_DIG_MISC, in rt5670_i2c_probe()
3042 if (rt5670->pdata.in2_diff) in rt5670_i2c_probe()
3043 regmap_update_bits(rt5670->regmap, RT5670_IN2, in rt5670_i2c_probe()
3046 if (rt5670->pdata.dev_gpio) { in rt5670_i2c_probe()
3048 regmap_write(rt5670->regmap, RT5670_IL_CMD, 0x0000); in rt5670_i2c_probe()
3049 regmap_write(rt5670->regmap, RT5670_IL_CMD2, 0x0010); in rt5670_i2c_probe()
3050 regmap_write(rt5670->regmap, RT5670_IL_CMD3, 0x0014); in rt5670_i2c_probe()
3052 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3054 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2, in rt5670_i2c_probe()
3058 if (rt5670->pdata.jd_mode) { in rt5670_i2c_probe()
3059 regmap_update_bits(rt5670->regmap, RT5670_GLB_CLK, in rt5670_i2c_probe()
3061 rt5670->sysclk = 0; in rt5670_i2c_probe()
3062 rt5670->sysclk_src = RT5670_SCLK_S_RCCLK; in rt5670_i2c_probe()
3063 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG1, in rt5670_i2c_probe()
3065 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG2, in rt5670_i2c_probe()
3067 regmap_update_bits(rt5670->regmap, RT5670_IRQ_CTRL1, in rt5670_i2c_probe()
3069 regmap_update_bits(rt5670->regmap, RT5670_JD_CTRL3, in rt5670_i2c_probe()
3073 switch (rt5670->pdata.jd_mode) { in rt5670_i2c_probe()
3075 regmap_update_bits(rt5670->regmap, RT5670_A_JD_CTRL1, in rt5670_i2c_probe()
3080 regmap_update_bits(rt5670->regmap, RT5670_A_JD_CTRL1, in rt5670_i2c_probe()
3085 regmap_update_bits(rt5670->regmap, RT5670_A_JD_CTRL1, in rt5670_i2c_probe()
3094 if (rt5670->pdata.dmic_en) { in rt5670_i2c_probe()
3095 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3099 switch (rt5670->pdata.dmic1_data_pin) { in rt5670_i2c_probe()
3101 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3107 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3110 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3116 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3119 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3128 switch (rt5670->pdata.dmic2_data_pin) { in rt5670_i2c_probe()
3130 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3136 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3139 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3148 switch (rt5670->pdata.dmic3_data_pin) { in rt5670_i2c_probe()
3150 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL2, in rt5670_i2c_probe()
3153 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()