Lines Matching +full:dsp +full:- +full:aif2 +full:- +full:bclk
2 * rt5670.c -- RT5670 ALSA SoC audio codec driver
28 #include <sound/soc-dapm.h>
35 #include "rt5670-dsp.h"
54 MODULE_PARM_DESC(quirk, "Board-specific quirk override");
426 * rt5670_headset_detect - Detect headset.
461 rt5670->jack_type = SND_JACK_HEADSET; in rt5670_headset_detect()
468 rt5670->jack_type = SND_JACK_HEADPHONE; in rt5670_headset_detect()
475 rt5670->jack_type = 0; in rt5670_headset_detect()
480 return rt5670->jack_type; in rt5670_headset_detect()
487 rt5670->jack_type_saved = rt5670->jack_type; in rt5670_jack_suspend()
496 if (rt5670->jack_type_saved) in rt5670_jack_resume()
520 struct snd_soc_jack_gpio *gpio = &rt5670->hp_gpio; in rt5670_irq_detection()
521 struct snd_soc_jack *jack = rt5670->jack; in rt5670_irq_detection()
522 int val, btn_type, report = jack->status; in rt5670_irq_detection()
524 if (rt5670->pdata.jd_mode == 1) /* 2 port */ in rt5670_irq_detection()
525 val = snd_soc_component_read32(rt5670->component, RT5670_A_JD_CTRL1) & 0x0070; in rt5670_irq_detection()
527 val = snd_soc_component_read32(rt5670->component, RT5670_A_JD_CTRL1) & 0x0020; in rt5670_irq_detection()
533 if (rt5670->jack_type == 0) { in rt5670_irq_detection()
534 report = rt5670_headset_detect(rt5670->component, 1); in rt5670_irq_detection()
536 gpio->debounce_time = 25; in rt5670_irq_detection()
540 if (snd_soc_component_read32(rt5670->component, RT5670_INT_IRQ_ST) & 0x4) { in rt5670_irq_detection()
543 btn_type = rt5670_button_detect(rt5670->component); in rt5670_irq_detection()
555 dev_err(rt5670->component->dev, in rt5670_irq_detection()
562 report = rt5670->jack_type; in rt5670_irq_detection()
570 snd_soc_component_update_bits(rt5670->component, RT5670_INT_IRQ_ST, 0x1, 0x0); in rt5670_irq_detection()
571 rt5670_headset_detect(rt5670->component, 0); in rt5670_irq_detection()
572 gpio->debounce_time = 150; /* for jack in */ in rt5670_irq_detection()
587 rt5670->jack = jack; in rt5670_set_jack_detect()
588 rt5670->hp_gpio.gpiod_dev = component->dev; in rt5670_set_jack_detect()
589 rt5670->hp_gpio.name = "headset"; in rt5670_set_jack_detect()
590 rt5670->hp_gpio.report = SND_JACK_HEADSET | in rt5670_set_jack_detect()
592 rt5670->hp_gpio.debounce_time = 150; in rt5670_set_jack_detect()
593 rt5670->hp_gpio.wake = true; in rt5670_set_jack_detect()
594 rt5670->hp_gpio.data = (struct rt5670_priv *)rt5670; in rt5670_set_jack_detect()
595 rt5670->hp_gpio.jack_status_check = rt5670_irq_detection; in rt5670_set_jack_detect()
597 ret = snd_soc_jack_add_gpios(rt5670->jack, 1, in rt5670_set_jack_detect()
598 &rt5670->hp_gpio); in rt5670_set_jack_detect()
600 dev_err(component->dev, "Adding jack GPIO failed\n"); in rt5670_set_jack_detect()
608 static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -4650, 150, 0);
609 static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -65625, 375, 0);
610 static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -3450, 150, 0);
611 static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -17625, 375, 0);
691 * set_dmic_clk - Set parameter of dmic.
703 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in set_dmic_clk()
707 rate = rt5670->sysclk / rl6231_get_pre_div(rt5670->regmap, in set_dmic_clk()
711 dev_err(component->dev, "Failed to set DMIC clock\n"); in set_dmic_clk()
721 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm); in is_sys_clk_from_pll()
724 if (rt5670->sysclk_src == RT5670_SCLK_S_PLL1) in is_sys_clk_from_pll()
733 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm); in is_using_asrc()
736 switch (source->shift) { in is_using_asrc()
785 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm); in can_use_asrc()
788 if (rt5670->sysclk > rt5670->lrck[RT5670_AIF1] * 384) in can_use_asrc()
796 * rt5670_sel_asrc_clk_src - select ASRC clock source for a set of filters
816 return -EINVAL; in rt5670_sel_asrc_clk_src()
1083 /* DAC1 L/R source */ /* MX-29 [9:8] [11:10] */
1100 /*DAC2 L/R source*/ /* MX-1B [6:4] [2:0] */
1123 /*RxDP source*/ /* MX-2D [15:13] */
1135 /* MX-2D [1] [0] */
1137 "DSP", "Bypass"
1144 SOC_DAPM_ENUM("DSP UL source", rt5670_dsp_ul_enum);
1150 SOC_DAPM_ENUM("DSP DL source", rt5670_dsp_dl_enum);
1153 /* MX-26 [15] */
1165 /* MX-27 MX-26 [12] */
1183 /* MX-27 MX-26 [11] */
1201 /* MX-27 MX26 [10] */
1218 /* MX-27 MX-26 [9:8] */
1235 /* MX-27 [0] */
1247 /* MX-28 [12] */
1257 /* MX-28 [11] */
1268 /* MX-28 [9:8] */
1278 /* MX-28 [1:0] */
1284 /* MX-28 [4] */
1294 /* MX-28 [3] */
1305 /* MX-2D [3:2] */
1307 "Slot 0-1", "Slot 2-3", "Slot 4-5", "Slot 6-7"
1316 /* MX-2F [15] */
1327 /* MX-2F [14:12] */
1338 /* MX-30 [5:4] */
1349 /* MX-31 [15] [13] [11] [9] */
1378 /* MX-FA [12] */
1389 /* MX-FA [11] */
1400 /* MX-FA [10] */
1411 /* MX-9D [9:8] */
1425 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in rt5670_hp_power_event()
1430 regmap_update_bits(rt5670->regmap, RT5670_CHARGE_PUMP, in rt5670_hp_power_event()
1432 regmap_update_bits(rt5670->regmap, RT5670_GEN_CTRL2, in rt5670_hp_power_event()
1435 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG1, in rt5670_hp_power_event()
1440 regmap_write(rt5670->regmap, RT5670_DEPOP_M2, 0x3100); in rt5670_hp_power_event()
1441 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8009); in rt5670_hp_power_event()
1442 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_power_event()
1445 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8019); in rt5670_hp_power_event()
1448 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x0004); in rt5670_hp_power_event()
1461 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in rt5670_hp_event()
1467 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_event()
1469 regmap_write(rt5670->regmap, RT5670_DEPOP_M3, 0x0772); in rt5670_hp_event()
1470 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x805d); in rt5670_hp_event()
1471 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x831d); in rt5670_hp_event()
1472 regmap_update_bits(rt5670->regmap, RT5670_GEN_CTRL2, in rt5670_hp_event()
1474 regmap_update_bits(rt5670->regmap, RT5670_HP_VOL, in rt5670_hp_event()
1477 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8019); in rt5670_hp_event()
1482 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_event()
1484 regmap_write(rt5670->regmap, RT5670_DEPOP_M3, 0x0772); in rt5670_hp_event()
1485 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x803d); in rt5670_hp_event()
1487 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x831d); in rt5670_hp_event()
1489 regmap_update_bits(rt5670->regmap, RT5670_HP_VOL, in rt5670_hp_event()
1493 regmap_update_bits(rt5670->regmap, in rt5670_hp_event()
1495 regmap_write(rt5670->regmap, RT5670_DEPOP_M1, 0x8019); in rt5670_hp_event()
1496 regmap_write(rt5670->regmap, RT5670_DEPOP_M3, 0x0707); in rt5670_hp_event()
1497 regmap_write(rt5670->regmap, RT5670_PR_BASE + in rt5670_hp_event()
1511 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in rt5670_spk_event()
1514 if (!rt5670->pdata.gpio1_is_ext_spk_en) in rt5670_spk_event()
1519 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2, in rt5670_spk_event()
1524 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2, in rt5670_spk_event()
1538 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in rt5670_bst1_event()
1561 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in rt5670_bst2_event()
1584 SND_SOC_DAPM_SUPPLY("I2S DSP", RT5670_PWR_DIG2,
1757 /* DSP */
1766 SND_SOC_DAPM_MUX("DSP UL Mux", SND_SOC_NOPM, 0, 0,
1768 SND_SOC_DAPM_MUX("DSP DL Mux", SND_SOC_NOPM, 0, 0,
1814 SND_SOC_DAPM_AIF_IN("AIF2RX", "AIF2 Playback", 0, SND_SOC_NOPM, 0, 0),
1815 SND_SOC_DAPM_AIF_OUT("AIF2TX", "AIF2 Capture", 0,
1818 /* Audio DSP */
1819 SND_SOC_DAPM_PGA("Audio DSP", SND_SOC_NOPM, 0, 0, NULL, 0),
2150 { "TDM Data Mux", "Slot 0-1", "Stereo1 ADC MIX" },
2151 { "TDM Data Mux", "Slot 2-3", "Mono ADC MIX" },
2152 { "TDM Data Mux", "Slot 4-5", "Stereo2 ADC MIX" },
2153 { "TDM Data Mux", "Slot 6-7", "IF2 DAC" },
2155 { "DSP UL Mux", "Bypass", "TDM Data Mux" },
2156 { "DSP UL Mux", NULL, "I2S DSP" },
2157 { "DSP DL Mux", "Bypass", "RxDP Mux" },
2158 { "DSP DL Mux", NULL, "I2S DSP" },
2160 { "TxDP_ADC_L", NULL, "DSP UL Mux" },
2161 { "TxDP_ADC_R", NULL, "DSP UL Mux" },
2162 { "TxDC_DAC", NULL, "DSP DL Mux" },
2225 { "Audio DSP", NULL, "DAC1 MIXL" },
2226 { "Audio DSP", NULL, "DAC1 MIXR" },
2355 struct snd_soc_component *component = dai->component; in rt5670_hw_params()
2360 rt5670->lrck[dai->id] = params_rate(params); in rt5670_hw_params()
2361 pre_div = rl6231_get_clk_info(rt5670->sysclk, rt5670->lrck[dai->id]); in rt5670_hw_params()
2363 dev_err(component->dev, "Unsupported clock setting %d for DAI %d\n", in rt5670_hw_params()
2364 rt5670->lrck[dai->id], dai->id); in rt5670_hw_params()
2365 return -EINVAL; in rt5670_hw_params()
2369 dev_err(component->dev, "Unsupported frame size: %d\n", frame_size); in rt5670_hw_params()
2370 return -EINVAL; in rt5670_hw_params()
2373 rt5670->bclk[dai->id] = rt5670->lrck[dai->id] * (32 << bclk_ms); in rt5670_hw_params()
2375 dev_dbg(dai->dev, "bclk is %dHz and lrck is %dHz\n", in rt5670_hw_params()
2376 rt5670->bclk[dai->id], rt5670->lrck[dai->id]); in rt5670_hw_params()
2377 dev_dbg(dai->dev, "bclk_ms is %d and pre_div is %d for iis %d\n", in rt5670_hw_params()
2378 bclk_ms, pre_div, dai->id); in rt5670_hw_params()
2393 return -EINVAL; in rt5670_hw_params()
2396 switch (dai->id) { in rt5670_hw_params()
2414 dev_err(component->dev, "Invalid dai->id: %d\n", dai->id); in rt5670_hw_params()
2415 return -EINVAL; in rt5670_hw_params()
2423 struct snd_soc_component *component = dai->component; in rt5670_set_dai_fmt()
2429 rt5670->master[dai->id] = 1; in rt5670_set_dai_fmt()
2433 rt5670->master[dai->id] = 0; in rt5670_set_dai_fmt()
2436 return -EINVAL; in rt5670_set_dai_fmt()
2446 return -EINVAL; in rt5670_set_dai_fmt()
2462 return -EINVAL; in rt5670_set_dai_fmt()
2465 switch (dai->id) { in rt5670_set_dai_fmt()
2477 dev_err(component->dev, "Invalid dai->id: %d\n", dai->id); in rt5670_set_dai_fmt()
2478 return -EINVAL; in rt5670_set_dai_fmt()
2500 dev_err(component->dev, "Invalid clock id (%d)\n", clk_id); in rt5670_set_codec_sysclk()
2501 return -EINVAL; in rt5670_set_codec_sysclk()
2505 rt5670->sysclk = freq; in rt5670_set_codec_sysclk()
2507 rt5670->sysclk_src = clk_id; in rt5670_set_codec_sysclk()
2509 dev_dbg(component->dev, "Sysclk : %dHz clock id : %d\n", freq, clk_id); in rt5670_set_codec_sysclk()
2517 struct snd_soc_component *component = dai->component; in rt5670_set_dai_pll()
2522 if (source == rt5670->pll_src && freq_in == rt5670->pll_in && in rt5670_set_dai_pll()
2523 freq_out == rt5670->pll_out) in rt5670_set_dai_pll()
2527 dev_dbg(component->dev, "PLL disabled\n"); in rt5670_set_dai_pll()
2529 rt5670->pll_in = 0; in rt5670_set_dai_pll()
2530 rt5670->pll_out = 0; in rt5670_set_dai_pll()
2545 switch (dai->id) { in rt5670_set_dai_pll()
2555 dev_err(component->dev, "Invalid dai->id: %d\n", dai->id); in rt5670_set_dai_pll()
2556 return -EINVAL; in rt5670_set_dai_pll()
2560 dev_err(component->dev, "Unknown PLL source %d\n", source); in rt5670_set_dai_pll()
2561 return -EINVAL; in rt5670_set_dai_pll()
2566 dev_err(component->dev, "Unsupport input clock %d\n", freq_in); in rt5670_set_dai_pll()
2570 dev_dbg(component->dev, "bypass=%d m=%d n=%d k=%d\n", in rt5670_set_dai_pll()
2580 rt5670->pll_in = freq_in; in rt5670_set_dai_pll()
2581 rt5670->pll_out = freq_out; in rt5670_set_dai_pll()
2582 rt5670->pll_src = source; in rt5670_set_dai_pll()
2590 struct snd_soc_component *component = dai->component; in rt5670_set_tdm_slot()
2609 return -EINVAL; in rt5670_set_tdm_slot()
2625 return -EINVAL; in rt5670_set_tdm_slot()
2635 struct snd_soc_component *component = dai->component; in rt5670_set_bclk_ratio()
2637 dev_dbg(component->dev, "%s ratio=%d\n", __func__, ratio); in rt5670_set_bclk_ratio()
2638 if (dai->id != RT5670_AIF1) in rt5670_set_bclk_ratio()
2684 if (rt5670->pdata.jd_mode) in rt5670_set_bias_level()
2730 dev_err(component->dev, in rt5670_probe()
2732 return -ENODEV; in rt5670_probe()
2734 rt5670->component = component; in rt5670_probe()
2743 regmap_write(rt5670->regmap, RT5670_RESET, 0); in rt5670_remove()
2744 snd_soc_jack_free_gpios(rt5670->jack, 1, &rt5670->hp_gpio); in rt5670_remove()
2752 regcache_cache_only(rt5670->regmap, true); in rt5670_suspend()
2753 regcache_mark_dirty(rt5670->regmap); in rt5670_suspend()
2761 regcache_cache_only(rt5670->regmap, false); in rt5670_resume()
2762 regcache_sync(rt5670->regmap); in rt5670_resume()
2785 .name = "rt5670-aif1",
2805 .name = "rt5670-aif2",
2808 .stream_name = "AIF2 Playback",
2815 .stream_name = "AIF2 Capture",
2879 rt5670_quirk = (unsigned long)id->driver_data; in rt5670_quirk_cb()
2962 struct rt5670_platform_data *pdata = dev_get_platdata(&i2c->dev); in rt5670_i2c_probe()
2967 rt5670 = devm_kzalloc(&i2c->dev, in rt5670_i2c_probe()
2971 return -ENOMEM; in rt5670_i2c_probe()
2976 rt5670->pdata = *pdata; in rt5670_i2c_probe()
2980 dev_info(&i2c->dev, "Overriding quirk 0x%x => 0x%x\n", in rt5670_i2c_probe()
2986 rt5670->pdata.dev_gpio = true; in rt5670_i2c_probe()
2987 dev_info(&i2c->dev, "quirk dev_gpio\n"); in rt5670_i2c_probe()
2990 rt5670->pdata.gpio1_is_ext_spk_en = true; in rt5670_i2c_probe()
2991 dev_info(&i2c->dev, "quirk GPIO1 is external speaker enable\n"); in rt5670_i2c_probe()
2994 rt5670->pdata.in2_diff = true; in rt5670_i2c_probe()
2995 dev_info(&i2c->dev, "quirk IN2_DIFF\n"); in rt5670_i2c_probe()
2998 rt5670->pdata.dmic_en = true; in rt5670_i2c_probe()
2999 dev_info(&i2c->dev, "quirk DMIC enabled\n"); in rt5670_i2c_probe()
3002 rt5670->pdata.dmic1_data_pin = RT5670_DMIC_DATA_IN2P; in rt5670_i2c_probe()
3003 dev_info(&i2c->dev, "quirk DMIC1 on IN2P pin\n"); in rt5670_i2c_probe()
3006 rt5670->pdata.dmic1_data_pin = RT5670_DMIC_DATA_GPIO6; in rt5670_i2c_probe()
3007 dev_info(&i2c->dev, "quirk DMIC1 on GPIO6 pin\n"); in rt5670_i2c_probe()
3010 rt5670->pdata.dmic1_data_pin = RT5670_DMIC_DATA_GPIO7; in rt5670_i2c_probe()
3011 dev_info(&i2c->dev, "quirk DMIC1 on GPIO7 pin\n"); in rt5670_i2c_probe()
3014 rt5670->pdata.dmic2_data_pin = RT5670_DMIC_DATA_IN3N; in rt5670_i2c_probe()
3015 dev_info(&i2c->dev, "quirk DMIC2 on INR pin\n"); in rt5670_i2c_probe()
3018 rt5670->pdata.dmic2_data_pin = RT5670_DMIC_DATA_GPIO8; in rt5670_i2c_probe()
3019 dev_info(&i2c->dev, "quirk DMIC2 on GPIO8 pin\n"); in rt5670_i2c_probe()
3022 rt5670->pdata.dmic3_data_pin = RT5670_DMIC_DATA_GPIO5; in rt5670_i2c_probe()
3023 dev_info(&i2c->dev, "quirk DMIC3 on GPIO5 pin\n"); in rt5670_i2c_probe()
3027 rt5670->pdata.jd_mode = 1; in rt5670_i2c_probe()
3028 dev_info(&i2c->dev, "quirk JD mode 1\n"); in rt5670_i2c_probe()
3031 rt5670->pdata.jd_mode = 2; in rt5670_i2c_probe()
3032 dev_info(&i2c->dev, "quirk JD mode 2\n"); in rt5670_i2c_probe()
3035 rt5670->pdata.jd_mode = 3; in rt5670_i2c_probe()
3036 dev_info(&i2c->dev, "quirk JD mode 3\n"); in rt5670_i2c_probe()
3039 rt5670->regmap = devm_regmap_init_i2c(i2c, &rt5670_regmap); in rt5670_i2c_probe()
3040 if (IS_ERR(rt5670->regmap)) { in rt5670_i2c_probe()
3041 ret = PTR_ERR(rt5670->regmap); in rt5670_i2c_probe()
3042 dev_err(&i2c->dev, "Failed to allocate register map: %d\n", in rt5670_i2c_probe()
3047 regmap_read(rt5670->regmap, RT5670_VENDOR_ID2, &val); in rt5670_i2c_probe()
3049 dev_err(&i2c->dev, in rt5670_i2c_probe()
3051 return -ENODEV; in rt5670_i2c_probe()
3054 regmap_write(rt5670->regmap, RT5670_RESET, 0); in rt5670_i2c_probe()
3055 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG1, in rt5670_i2c_probe()
3060 regmap_write(rt5670->regmap, RT5670_RESET, 0); in rt5670_i2c_probe()
3062 regmap_read(rt5670->regmap, RT5670_VENDOR_ID, &val); in rt5670_i2c_probe()
3064 regmap_write(rt5670->regmap, RT5670_GPIO_CTRL3, 0x0980); in rt5670_i2c_probe()
3066 regmap_write(rt5670->regmap, RT5670_GPIO_CTRL3, 0x0d00); in rt5670_i2c_probe()
3068 ret = regmap_register_patch(rt5670->regmap, init_list, in rt5670_i2c_probe()
3071 dev_warn(&i2c->dev, "Failed to apply regmap patch: %d\n", ret); in rt5670_i2c_probe()
3073 regmap_update_bits(rt5670->regmap, RT5670_DIG_MISC, in rt5670_i2c_probe()
3076 if (rt5670->pdata.in2_diff) in rt5670_i2c_probe()
3077 regmap_update_bits(rt5670->regmap, RT5670_IN2, in rt5670_i2c_probe()
3080 if (rt5670->pdata.dev_gpio) { in rt5670_i2c_probe()
3082 regmap_write(rt5670->regmap, RT5670_IL_CMD, 0x0000); in rt5670_i2c_probe()
3083 regmap_write(rt5670->regmap, RT5670_IL_CMD2, 0x0010); in rt5670_i2c_probe()
3084 regmap_write(rt5670->regmap, RT5670_IL_CMD3, 0x0014); in rt5670_i2c_probe()
3086 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3088 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2, in rt5670_i2c_probe()
3092 if (rt5670->pdata.gpio1_is_ext_spk_en) { in rt5670_i2c_probe()
3093 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3095 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2, in rt5670_i2c_probe()
3099 if (rt5670->pdata.jd_mode) { in rt5670_i2c_probe()
3100 regmap_update_bits(rt5670->regmap, RT5670_GLB_CLK, in rt5670_i2c_probe()
3102 rt5670->sysclk = 0; in rt5670_i2c_probe()
3103 rt5670->sysclk_src = RT5670_SCLK_S_RCCLK; in rt5670_i2c_probe()
3104 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG1, in rt5670_i2c_probe()
3106 regmap_update_bits(rt5670->regmap, RT5670_PWR_ANLG2, in rt5670_i2c_probe()
3108 regmap_update_bits(rt5670->regmap, RT5670_IRQ_CTRL1, in rt5670_i2c_probe()
3110 regmap_update_bits(rt5670->regmap, RT5670_JD_CTRL3, in rt5670_i2c_probe()
3114 switch (rt5670->pdata.jd_mode) { in rt5670_i2c_probe()
3116 regmap_update_bits(rt5670->regmap, RT5670_A_JD_CTRL1, in rt5670_i2c_probe()
3121 regmap_update_bits(rt5670->regmap, RT5670_A_JD_CTRL1, in rt5670_i2c_probe()
3126 regmap_update_bits(rt5670->regmap, RT5670_A_JD_CTRL1, in rt5670_i2c_probe()
3135 if (rt5670->pdata.dmic_en) { in rt5670_i2c_probe()
3136 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3140 switch (rt5670->pdata.dmic1_data_pin) { in rt5670_i2c_probe()
3142 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3148 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3151 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3157 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3160 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3169 switch (rt5670->pdata.dmic2_data_pin) { in rt5670_i2c_probe()
3171 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3177 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL1, in rt5670_i2c_probe()
3180 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3189 switch (rt5670->pdata.dmic3_data_pin) { in rt5670_i2c_probe()
3191 regmap_update_bits(rt5670->regmap, RT5670_DMIC_CTRL2, in rt5670_i2c_probe()
3194 regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL1, in rt5670_i2c_probe()
3201 dev_err(&i2c->dev, in rt5670_i2c_probe()
3211 pm_runtime_enable(&i2c->dev); in rt5670_i2c_probe()
3212 pm_request_idle(&i2c->dev); in rt5670_i2c_probe()
3214 ret = devm_snd_soc_register_component(&i2c->dev, in rt5670_i2c_probe()
3220 pm_runtime_put(&i2c->dev); in rt5670_i2c_probe()
3224 pm_runtime_disable(&i2c->dev); in rt5670_i2c_probe()
3231 pm_runtime_disable(&i2c->dev); in rt5670_i2c_remove()