Lines Matching refs:rt5659
1265 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_headset_detect() local
1297 rt5659->jack_type = SND_JACK_HEADSET; in rt5659_headset_detect()
1302 rt5659->jack_type = SND_JACK_HEADPHONE; in rt5659_headset_detect()
1310 if (rt5659->jack_type == SND_JACK_HEADSET) in rt5659_headset_detect()
1312 rt5659->jack_type = 0; in rt5659_headset_detect()
1315 dev_dbg(component->dev, "jack_type = %d\n", rt5659->jack_type); in rt5659_headset_detect()
1316 return rt5659->jack_type; in rt5659_headset_detect()
1332 struct rt5659_priv *rt5659 = data; in rt5659_irq() local
1335 &rt5659->jack_detect_work, msecs_to_jiffies(250)); in rt5659_irq()
1343 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_jack_detect() local
1345 rt5659->hs_jack = hs_jack; in rt5659_set_jack_detect()
1347 rt5659_irq(0, rt5659); in rt5659_set_jack_detect()
1355 struct rt5659_priv *rt5659 = in rt5659_jack_detect_work() local
1359 if (!rt5659->component) in rt5659_jack_detect_work()
1362 val = snd_soc_component_read(rt5659->component, RT5659_INT_ST_1) & 0x0080; in rt5659_jack_detect_work()
1365 if (rt5659->jack_type == 0) { in rt5659_jack_detect_work()
1367 report = rt5659_headset_detect(rt5659->component, 1); in rt5659_jack_detect_work()
1371 btn_type = rt5659_button_detect(rt5659->component); in rt5659_jack_detect_work()
1404 dev_err(rt5659->component->dev, in rt5659_jack_detect_work()
1412 report = rt5659->jack_type; in rt5659_jack_detect_work()
1416 report = rt5659_headset_detect(rt5659->component, 0); in rt5659_jack_detect_work()
1419 snd_soc_jack_report(rt5659->hs_jack, report, SND_JACK_HEADSET | in rt5659_jack_detect_work()
1426 struct rt5659_priv *rt5659 = in rt5659_jack_detect_intel_hd_header() local
1431 if (!rt5659->hs_jack) in rt5659_jack_detect_intel_hd_header()
1435 regmap_read(rt5659->regmap, RT5659_GPIO_STA, &value); in rt5659_jack_detect_intel_hd_header()
1438 if (hp_flag != rt5659->hda_hp_plugged) { in rt5659_jack_detect_intel_hd_header()
1439 rt5659->hda_hp_plugged = hp_flag; in rt5659_jack_detect_intel_hd_header()
1442 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_1, in rt5659_jack_detect_intel_hd_header()
1444 rt5659->jack_type |= SND_JACK_HEADPHONE; in rt5659_jack_detect_intel_hd_header()
1446 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_1, in rt5659_jack_detect_intel_hd_header()
1448 rt5659->jack_type = rt5659->jack_type & in rt5659_jack_detect_intel_hd_header()
1452 snd_soc_jack_report(rt5659->hs_jack, rt5659->jack_type, in rt5659_jack_detect_intel_hd_header()
1457 regmap_read(rt5659->regmap, RT5659_4BTN_IL_CMD_1, &value); in rt5659_jack_detect_intel_hd_header()
1458 regmap_write(rt5659->regmap, RT5659_4BTN_IL_CMD_1, value); in rt5659_jack_detect_intel_hd_header()
1461 if (mic_flag != rt5659->hda_mic_plugged) { in rt5659_jack_detect_intel_hd_header()
1462 rt5659->hda_mic_plugged = mic_flag; in rt5659_jack_detect_intel_hd_header()
1464 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_jack_detect_intel_hd_header()
1466 rt5659->jack_type |= SND_JACK_MICROPHONE; in rt5659_jack_detect_intel_hd_header()
1468 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_jack_detect_intel_hd_header()
1470 rt5659->jack_type = rt5659->jack_type in rt5659_jack_detect_intel_hd_header()
1474 snd_soc_jack_report(rt5659->hs_jack, rt5659->jack_type, in rt5659_jack_detect_intel_hd_header()
1569 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in set_dmic_clk() local
1572 pd = rl6231_get_pre_div(rt5659->regmap, in set_dmic_clk()
1574 idx = rl6231_calc_dmic_clk(rt5659->sysclk / pd); in set_dmic_clk()
3280 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_hw_params() local
3284 rt5659->lrck[dai->id] = params_rate(params); in rt5659_hw_params()
3285 pre_div = rl6231_get_clk_info(rt5659->sysclk, rt5659->lrck[dai->id]); in rt5659_hw_params()
3288 rt5659->lrck[dai->id], dai->id); in rt5659_hw_params()
3298 rt5659->lrck[dai->id], pre_div, dai->id); in rt5659_hw_params()
3342 switch (rt5659->lrck[dai->id]) { in rt5659_hw_params()
3363 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_dai_fmt() local
3368 rt5659->master[dai->id] = 1; in rt5659_set_dai_fmt()
3372 rt5659->master[dai->id] = 0; in rt5659_set_dai_fmt()
3430 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_component_sysclk() local
3434 if (freq == rt5659->sysclk && clk_id == rt5659->sysclk_src) in rt5659_set_component_sysclk()
3439 ret = clk_set_rate(rt5659->mclk, freq); in rt5659_set_component_sysclk()
3457 rt5659->sysclk = freq; in rt5659_set_component_sysclk()
3458 rt5659->sysclk_src = clk_id; in rt5659_set_component_sysclk()
3470 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_component_pll() local
3474 if (source == rt5659->pll_src && freq_in == rt5659->pll_in && in rt5659_set_component_pll()
3475 freq_out == rt5659->pll_out) in rt5659_set_component_pll()
3481 rt5659->pll_in = 0; in rt5659_set_component_pll()
3482 rt5659->pll_out = 0; in rt5659_set_component_pll()
3526 rt5659->pll_in = freq_in; in rt5659_set_component_pll()
3527 rt5659->pll_out = freq_out; in rt5659_set_component_pll()
3528 rt5659->pll_src = source; in rt5659_set_component_pll()
3588 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_bclk_ratio() local
3592 rt5659->bclk[dai->id] = ratio; in rt5659_set_bclk_ratio()
3616 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_set_bias_level() local
3621 regmap_update_bits(rt5659->regmap, RT5659_DIG_MISC, in rt5659_set_bias_level()
3623 regmap_update_bits(rt5659->regmap, RT5659_PWR_DIG_1, in rt5659_set_bias_level()
3625 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_set_bias_level()
3629 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_set_bias_level()
3636 ret = clk_prepare_enable(rt5659->mclk); in rt5659_set_bias_level()
3646 regmap_update_bits(rt5659->regmap, RT5659_PWR_DIG_1, in rt5659_set_bias_level()
3648 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_set_bias_level()
3652 regmap_update_bits(rt5659->regmap, RT5659_DIG_MISC, in rt5659_set_bias_level()
3654 clk_disable_unprepare(rt5659->mclk); in rt5659_set_bias_level()
3668 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_probe() local
3670 rt5659->component = component; in rt5659_probe()
3672 switch (rt5659->pdata.jd_src) { in rt5659_probe()
3688 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_remove() local
3690 regmap_write(rt5659->regmap, RT5659_RESET, 0); in rt5659_remove()
3696 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_suspend() local
3698 regcache_cache_only(rt5659->regmap, true); in rt5659_suspend()
3699 regcache_mark_dirty(rt5659->regmap); in rt5659_suspend()
3705 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); in rt5659_resume() local
3707 regcache_cache_only(rt5659->regmap, false); in rt5659_resume()
3708 regcache_sync(rt5659->regmap); in rt5659_resume()
3826 static int rt5659_parse_dt(struct rt5659_priv *rt5659, struct device *dev) in rt5659_parse_dt() argument
3828 rt5659->pdata.in1_diff = device_property_read_bool(dev, in rt5659_parse_dt()
3830 rt5659->pdata.in3_diff = device_property_read_bool(dev, in rt5659_parse_dt()
3832 rt5659->pdata.in4_diff = device_property_read_bool(dev, in rt5659_parse_dt()
3837 &rt5659->pdata.dmic1_data_pin); in rt5659_parse_dt()
3839 &rt5659->pdata.dmic2_data_pin); in rt5659_parse_dt()
3841 &rt5659->pdata.jd_src); in rt5659_parse_dt()
3846 static void rt5659_calibrate(struct rt5659_priv *rt5659) in rt5659_calibrate() argument
3852 regmap_write(rt5659->regmap, RT5659_BIAS_CUR_CTRL_8, 0xa502); in rt5659_calibrate()
3853 regmap_write(rt5659->regmap, RT5659_CHOP_DAC, 0x3030); in rt5659_calibrate()
3855 regmap_write(rt5659->regmap, RT5659_PRE_DIV_1, 0xef00); in rt5659_calibrate()
3856 regmap_write(rt5659->regmap, RT5659_PRE_DIV_2, 0xeffc); in rt5659_calibrate()
3857 regmap_write(rt5659->regmap, RT5659_MICBIAS_2, 0x0280); in rt5659_calibrate()
3858 regmap_write(rt5659->regmap, RT5659_DIG_MISC, 0x0001); in rt5659_calibrate()
3859 regmap_write(rt5659->regmap, RT5659_GLB_CLK, 0x8000); in rt5659_calibrate()
3861 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_1, 0xaa7e); in rt5659_calibrate()
3863 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_1, 0xfe7e); in rt5659_calibrate()
3865 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_3, 0x0004); in rt5659_calibrate()
3866 regmap_write(rt5659->regmap, RT5659_PWR_DIG_2, 0x0400); in rt5659_calibrate()
3868 regmap_write(rt5659->regmap, RT5659_PWR_DIG_1, 0x0080); in rt5659_calibrate()
3870 regmap_write(rt5659->regmap, RT5659_DEPOP_1, 0x0009); in rt5659_calibrate()
3872 regmap_write(rt5659->regmap, RT5659_PWR_DIG_1, 0x0f80); in rt5659_calibrate()
3874 regmap_write(rt5659->regmap, RT5659_HP_CHARGE_PUMP_1, 0x0e16); in rt5659_calibrate()
3878 regmap_write(rt5659->regmap, RT5659_CAL_REC, 0x0505); in rt5659_calibrate()
3880 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_3, 0x0184); in rt5659_calibrate()
3881 regmap_write(rt5659->regmap, RT5659_CALIB_ADC_CTRL, 0x3c05); in rt5659_calibrate()
3882 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x20c1); in rt5659_calibrate()
3885 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x2cc1); in rt5659_calibrate()
3886 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, 0x5100); in rt5659_calibrate()
3887 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_7, 0x0014); in rt5659_calibrate()
3888 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, 0xd100); in rt5659_calibrate()
3892 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x2cc1); in rt5659_calibrate()
3893 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, 0x4900); in rt5659_calibrate()
3894 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_7, 0x0016); in rt5659_calibrate()
3895 regmap_update_bits(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, in rt5659_calibrate()
3900 regmap_read(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, &value); in rt5659_calibrate()
3907 dev_err(rt5659->component->dev, in rt5659_calibrate()
3916 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x2cc1); in rt5659_calibrate()
3917 regmap_write(rt5659->regmap, RT5659_HP_VOL, 0x0000); in rt5659_calibrate()
3918 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, 0x4500); in rt5659_calibrate()
3919 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_7, 0x001f); in rt5659_calibrate()
3920 regmap_update_bits(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, in rt5659_calibrate()
3925 regmap_read(rt5659->regmap, RT5659_HP_CALIB_CTRL_1, &value); in rt5659_calibrate()
3932 dev_err(rt5659->component->dev, in rt5659_calibrate()
3940 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_7, 0x0000); in rt5659_calibrate()
3941 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x20c0); in rt5659_calibrate()
3945 regmap_write(rt5659->regmap, RT5659_CLASSD_0, 0x2021); in rt5659_calibrate()
3946 regmap_write(rt5659->regmap, RT5659_CLASSD_CTRL_1, 0x0260); in rt5659_calibrate()
3947 regmap_write(rt5659->regmap, RT5659_PWR_MIXER, 0x3000); in rt5659_calibrate()
3948 regmap_write(rt5659->regmap, RT5659_PWR_VOL, 0xc000); in rt5659_calibrate()
3949 regmap_write(rt5659->regmap, RT5659_A_DAC_MUX, 0x000c); in rt5659_calibrate()
3950 regmap_write(rt5659->regmap, RT5659_DIG_MISC, 0x8000); in rt5659_calibrate()
3951 regmap_write(rt5659->regmap, RT5659_SPO_VOL, 0x0808); in rt5659_calibrate()
3952 regmap_write(rt5659->regmap, RT5659_SPK_L_MIXER, 0x001e); in rt5659_calibrate()
3953 regmap_write(rt5659->regmap, RT5659_SPK_R_MIXER, 0x001e); in rt5659_calibrate()
3954 regmap_write(rt5659->regmap, RT5659_CLASSD_1, 0x0803); in rt5659_calibrate()
3955 regmap_write(rt5659->regmap, RT5659_CLASSD_2, 0x0554); in rt5659_calibrate()
3956 regmap_write(rt5659->regmap, RT5659_SPO_AMP_GAIN, 0x1103); in rt5659_calibrate()
3959 regmap_write(rt5659->regmap, RT5659_CAL_REC, 0x0909); in rt5659_calibrate()
3960 regmap_update_bits(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x0001, in rt5659_calibrate()
3964 regmap_write(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_3, 0x0000); in rt5659_calibrate()
3965 regmap_write(rt5659->regmap, RT5659_CLASSD_0, 0x0021); in rt5659_calibrate()
3966 regmap_write(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_1, 0x3e80); in rt5659_calibrate()
3967 regmap_update_bits(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_1, in rt5659_calibrate()
3972 regmap_read(rt5659->regmap, in rt5659_calibrate()
3980 dev_err(rt5659->component->dev, in rt5659_calibrate()
3990 regmap_write(rt5659->regmap, RT5659_DIG_MISC, 0x0000); in rt5659_calibrate()
3991 regmap_write(rt5659->regmap, RT5659_MONOMIX_IN_GAIN, 0x021f); in rt5659_calibrate()
3992 regmap_write(rt5659->regmap, RT5659_MONO_OUT, 0x480a); in rt5659_calibrate()
3994 regmap_write(rt5659->regmap, RT5659_MONO_GAIN, 0x0003); in rt5659_calibrate()
3995 regmap_write(rt5659->regmap, RT5659_MONO_NG2_CTRL_5, 0x0009); in rt5659_calibrate()
3998 regmap_write(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_3, 0x000f); in rt5659_calibrate()
3999 regmap_write(rt5659->regmap, RT5659_MONO_AMP_CALIB_CTRL_1, 0x1e00); in rt5659_calibrate()
4000 regmap_update_bits(rt5659->regmap, RT5659_MONO_AMP_CALIB_CTRL_1, in rt5659_calibrate()
4005 regmap_read(rt5659->regmap, RT5659_MONO_AMP_CALIB_CTRL_1, in rt5659_calibrate()
4013 dev_err(rt5659->component->dev, in rt5659_calibrate()
4021 regmap_write(rt5659->regmap, RT5659_SPK_DC_CAILB_CTRL_3, 0x0003); in rt5659_calibrate()
4025 regmap_write(rt5659->regmap, RT5659_CAL_REC, 0x0808); in rt5659_calibrate()
4026 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_3, 0x0000); in rt5659_calibrate()
4027 regmap_write(rt5659->regmap, RT5659_CALIB_ADC_CTRL, 0x2005); in rt5659_calibrate()
4028 regmap_write(rt5659->regmap, RT5659_HP_CALIB_CTRL_2, 0x20c0); in rt5659_calibrate()
4029 regmap_write(rt5659->regmap, RT5659_DEPOP_1, 0x0000); in rt5659_calibrate()
4030 regmap_write(rt5659->regmap, RT5659_CLASSD_1, 0x0011); in rt5659_calibrate()
4031 regmap_write(rt5659->regmap, RT5659_CLASSD_2, 0x0150); in rt5659_calibrate()
4032 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_1, 0xfe3e); in rt5659_calibrate()
4033 regmap_write(rt5659->regmap, RT5659_MONO_OUT, 0xc80a); in rt5659_calibrate()
4034 regmap_write(rt5659->regmap, RT5659_MONO_AMP_CALIB_CTRL_1, 0x1e04); in rt5659_calibrate()
4035 regmap_write(rt5659->regmap, RT5659_PWR_MIXER, 0x0000); in rt5659_calibrate()
4036 regmap_write(rt5659->regmap, RT5659_PWR_VOL, 0x0000); in rt5659_calibrate()
4037 regmap_write(rt5659->regmap, RT5659_PWR_DIG_1, 0x0000); in rt5659_calibrate()
4038 regmap_write(rt5659->regmap, RT5659_PWR_DIG_2, 0x0000); in rt5659_calibrate()
4039 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_1, 0x003e); in rt5659_calibrate()
4040 regmap_write(rt5659->regmap, RT5659_CLASSD_CTRL_1, 0x0060); in rt5659_calibrate()
4041 regmap_write(rt5659->regmap, RT5659_CLASSD_0, 0x2021); in rt5659_calibrate()
4042 regmap_write(rt5659->regmap, RT5659_GLB_CLK, 0x0000); in rt5659_calibrate()
4043 regmap_write(rt5659->regmap, RT5659_MICBIAS_2, 0x0080); in rt5659_calibrate()
4044 regmap_write(rt5659->regmap, RT5659_HP_VOL, 0x8080); in rt5659_calibrate()
4045 regmap_write(rt5659->regmap, RT5659_HP_CHARGE_PUMP_1, 0x0c16); in rt5659_calibrate()
4048 static void rt5659_intel_hd_header_probe_setup(struct rt5659_priv *rt5659) in rt5659_intel_hd_header_probe_setup() argument
4052 regmap_read(rt5659->regmap, RT5659_GPIO_STA, &value); in rt5659_intel_hd_header_probe_setup()
4054 rt5659->hda_hp_plugged = true; in rt5659_intel_hd_header_probe_setup()
4055 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_1, in rt5659_intel_hd_header_probe_setup()
4058 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_1, in rt5659_intel_hd_header_probe_setup()
4062 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_intel_hd_header_probe_setup()
4066 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_intel_hd_header_probe_setup()
4069 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_3, RT5659_PWR_LDO2, in rt5659_intel_hd_header_probe_setup()
4071 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_2, RT5659_PWR_MB1, in rt5659_intel_hd_header_probe_setup()
4073 regmap_update_bits(rt5659->regmap, RT5659_PWR_VOL, RT5659_PWR_MIC_DET, in rt5659_intel_hd_header_probe_setup()
4077 regmap_update_bits(rt5659->regmap, RT5659_4BTN_IL_CMD_2, in rt5659_intel_hd_header_probe_setup()
4079 regmap_read(rt5659->regmap, RT5659_4BTN_IL_CMD_1, &value); in rt5659_intel_hd_header_probe_setup()
4080 regmap_write(rt5659->regmap, RT5659_4BTN_IL_CMD_1, value); in rt5659_intel_hd_header_probe_setup()
4081 regmap_read(rt5659->regmap, RT5659_4BTN_IL_CMD_1, &value); in rt5659_intel_hd_header_probe_setup()
4084 rt5659->hda_mic_plugged = true; in rt5659_intel_hd_header_probe_setup()
4085 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_intel_hd_header_probe_setup()
4088 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_intel_hd_header_probe_setup()
4092 regmap_update_bits(rt5659->regmap, RT5659_IRQ_CTRL_2, in rt5659_intel_hd_header_probe_setup()
4100 struct rt5659_priv *rt5659; in rt5659_i2c_probe() local
4104 rt5659 = devm_kzalloc(&i2c->dev, sizeof(struct rt5659_priv), in rt5659_i2c_probe()
4107 if (rt5659 == NULL) in rt5659_i2c_probe()
4110 i2c_set_clientdata(i2c, rt5659); in rt5659_i2c_probe()
4113 rt5659->pdata = *pdata; in rt5659_i2c_probe()
4115 rt5659_parse_dt(rt5659, &i2c->dev); in rt5659_i2c_probe()
4117 rt5659->gpiod_ldo1_en = devm_gpiod_get_optional(&i2c->dev, "ldo1-en", in rt5659_i2c_probe()
4119 if (IS_ERR(rt5659->gpiod_ldo1_en)) in rt5659_i2c_probe()
4122 rt5659->gpiod_reset = devm_gpiod_get_optional(&i2c->dev, "reset", in rt5659_i2c_probe()
4128 rt5659->regmap = devm_regmap_init_i2c(i2c, &rt5659_regmap); in rt5659_i2c_probe()
4129 if (IS_ERR(rt5659->regmap)) { in rt5659_i2c_probe()
4130 ret = PTR_ERR(rt5659->regmap); in rt5659_i2c_probe()
4136 regmap_read(rt5659->regmap, RT5659_DEVICE_ID, &val); in rt5659_i2c_probe()
4143 regmap_write(rt5659->regmap, RT5659_RESET, 0); in rt5659_i2c_probe()
4146 rt5659->mclk = devm_clk_get(&i2c->dev, "mclk"); in rt5659_i2c_probe()
4147 if (IS_ERR(rt5659->mclk)) { in rt5659_i2c_probe()
4148 if (PTR_ERR(rt5659->mclk) != -ENOENT) in rt5659_i2c_probe()
4149 return PTR_ERR(rt5659->mclk); in rt5659_i2c_probe()
4151 rt5659->mclk = NULL; in rt5659_i2c_probe()
4154 rt5659_calibrate(rt5659); in rt5659_i2c_probe()
4157 if (rt5659->pdata.in1_diff) in rt5659_i2c_probe()
4158 regmap_update_bits(rt5659->regmap, RT5659_IN1_IN2, in rt5659_i2c_probe()
4160 if (rt5659->pdata.in3_diff) in rt5659_i2c_probe()
4161 regmap_update_bits(rt5659->regmap, RT5659_IN3_IN4, in rt5659_i2c_probe()
4163 if (rt5659->pdata.in4_diff) in rt5659_i2c_probe()
4164 regmap_update_bits(rt5659->regmap, RT5659_IN3_IN4, in rt5659_i2c_probe()
4168 if (rt5659->pdata.dmic1_data_pin != RT5659_DMIC1_NULL || in rt5659_i2c_probe()
4169 rt5659->pdata.dmic2_data_pin != RT5659_DMIC2_NULL) { in rt5659_i2c_probe()
4170 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4173 switch (rt5659->pdata.dmic1_data_pin) { in rt5659_i2c_probe()
4175 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4180 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4184 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4186 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4191 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4193 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4198 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4200 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4210 switch (rt5659->pdata.dmic2_data_pin) { in rt5659_i2c_probe()
4212 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4219 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4223 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4230 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4234 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4241 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4245 regmap_update_bits(rt5659->regmap, in rt5659_i2c_probe()
4257 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4266 regmap_update_bits(rt5659->regmap, RT5659_DMIC_CTRL_1, in rt5659_i2c_probe()
4271 switch (rt5659->pdata.jd_src) { in rt5659_i2c_probe()
4273 regmap_write(rt5659->regmap, RT5659_EJD_CTRL_1, 0xa880); in rt5659_i2c_probe()
4274 regmap_write(rt5659->regmap, RT5659_RC_CLK_CTRL, 0x9000); in rt5659_i2c_probe()
4275 regmap_write(rt5659->regmap, RT5659_GPIO_CTRL_1, 0xc800); in rt5659_i2c_probe()
4276 regmap_update_bits(rt5659->regmap, RT5659_PWR_ANLG_1, in rt5659_i2c_probe()
4278 regmap_write(rt5659->regmap, RT5659_PWR_ANLG_2, 0x0001); in rt5659_i2c_probe()
4279 regmap_write(rt5659->regmap, RT5659_IRQ_CTRL_2, 0x0040); in rt5659_i2c_probe()
4280 INIT_DELAYED_WORK(&rt5659->jack_detect_work, in rt5659_i2c_probe()
4284 regmap_write(rt5659->regmap, RT5659_GPIO_CTRL_3, 0x8000); in rt5659_i2c_probe()
4285 regmap_write(rt5659->regmap, RT5659_RC_CLK_CTRL, 0x0900); in rt5659_i2c_probe()
4286 regmap_write(rt5659->regmap, RT5659_EJD_CTRL_1, 0x70c0); in rt5659_i2c_probe()
4287 regmap_write(rt5659->regmap, RT5659_JD_CTRL_1, 0x2000); in rt5659_i2c_probe()
4288 regmap_write(rt5659->regmap, RT5659_IRQ_CTRL_1, 0x0040); in rt5659_i2c_probe()
4289 INIT_DELAYED_WORK(&rt5659->jack_detect_work, in rt5659_i2c_probe()
4291 rt5659_intel_hd_header_probe_setup(rt5659); in rt5659_i2c_probe()
4300 | IRQF_ONESHOT, "rt5659", rt5659); in rt5659_i2c_probe()
4305 regmap_update_bits(rt5659->regmap, RT5659_GPIO_CTRL_1, in rt5659_i2c_probe()
4316 struct rt5659_priv *rt5659 = i2c_get_clientdata(client); in rt5659_i2c_shutdown() local
4318 regmap_write(rt5659->regmap, RT5659_RESET, 0); in rt5659_i2c_shutdown()