Lines Matching refs:rt5659
1302 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_headset_detect() local
1334 rt5659->jack_type = SND_JACK_HEADSET; in rt5659_headset_detect()
1339 rt5659->jack_type = SND_JACK_HEADPHONE; in rt5659_headset_detect()
1347 if (rt5659->jack_type == SND_JACK_HEADSET) in rt5659_headset_detect()
1349 rt5659->jack_type = 0; in rt5659_headset_detect()
1352 dev_dbg(component->dev, "jack_type = %d\n", rt5659->jack_type); in rt5659_headset_detect()
1353 return rt5659->jack_type; in rt5659_headset_detect()
1369 struct rt5659_priv *rt5659 = data; in rt5659_irq() local
1372 &rt5659->jack_detect_work, msecs_to_jiffies(250)); in rt5659_irq()
1380 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_jack_detect() local
1382 rt5659->hs_jack = hs_jack; in rt5659_set_jack_detect()
1384 rt5659_irq(0, rt5659); in rt5659_set_jack_detect()
1392 struct rt5659_priv *rt5659 = in rt5659_jack_detect_work() local
1396 if (!rt5659->component) in rt5659_jack_detect_work()
1399 val = snd_soc_component_read32(rt5659->component, RT5659_INT_ST_1) & 0x0080; in rt5659_jack_detect_work()
1402 if (rt5659->jack_type == 0) { in rt5659_jack_detect_work()
1404 report = rt5659_headset_detect(rt5659->component, 1); in rt5659_jack_detect_work()
1408 btn_type = rt5659_button_detect(rt5659->component); in rt5659_jack_detect_work()
1441 dev_err(rt5659->component->dev, in rt5659_jack_detect_work()
1449 report = rt5659->jack_type; in rt5659_jack_detect_work()
1453 report = rt5659_headset_detect(rt5659->component, 0); in rt5659_jack_detect_work()
1456 snd_soc_jack_report(rt5659->hs_jack, report, SND_JACK_HEADSET | in rt5659_jack_detect_work()
1463 struct rt5659_priv *rt5659 = in rt5659_jack_detect_intel_hd_header() local
1468 if (!rt5659->hs_jack) in rt5659_jack_detect_intel_hd_header()
1472 regmap_read(rt5659->regmap, RT5659_GPIO_STA, &value); in rt5659_jack_detect_intel_hd_header()
1475 if (hp_flag != rt5659->hda_hp_plugged) { in rt5659_jack_detect_intel_hd_header()
1476 rt5659->hda_hp_plugged = hp_flag; in rt5659_jack_detect_intel_hd_header()
1479 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_1, in rt5659_jack_detect_intel_hd_header()
1481 rt5659->jack_type |= SND_JACK_HEADPHONE; in rt5659_jack_detect_intel_hd_header()
1483 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_1, in rt5659_jack_detect_intel_hd_header()
1485 rt5659->jack_type = rt5659->jack_type & in rt5659_jack_detect_intel_hd_header()
1489 snd_soc_jack_report(rt5659->hs_jack, rt5659->jack_type, in rt5659_jack_detect_intel_hd_header()
1494 regmap_read(rt5659->regmap, RT5659_4BTN_IL_CMD_1, &value); in rt5659_jack_detect_intel_hd_header()
1495 regmap_write(rt5659->regmap, RT5659_4BTN_IL_CMD_1, value); in rt5659_jack_detect_intel_hd_header()
1498 if (mic_flag != rt5659->hda_mic_plugged) { in rt5659_jack_detect_intel_hd_header()
1499 rt5659->hda_mic_plugged = mic_flag; in rt5659_jack_detect_intel_hd_header()
1501 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_jack_detect_intel_hd_header()
1503 rt5659->jack_type |= SND_JACK_MICROPHONE; in rt5659_jack_detect_intel_hd_header()
1505 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_jack_detect_intel_hd_header()
1507 rt5659->jack_type = rt5659->jack_type in rt5659_jack_detect_intel_hd_header()
1511 snd_soc_jack_report(rt5659->hs_jack, rt5659->jack_type, in rt5659_jack_detect_intel_hd_header()
1606 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in set_dmic_clk() local
1609 pd = rl6231_get_pre_div(rt5659->regmap, in set_dmic_clk()
1611 idx = rl6231_calc_dmic_clk(rt5659->sysclk / pd); in set_dmic_clk()
3314 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_hw_params() local
3318 rt5659->lrck[dai->id] = params_rate(params); in rt5659_hw_params()
3319 pre_div = rl6231_get_clk_info(rt5659->sysclk, rt5659->lrck[dai->id]); in rt5659_hw_params()
3322 rt5659->lrck[dai->id], dai->id); in rt5659_hw_params()
3332 rt5659->lrck[dai->id], pre_div, dai->id); in rt5659_hw_params()
3376 switch (rt5659->lrck[dai->id]) { in rt5659_hw_params()
3397 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_dai_fmt() local
3402 rt5659->master[dai->id] = 1; in rt5659_set_dai_fmt()
3406 rt5659->master[dai->id] = 0; in rt5659_set_dai_fmt()
3464 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_component_sysclk() local
3467 if (freq == rt5659->sysclk && clk_id == rt5659->sysclk_src) in rt5659_set_component_sysclk()
3486 rt5659->sysclk = freq; in rt5659_set_component_sysclk()
3487 rt5659->sysclk_src = clk_id; in rt5659_set_component_sysclk()
3499 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_component_pll() local
3503 if (source == rt5659->pll_src && freq_in == rt5659->pll_in && in rt5659_set_component_pll()
3504 freq_out == rt5659->pll_out) in rt5659_set_component_pll()
3510 rt5659->pll_in = 0; in rt5659_set_component_pll()
3511 rt5659->pll_out = 0; in rt5659_set_component_pll()
3555 rt5659->pll_in = freq_in; in rt5659_set_component_pll()
3556 rt5659->pll_out = freq_out; in rt5659_set_component_pll()
3557 rt5659->pll_src = source; in rt5659_set_component_pll()
3617 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_bclk_ratio() local
3621 rt5659->bclk[dai->id] = ratio; in rt5659_set_bclk_ratio()
3645 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_bias_level() local
3650 regmap_update_bits(rt5659->regmap, RT5659_DIG_MISC, in rt5659_set_bias_level()
3652 regmap_update_bits(rt5659->regmap, RT5659_PWR_DIG_1, in rt5659_set_bias_level()
3654 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_set_bias_level()
3658 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_set_bias_level()
3665 ret = clk_prepare_enable(rt5659->mclk); in rt5659_set_bias_level()
3675 regmap_update_bits(rt5659->regmap, RT5659_PWR_DIG_1, in rt5659_set_bias_level()
3677 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_set_bias_level()
3681 regmap_update_bits(rt5659->regmap, RT5659_DIG_MISC, in rt5659_set_bias_level()
3683 clk_disable_unprepare(rt5659->mclk); in rt5659_set_bias_level()
3695 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_probe() local
3697 rt5659->component = component; in rt5659_probe()
3704 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_remove() local
3706 regmap_write(rt5659->regmap, RT5659_RESET, 0); in rt5659_remove()
3712 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_suspend() local
3714 regcache_cache_only(rt5659->regmap, true); in rt5659_suspend()
3715 regcache_mark_dirty(rt5659->regmap); in rt5659_suspend()
3721 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_resume() local
3723 regcache_cache_only(rt5659->regmap, false); in rt5659_resume()
3724 regcache_sync(rt5659->regmap); in rt5659_resume()
3842 static int rt5659_parse_dt(struct rt5659_priv *rt5659, struct device *dev) in rt5659_parse_dt() argument
3844 rt5659->pdata.in1_diff = device_property_read_bool(dev, in rt5659_parse_dt()
3846 rt5659->pdata.in3_diff = device_property_read_bool(dev, in rt5659_parse_dt()
3848 rt5659->pdata.in4_diff = device_property_read_bool(dev, in rt5659_parse_dt()
3853 &rt5659->pdata.dmic1_data_pin); in rt5659_parse_dt()
3855 &rt5659->pdata.dmic2_data_pin); in rt5659_parse_dt()
3857 &rt5659->pdata.jd_src); in rt5659_parse_dt()
3862 static void rt5659_calibrate(struct rt5659_priv *rt5659) in rt5659_calibrate() argument
3868 regmap_write(rt5659->regmap, RT5659_BIAS_CUR_CTRL_8, 0xa502); in rt5659_calibrate()
3869 regmap_write(rt5659->regmap, RT5659_CHOP_DAC, 0x3030); in rt5659_calibrate()
3871 regmap_write(rt5659->regmap, RT5659_PRE_DIV_1, 0xef00); in rt5659_calibrate()
3872 regmap_write(rt5659->regmap, RT5659_PRE_DIV_2, 0xeffc); in rt5659_calibrate()
3873 regmap_write(rt5659->regmap, RT5659_MICBIAS_2, 0x0280); in rt5659_calibrate()
3874 regmap_write(rt5659->regmap, RT5659_DIG_MISC, 0x0001); in rt5659_calibrate()
3875 regmap_write(rt5659->regmap, RT5659_GLB_CLK, 0x8000); in rt5659_calibrate()
3877 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_1, 0xaa7e); in rt5659_calibrate()
3879 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_1, 0xfe7e); in rt5659_calibrate()
3881 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_3, 0x0004); in rt5659_calibrate()
3882 regmap_write(rt5659->regmap, RT5659_PWR_DIG_2, 0x0400); in rt5659_calibrate()
3884 regmap_write(rt5659->regmap, RT5659_PWR_DIG_1, 0x0080); in rt5659_calibrate()
3886 regmap_write(rt5659->regmap, RT5659_DEPOP_1, 0x0009); in rt5659_calibrate()
3888 regmap_write(rt5659->regmap, RT5659_PWR_DIG_1, 0x0f80); in rt5659_calibrate()
3890 regmap_write(rt5659->regmap, RT5659_HP_CHARGE_PUMP_1, 0x0e16); in rt5659_calibrate()
3894 regmap_write(rt5659->regmap, RT5659_CAL_REC, 0x0505); in rt5659_calibrate()
3896 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_3, 0x0184); in rt5659_calibrate()
3897 regmap_write(rt5659->regmap, RT5659_CALIB_ADC_CTRL, 0x3c05); in rt5659_calibrate()
3898 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x20c1); in rt5659_calibrate()
3901 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x2cc1); in rt5659_calibrate()
3902 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, 0x5100); in rt5659_calibrate()
3903 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_7, 0x0014); in rt5659_calibrate()
3904 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, 0xd100); in rt5659_calibrate()
3908 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x2cc1); in rt5659_calibrate()
3909 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, 0x4900); in rt5659_calibrate()
3910 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_7, 0x0016); in rt5659_calibrate()
3911 regmap_update_bits(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, in rt5659_calibrate()
3916 regmap_read(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, &value); in rt5659_calibrate()
3923 dev_err(rt5659->component->dev, in rt5659_calibrate()
3932 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x2cc1); in rt5659_calibrate()
3933 regmap_write(rt5659->regmap, RT5659_HP_VOL, 0x0000); in rt5659_calibrate()
3934 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, 0x4500); in rt5659_calibrate()
3935 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_7, 0x001f); in rt5659_calibrate()
3936 regmap_update_bits(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, in rt5659_calibrate()
3941 regmap_read(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, &value); in rt5659_calibrate()
3948 dev_err(rt5659->component->dev, in rt5659_calibrate()
3956 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_7, 0x0000); in rt5659_calibrate()
3957 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x20c0); in rt5659_calibrate()
3961 regmap_write(rt5659->regmap, RT5659_CLASSD_0, 0x2021); in rt5659_calibrate()
3962 regmap_write(rt5659->regmap, RT5659_CLASSD_CTRL_1, 0x0260); in rt5659_calibrate()
3963 regmap_write(rt5659->regmap, RT5659_PWR_MIXER, 0x3000); in rt5659_calibrate()
3964 regmap_write(rt5659->regmap, RT5659_PWR_VOL, 0xc000); in rt5659_calibrate()
3965 regmap_write(rt5659->regmap, RT5659_A_DAC_MUX, 0x000c); in rt5659_calibrate()
3966 regmap_write(rt5659->regmap, RT5659_DIG_MISC, 0x8000); in rt5659_calibrate()
3967 regmap_write(rt5659->regmap, RT5659_SPO_VOL, 0x0808); in rt5659_calibrate()
3968 regmap_write(rt5659->regmap, RT5659_SPK_L_MIXER, 0x001e); in rt5659_calibrate()
3969 regmap_write(rt5659->regmap, RT5659_SPK_R_MIXER, 0x001e); in rt5659_calibrate()
3970 regmap_write(rt5659->regmap, RT5659_CLASSD_1, 0x0803); in rt5659_calibrate()
3971 regmap_write(rt5659->regmap, RT5659_CLASSD_2, 0x0554); in rt5659_calibrate()
3972 regmap_write(rt5659->regmap, RT5659_SPO_AMP_GAIN, 0x1103); in rt5659_calibrate()
3975 regmap_write(rt5659->regmap, RT5659_CAL_REC, 0x0909); in rt5659_calibrate()
3976 regmap_update_bits(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x0001, in rt5659_calibrate()
3980 regmap_write(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_3, 0x0000); in rt5659_calibrate()
3981 regmap_write(rt5659->regmap, RT5659_CLASSD_0, 0x0021); in rt5659_calibrate()
3982 regmap_write(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_1, 0x3e80); in rt5659_calibrate()
3983 regmap_update_bits(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_1, in rt5659_calibrate()
3988 regmap_read(rt5659->regmap, in rt5659_calibrate()
3996 dev_err(rt5659->component->dev, in rt5659_calibrate()
4006 regmap_write(rt5659->regmap, RT5659_DIG_MISC, 0x0000); in rt5659_calibrate()
4007 regmap_write(rt5659->regmap, RT5659_MONOMIX_IN_GAIN, 0x021f); in rt5659_calibrate()
4008 regmap_write(rt5659->regmap, RT5659_MONO_OUT, 0x480a); in rt5659_calibrate()
4010 regmap_write(rt5659->regmap, RT5659_MONO_GAIN, 0x0003); in rt5659_calibrate()
4011 regmap_write(rt5659->regmap, RT5659_MONO_NG2_CTRL_5, 0x0009); in rt5659_calibrate()
4014 regmap_write(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_3, 0x000f); in rt5659_calibrate()
4015 regmap_write(rt5659->regmap, RT5659_MONO_AMP_CALIB_CTRL_1, 0x1e00); in rt5659_calibrate()
4016 regmap_update_bits(rt5659->regmap, RT5659_MONO_AMP_CALIB_CTRL_1, in rt5659_calibrate()
4021 regmap_read(rt5659->regmap, RT5659_MONO_AMP_CALIB_CTRL_1, in rt5659_calibrate()
4029 dev_err(rt5659->component->dev, in rt5659_calibrate()
4037 regmap_write(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_3, 0x0003); in rt5659_calibrate()
4041 regmap_write(rt5659->regmap, RT5659_CAL_REC, 0x0808); in rt5659_calibrate()
4042 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_3, 0x0000); in rt5659_calibrate()
4043 regmap_write(rt5659->regmap, RT5659_CALIB_ADC_CTRL, 0x2005); in rt5659_calibrate()
4044 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x20c0); in rt5659_calibrate()
4045 regmap_write(rt5659->regmap, RT5659_DEPOP_1, 0x0000); in rt5659_calibrate()
4046 regmap_write(rt5659->regmap, RT5659_CLASSD_1, 0x0011); in rt5659_calibrate()
4047 regmap_write(rt5659->regmap, RT5659_CLASSD_2, 0x0150); in rt5659_calibrate()
4048 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_1, 0xfe3e); in rt5659_calibrate()
4049 regmap_write(rt5659->regmap, RT5659_MONO_OUT, 0xc80a); in rt5659_calibrate()
4050 regmap_write(rt5659->regmap, RT5659_MONO_AMP_CALIB_CTRL_1, 0x1e04); in rt5659_calibrate()
4051 regmap_write(rt5659->regmap, RT5659_PWR_MIXER, 0x0000); in rt5659_calibrate()
4052 regmap_write(rt5659->regmap, RT5659_PWR_VOL, 0x0000); in rt5659_calibrate()
4053 regmap_write(rt5659->regmap, RT5659_PWR_DIG_1, 0x0000); in rt5659_calibrate()
4054 regmap_write(rt5659->regmap, RT5659_PWR_DIG_2, 0x0000); in rt5659_calibrate()
4055 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_1, 0x003e); in rt5659_calibrate()
4056 regmap_write(rt5659->regmap, RT5659_CLASSD_CTRL_1, 0x0060); in rt5659_calibrate()
4057 regmap_write(rt5659->regmap, RT5659_CLASSD_0, 0x2021); in rt5659_calibrate()
4058 regmap_write(rt5659->regmap, RT5659_GLB_CLK, 0x0000); in rt5659_calibrate()
4059 regmap_write(rt5659->regmap, RT5659_MICBIAS_2, 0x0080); in rt5659_calibrate()
4060 regmap_write(rt5659->regmap, RT5659_HP_VOL, 0x8080); in rt5659_calibrate()
4061 regmap_write(rt5659->regmap, RT5659_HP_CHARGE_PUMP_1, 0x0c16); in rt5659_calibrate()
4064 static void rt5659_intel_hd_header_probe_setup(struct rt5659_priv *rt5659) in rt5659_intel_hd_header_probe_setup() argument
4068 regmap_read(rt5659->regmap, RT5659_GPIO_STA, &value); in rt5659_intel_hd_header_probe_setup()
4070 rt5659->hda_hp_plugged = true; in rt5659_intel_hd_header_probe_setup()
4071 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_1, in rt5659_intel_hd_header_probe_setup()
4074 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_1, in rt5659_intel_hd_header_probe_setup()
4078 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_intel_hd_header_probe_setup()
4082 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_intel_hd_header_probe_setup()
4085 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_3, RT5659_PWR_LDO2, in rt5659_intel_hd_header_probe_setup()
4087 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_2, RT5659_PWR_MB1, in rt5659_intel_hd_header_probe_setup()
4089 regmap_update_bits(rt5659->regmap, RT5659_PWR_VOL, RT5659_PWR_MIC_DET, in rt5659_intel_hd_header_probe_setup()
4093 regmap_update_bits(rt5659->regmap, RT5659_4BTN_IL_CMD_2, in rt5659_intel_hd_header_probe_setup()
4095 regmap_read(rt5659->regmap, RT5659_4BTN_IL_CMD_1, &value); in rt5659_intel_hd_header_probe_setup()
4096 regmap_write(rt5659->regmap, RT5659_4BTN_IL_CMD_1, value); in rt5659_intel_hd_header_probe_setup()
4097 regmap_read(rt5659->regmap, RT5659_4BTN_IL_CMD_1, &value); in rt5659_intel_hd_header_probe_setup()
4100 rt5659->hda_mic_plugged = true; in rt5659_intel_hd_header_probe_setup()
4101 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_intel_hd_header_probe_setup()
4104 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_intel_hd_header_probe_setup()
4108 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_intel_hd_header_probe_setup()
4116 struct rt5659_priv *rt5659; in rt5659_i2c_probe() local
4120 rt5659 = devm_kzalloc(&i2c->dev, sizeof(struct rt5659_priv), in rt5659_i2c_probe()
4123 if (rt5659 == NULL) in rt5659_i2c_probe()
4126 i2c_set_clientdata(i2c, rt5659); in rt5659_i2c_probe()
4129 rt5659->pdata = *pdata; in rt5659_i2c_probe()
4131 rt5659_parse_dt(rt5659, &i2c->dev); in rt5659_i2c_probe()
4133 rt5659->gpiod_ldo1_en = devm_gpiod_get_optional(&i2c->dev, "ldo1-en", in rt5659_i2c_probe()
4135 if (IS_ERR(rt5659->gpiod_ldo1_en)) in rt5659_i2c_probe()
4138 rt5659->gpiod_reset = devm_gpiod_get_optional(&i2c->dev, "reset", in rt5659_i2c_probe()
4144 rt5659->regmap = devm_regmap_init_i2c(i2c, &rt5659_regmap); in rt5659_i2c_probe()
4145 if (IS_ERR(rt5659->regmap)) { in rt5659_i2c_probe()
4146 ret = PTR_ERR(rt5659->regmap); in rt5659_i2c_probe()
4152 regmap_read(rt5659->regmap, RT5659_DEVICE_ID, &val); in rt5659_i2c_probe()
4159 regmap_write(rt5659->regmap, RT5659_RESET, 0); in rt5659_i2c_probe()
4162 rt5659->mclk = devm_clk_get(&i2c->dev, "mclk"); in rt5659_i2c_probe()
4163 if (IS_ERR(rt5659->mclk)) { in rt5659_i2c_probe()
4164 if (PTR_ERR(rt5659->mclk) != -ENOENT) in rt5659_i2c_probe()
4165 return PTR_ERR(rt5659->mclk); in rt5659_i2c_probe()
4167 rt5659->mclk = NULL; in rt5659_i2c_probe()
4170 rt5659_calibrate(rt5659); in rt5659_i2c_probe()
4173 if (rt5659->pdata.in1_diff) in rt5659_i2c_probe()
4174 regmap_update_bits(rt5659->regmap, RT5659_IN1_IN2, in rt5659_i2c_probe()
4176 if (rt5659->pdata.in3_diff) in rt5659_i2c_probe()
4177 regmap_update_bits(rt5659->regmap, RT5659_IN3_IN4, in rt5659_i2c_probe()
4179 if (rt5659->pdata.in4_diff) in rt5659_i2c_probe()
4180 regmap_update_bits(rt5659->regmap, RT5659_IN3_IN4, in rt5659_i2c_probe()
4184 if (rt5659->pdata.dmic1_data_pin != RT5659_DMIC1_NULL || in rt5659_i2c_probe()
4185 rt5659->pdata.dmic2_data_pin != RT5659_DMIC2_NULL) { in rt5659_i2c_probe()
4186 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4189 switch (rt5659->pdata.dmic1_data_pin) { in rt5659_i2c_probe()
4191 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4196 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4200 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4202 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4207 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4209 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4214 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4216 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4226 switch (rt5659->pdata.dmic2_data_pin) { in rt5659_i2c_probe()
4228 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4235 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4239 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4246 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4250 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4257 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4261 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4273 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4282 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4287 switch (rt5659->pdata.jd_src) { in rt5659_i2c_probe()
4289 regmap_write(rt5659->regmap, RT5659_EJD_CTRL_1, 0xa880); in rt5659_i2c_probe()
4290 regmap_write(rt5659->regmap, RT5659_RC_CLK_CTRL, 0x9000); in rt5659_i2c_probe()
4291 regmap_write(rt5659->regmap, RT5659_GPIO_CTRL_1, 0xc800); in rt5659_i2c_probe()
4292 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_i2c_probe()
4294 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_2, 0x0001); in rt5659_i2c_probe()
4295 regmap_write(rt5659->regmap, RT5659_IRQ_CTRL_2, 0x0040); in rt5659_i2c_probe()
4296 INIT_DELAYED_WORK(&rt5659->jack_detect_work, in rt5659_i2c_probe()
4300 regmap_write(rt5659->regmap, RT5659_GPIO_CTRL_3, 0x8000); in rt5659_i2c_probe()
4301 regmap_write(rt5659->regmap, RT5659_RC_CLK_CTRL, 0x0900); in rt5659_i2c_probe()
4302 regmap_write(rt5659->regmap, RT5659_EJD_CTRL_1, 0x70c0); in rt5659_i2c_probe()
4303 regmap_write(rt5659->regmap, RT5659_JD_CTRL_1, 0x2000); in rt5659_i2c_probe()
4304 regmap_write(rt5659->regmap, RT5659_IRQ_CTRL_1, 0x0040); in rt5659_i2c_probe()
4305 INIT_DELAYED_WORK(&rt5659->jack_detect_work, in rt5659_i2c_probe()
4307 rt5659_intel_hd_header_probe_setup(rt5659); in rt5659_i2c_probe()
4316 | IRQF_ONESHOT, "rt5659", rt5659); in rt5659_i2c_probe()
4321 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4332 struct rt5659_priv *rt5659 = i2c_get_clientdata(client); in rt5659_i2c_shutdown() local
4334 regmap_write(rt5659->regmap, RT5659_RESET, 0); in rt5659_i2c_shutdown()