Lines Matching refs:rt5645

708 	struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component);  in rt5645_hweq_get()  local
714 eq_param[i].reg = cpu_to_be16(rt5645->eq_param[i].reg); in rt5645_hweq_get()
715 eq_param[i].val = cpu_to_be16(rt5645->eq_param[i].val); in rt5645_hweq_get()
734 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_hweq_put() local
740 rt5645->eq_param[i].reg = be16_to_cpu(eq_param[i].reg); in rt5645_hweq_put()
741 rt5645->eq_param[i].val = be16_to_cpu(eq_param[i].val); in rt5645_hweq_put()
746 if (rt5645->eq_param[i].reg == 0) in rt5645_hweq_put()
748 else if (rt5645->eq_param[i].reg != RT5645_EQ_CTRL2) in rt5645_hweq_put()
755 if (!rt5645_validate_hweq(rt5645->eq_param[i].reg) && in rt5645_hweq_put()
756 rt5645->eq_param[i].reg != 0) in rt5645_hweq_put()
758 else if (rt5645->eq_param[i].reg == 0) in rt5645_hweq_put()
776 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_spk_put_volsw() local
779 regmap_update_bits(rt5645->regmap, RT5645_MICBIAS, in rt5645_spk_put_volsw()
784 mod_delayed_work(system_power_efficient_wq, &rt5645->rcclock_work, in rt5645_spk_put_volsw()
881 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in set_dmic_clk() local
884 rate = rt5645->sysclk / rl6231_get_pre_div(rt5645->regmap, in set_dmic_clk()
959 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_enable_hweq() local
963 if (rt5645_validate_hweq(rt5645->eq_param[i].reg)) in rt5645_enable_hweq()
964 regmap_write(rt5645->regmap, rt5645->eq_param[i].reg, in rt5645_enable_hweq()
965 rt5645->eq_param[i].val); in rt5645_enable_hweq()
1679 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in hp_amp_power() local
1684 if (rt5645->codec_type == CODEC_TYPE_RT5650) { in hp_amp_power()
1689 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1693 regmap_read(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1700 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1703 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1715 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1737 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1739 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1747 if (rt5645->codec_type == CODEC_TYPE_RT5650) { in hp_amp_power()
1748 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1751 regmap_write(rt5645->regmap, RT5645_PR_BASE + in hp_amp_power()
1782 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_hp_event() local
1788 if (rt5645->codec_type == CODEC_TYPE_RT5645) { in rt5645_hp_event()
1795 regmap_write(rt5645->regmap, RT5645_PR_BASE + in rt5645_hp_event()
1815 if (rt5645->codec_type == CODEC_TYPE_RT5645) { in rt5645_hp_event()
1822 regmap_write(rt5645->regmap, RT5645_PR_BASE + in rt5645_hp_event()
2755 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_hw_params() local
2759 rt5645->lrck[dai->id] = params_rate(params); in rt5645_hw_params()
2760 pre_div = rl6231_get_clk_info(rt5645->sysclk, rt5645->lrck[dai->id]); in rt5645_hw_params()
2771 switch (rt5645->codec_type) { in rt5645_hw_params()
2781 rt5645->bclk[dai->id] = rt5645->lrck[dai->id] * (32 << bclk_ms); in rt5645_hw_params()
2784 rt5645->bclk[dai->id], rt5645->lrck[dai->id]); in rt5645_hw_params()
2831 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_set_dai_fmt() local
2834 switch (rt5645->codec_type) { in rt5645_set_dai_fmt()
2845 rt5645->master[dai->id] = 1; in rt5645_set_dai_fmt()
2849 rt5645->master[dai->id] = 0; in rt5645_set_dai_fmt()
2902 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_set_dai_sysclk() local
2905 if (freq == rt5645->sysclk && clk_id == rt5645->sysclk_src) in rt5645_set_dai_sysclk()
2924 rt5645->sysclk = freq; in rt5645_set_dai_sysclk()
2925 rt5645->sysclk_src = clk_id; in rt5645_set_dai_sysclk()
2936 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_set_dai_pll() local
2940 if (source == rt5645->pll_src && freq_in == rt5645->pll_in && in rt5645_set_dai_pll()
2941 freq_out == rt5645->pll_out) in rt5645_set_dai_pll()
2947 rt5645->pll_in = 0; in rt5645_set_dai_pll()
2948 rt5645->pll_out = 0; in rt5645_set_dai_pll()
2996 rt5645->pll_in = freq_in; in rt5645_set_dai_pll()
2997 rt5645->pll_out = freq_out; in rt5645_set_dai_pll()
2998 rt5645->pll_src = source; in rt5645_set_dai_pll()
3007 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_set_tdm_slot() local
3011 switch (rt5645->codec_type) { in rt5645_set_tdm_slot()
3029 if (rt5645->codec_type == CODEC_TYPE_RT5645) in rt5645_set_tdm_slot()
3072 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_set_bias_level() local
3104 if (rt5645->en_button_func) in rt5645_set_bias_level()
3106 &rt5645->jack_detect_work, in rt5645_set_bias_level()
3113 if (!rt5645->en_button_func) in rt5645_set_bias_level()
3172 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_jack_detect() local
3176 regmap_write(rt5645->regmap, RT5645_CHARGE_PUMP, 0x0206); in rt5645_jack_detect()
3185 regmap_update_bits(rt5645->regmap, RT5645_PWR_ANLG1, in rt5645_jack_detect()
3188 regmap_update_bits(rt5645->regmap, RT5645_PWR_MIXER, in rt5645_jack_detect()
3190 regmap_update_bits(rt5645->regmap, RT5645_PWR_VOL, in rt5645_jack_detect()
3194 regmap_write(rt5645->regmap, RT5645_JD_CTRL3, 0x00f0); in rt5645_jack_detect()
3195 regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL2, in rt5645_jack_detect()
3197 regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL1, in rt5645_jack_detect()
3200 regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL2, in rt5645_jack_detect()
3203 if (rt5645->gpiod_cbj_sleeve) in rt5645_jack_detect()
3204 gpiod_set_value(rt5645->gpiod_cbj_sleeve, 1); in rt5645_jack_detect()
3207 regmap_read(rt5645->regmap, RT5645_IN1_CTRL3, &val); in rt5645_jack_detect()
3211 if ((val == 1 || val == 2) && !rt5645->pdata.no_headset_mic) { in rt5645_jack_detect()
3212 rt5645->jack_type = SND_JACK_HEADSET; in rt5645_jack_detect()
3213 if (rt5645->en_button_func) { in rt5645_jack_detect()
3217 if (rt5645->en_button_func) in rt5645_jack_detect()
3221 rt5645->jack_type = SND_JACK_HEADPHONE; in rt5645_jack_detect()
3222 if (rt5645->gpiod_cbj_sleeve) in rt5645_jack_detect()
3223 gpiod_set_value(rt5645->gpiod_cbj_sleeve, 0); in rt5645_jack_detect()
3225 if (rt5645->pdata.level_trigger_irq) in rt5645_jack_detect()
3226 regmap_update_bits(rt5645->regmap, RT5645_IRQ_CTRL2, in rt5645_jack_detect()
3229 regmap_write(rt5645->regmap, RT5645_CHARGE_PUMP, 0x0e06); in rt5645_jack_detect()
3231 rt5645->jack_type = 0; in rt5645_jack_detect()
3233 regmap_update_bits(rt5645->regmap, RT5645_HP_VOL, in rt5645_jack_detect()
3236 regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL2, in rt5645_jack_detect()
3238 regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL1, in rt5645_jack_detect()
3241 if (rt5645->en_button_func) in rt5645_jack_detect()
3244 if (rt5645->pdata.jd_mode == 0) in rt5645_jack_detect()
3248 if (rt5645->pdata.level_trigger_irq) in rt5645_jack_detect()
3249 regmap_update_bits(rt5645->regmap, RT5645_IRQ_CTRL2, in rt5645_jack_detect()
3252 if (rt5645->gpiod_cbj_sleeve) in rt5645_jack_detect()
3253 gpiod_set_value(rt5645->gpiod_cbj_sleeve, 0); in rt5645_jack_detect()
3256 return rt5645->jack_type; in rt5645_jack_detect()
3277 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_set_jack_detect() local
3279 rt5645->hp_jack = hp_jack; in rt5645_set_jack_detect()
3280 rt5645->mic_jack = mic_jack; in rt5645_set_jack_detect()
3281 rt5645->btn_jack = btn_jack; in rt5645_set_jack_detect()
3282 if (rt5645->btn_jack && rt5645->codec_type == CODEC_TYPE_RT5650) { in rt5645_set_jack_detect()
3283 rt5645->en_button_func = true; in rt5645_set_jack_detect()
3284 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_set_jack_detect()
3286 regmap_update_bits(rt5645->regmap, RT5645_GEN_CTRL1, in rt5645_set_jack_detect()
3288 regmap_update_bits(rt5645->regmap, RT5645_DEPOP_M1, in rt5645_set_jack_detect()
3291 rt5645_irq(0, rt5645); in rt5645_set_jack_detect()
3319 struct rt5645_priv *rt5645 = in rt5645_jack_detect_work() local
3323 if (!rt5645->component) in rt5645_jack_detect_work()
3326 mutex_lock(&rt5645->jd_mutex); in rt5645_jack_detect_work()
3328 switch (rt5645->pdata.jd_mode) { in rt5645_jack_detect_work()
3330 if (rt5645->gpiod_hp_det) { in rt5645_jack_detect_work()
3331 gpio_state = gpiod_get_value(rt5645->gpiod_hp_det); in rt5645_jack_detect_work()
3332 if (rt5645->pdata.inv_hp_pol) in rt5645_jack_detect_work()
3334 dev_dbg(rt5645->component->dev, "gpio_state = %d\n", in rt5645_jack_detect_work()
3336 report = rt5645_jack_detect(rt5645->component, gpio_state); in rt5645_jack_detect_work()
3338 snd_soc_jack_report(rt5645->hp_jack, in rt5645_jack_detect_work()
3340 snd_soc_jack_report(rt5645->mic_jack, in rt5645_jack_detect_work()
3342 mutex_unlock(&rt5645->jd_mutex); in rt5645_jack_detect_work()
3345 val = snd_soc_component_read(rt5645->component, RT5645_A_JD_CTRL1) & 0x0020; in rt5645_jack_detect_work()
3348 val = snd_soc_component_read(rt5645->component, RT5645_INT_IRQ_ST) & 0x1000; in rt5645_jack_detect_work()
3353 if (!val && (rt5645->jack_type == 0)) { /* jack in */ in rt5645_jack_detect_work()
3354 report = rt5645_jack_detect(rt5645->component, 1); in rt5645_jack_detect_work()
3355 } else if (!val && rt5645->jack_type == SND_JACK_HEADSET) { in rt5645_jack_detect_work()
3358 if (snd_soc_component_read(rt5645->component, RT5645_INT_IRQ_ST) & 0x4) { in rt5645_jack_detect_work()
3361 btn_type = rt5645_button_detect(rt5645->component); in rt5645_jack_detect_work()
3391 dev_err(rt5645->component->dev, in rt5645_jack_detect_work()
3398 report = rt5645->jack_type; in rt5645_jack_detect_work()
3400 mod_timer(&rt5645->btn_check_timer, in rt5645_jack_detect_work()
3406 snd_soc_component_update_bits(rt5645->component, in rt5645_jack_detect_work()
3408 rt5645_jack_detect(rt5645->component, 0); in rt5645_jack_detect_work()
3411 mutex_unlock(&rt5645->jd_mutex); in rt5645_jack_detect_work()
3413 snd_soc_jack_report(rt5645->hp_jack, report, SND_JACK_HEADPHONE); in rt5645_jack_detect_work()
3414 snd_soc_jack_report(rt5645->mic_jack, report, SND_JACK_MICROPHONE); in rt5645_jack_detect_work()
3415 if (rt5645->en_button_func) in rt5645_jack_detect_work()
3416 snd_soc_jack_report(rt5645->btn_jack, in rt5645_jack_detect_work()
3423 struct rt5645_priv *rt5645 = in rt5645_rcclock_work() local
3426 regmap_update_bits(rt5645->regmap, RT5645_MICBIAS, in rt5645_rcclock_work()
3432 struct rt5645_priv *rt5645 = data; in rt5645_irq() local
3435 &rt5645->jack_detect_work, msecs_to_jiffies(250)); in rt5645_irq()
3442 struct rt5645_priv *rt5645 = from_timer(rt5645, t, btn_check_timer); in rt5645_btn_check_callback() local
3445 &rt5645->jack_detect_work, msecs_to_jiffies(5)); in rt5645_btn_check_callback()
3451 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_probe() local
3453 rt5645->component = component; in rt5645_probe()
3455 switch (rt5645->codec_type) { in rt5645_probe()
3463 if (rt5645->v_id < 3) { in rt5645_probe()
3482 if (rt5645->pdata.jd_mode) { in rt5645_probe()
3488 if (rt5645->pdata.long_name) in rt5645_probe()
3489 component->card->long_name = rt5645->pdata.long_name; in rt5645_probe()
3491 rt5645->eq_param = devm_kcalloc(component->dev, in rt5645_probe()
3495 if (!rt5645->eq_param) in rt5645_probe()
3509 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_suspend() local
3511 regcache_cache_only(rt5645->regmap, true); in rt5645_suspend()
3512 regcache_mark_dirty(rt5645->regmap); in rt5645_suspend()
3519 struct rt5645_priv *rt5645 = snd_soc_component_get_drvdata(component); in rt5645_resume() local
3521 regcache_cache_only(rt5645->regmap, false); in rt5645_resume()
3522 regcache_sync(rt5645->regmap); in rt5645_resume()
3998 struct rt5645_priv *rt5645; in rt5645_i2c_probe() local
4003 rt5645 = devm_kzalloc(&i2c->dev, sizeof(struct rt5645_priv), in rt5645_i2c_probe()
4005 if (rt5645 == NULL) in rt5645_i2c_probe()
4008 rt5645->i2c = i2c; in rt5645_i2c_probe()
4009 i2c_set_clientdata(i2c, rt5645); in rt5645_i2c_probe()
4010 rt5645_get_pdata(&i2c->dev, &rt5645->pdata); in rt5645_i2c_probe()
4020 rt5645->pdata.no_headset_mic = true; in rt5645_i2c_probe()
4023 rt5645->gpiod_hp_det = devm_gpiod_get_optional(&i2c->dev, "hp-detect", in rt5645_i2c_probe()
4026 if (IS_ERR(rt5645->gpiod_hp_det)) { in rt5645_i2c_probe()
4028 ret = PTR_ERR(rt5645->gpiod_hp_det); in rt5645_i2c_probe()
4037 rt5645->gpiod_cbj_sleeve = devm_gpiod_get_optional(&i2c->dev, "cbj-sleeve", in rt5645_i2c_probe()
4040 if (IS_ERR(rt5645->gpiod_cbj_sleeve)) { in rt5645_i2c_probe()
4041 ret = PTR_ERR(rt5645->gpiod_cbj_sleeve); in rt5645_i2c_probe()
4047 for (i = 0; i < ARRAY_SIZE(rt5645->supplies); i++) in rt5645_i2c_probe()
4048 rt5645->supplies[i].supply = rt5645_supply_names[i]; in rt5645_i2c_probe()
4051 ARRAY_SIZE(rt5645->supplies), in rt5645_i2c_probe()
4052 rt5645->supplies); in rt5645_i2c_probe()
4058 ret = regulator_bulk_enable(ARRAY_SIZE(rt5645->supplies), in rt5645_i2c_probe()
4059 rt5645->supplies); in rt5645_i2c_probe()
4086 rt5645->regmap = devm_regmap_init_i2c(i2c, &rt5645_regmap); in rt5645_i2c_probe()
4087 rt5645->codec_type = CODEC_TYPE_RT5645; in rt5645_i2c_probe()
4090 rt5645->regmap = devm_regmap_init_i2c(i2c, &rt5650_regmap); in rt5645_i2c_probe()
4091 rt5645->codec_type = CODEC_TYPE_RT5650; in rt5645_i2c_probe()
4101 if (IS_ERR(rt5645->regmap)) { in rt5645_i2c_probe()
4102 ret = PTR_ERR(rt5645->regmap); in rt5645_i2c_probe()
4108 regmap_write(rt5645->regmap, RT5645_RESET, 0); in rt5645_i2c_probe()
4111 rt5645->v_id = val & 0xff; in rt5645_i2c_probe()
4113 regmap_write(rt5645->regmap, RT5645_AD_DA_MIXER, 0x8080); in rt5645_i2c_probe()
4115 ret = regmap_multi_reg_write(rt5645->regmap, init_list, in rt5645_i2c_probe()
4120 if (rt5645->codec_type == CODEC_TYPE_RT5650) { in rt5645_i2c_probe()
4121 ret = regmap_multi_reg_write(rt5645->regmap, rt5650_init_list, in rt5645_i2c_probe()
4128 regmap_update_bits(rt5645->regmap, RT5645_CLSD_OUT_CTRL, 0xc0, 0xc0); in rt5645_i2c_probe()
4130 if (rt5645->pdata.in2_diff) in rt5645_i2c_probe()
4131 regmap_update_bits(rt5645->regmap, RT5645_IN2_CTRL, in rt5645_i2c_probe()
4134 if (rt5645->pdata.dmic1_data_pin || rt5645->pdata.dmic2_data_pin) { in rt5645_i2c_probe()
4135 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
4138 switch (rt5645->pdata.dmic1_data_pin) { in rt5645_i2c_probe()
4140 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
4145 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
4147 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
4149 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
4154 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
4156 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
4165 switch (rt5645->pdata.dmic2_data_pin) { in rt5645_i2c_probe()
4167 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
4172 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
4174 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
4179 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
4181 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
4187 regmap_update_bits(rt5645->regmap, RT5645_DMIC_CTRL1, in rt5645_i2c_probe()
4189 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
4198 if (rt5645->pdata.jd_mode) { in rt5645_i2c_probe()
4199 regmap_update_bits(rt5645->regmap, RT5645_GEN_CTRL3, in rt5645_i2c_probe()
4202 regmap_update_bits(rt5645->regmap, RT5645_MICBIAS, in rt5645_i2c_probe()
4204 regmap_update_bits(rt5645->regmap, RT5645_IRQ_CTRL2, in rt5645_i2c_probe()
4206 regmap_update_bits(rt5645->regmap, RT5645_GEN_CTRL3, in rt5645_i2c_probe()
4208 regmap_update_bits(rt5645->regmap, RT5645_HPO_MIXER, in rt5645_i2c_probe()
4210 regmap_update_bits(rt5645->regmap, RT5645_MICBIAS, in rt5645_i2c_probe()
4212 regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, in rt5645_i2c_probe()
4214 switch (rt5645->pdata.jd_mode) { in rt5645_i2c_probe()
4216 regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1, in rt5645_i2c_probe()
4221 regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1, in rt5645_i2c_probe()
4227 regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1, in rt5645_i2c_probe()
4234 if (rt5645->pdata.inv_jd1_1) { in rt5645_i2c_probe()
4235 regmap_update_bits(rt5645->regmap, RT5645_IRQ_CTRL2, in rt5645_i2c_probe()
4240 regmap_update_bits(rt5645->regmap, RT5645_ADDA_CLK1, in rt5645_i2c_probe()
4243 if (rt5645->pdata.level_trigger_irq) { in rt5645_i2c_probe()
4244 regmap_update_bits(rt5645->regmap, RT5645_IRQ_CTRL2, in rt5645_i2c_probe()
4247 timer_setup(&rt5645->btn_check_timer, rt5645_btn_check_callback, 0); in rt5645_i2c_probe()
4249 mutex_init(&rt5645->jd_mutex); in rt5645_i2c_probe()
4250 INIT_DELAYED_WORK(&rt5645->jack_detect_work, rt5645_jack_detect_work); in rt5645_i2c_probe()
4251 INIT_DELAYED_WORK(&rt5645->rcclock_work, rt5645_rcclock_work); in rt5645_i2c_probe()
4253 if (rt5645->i2c->irq) { in rt5645_i2c_probe()
4254 ret = request_threaded_irq(rt5645->i2c->irq, NULL, rt5645_irq, in rt5645_i2c_probe()
4256 | IRQF_ONESHOT, "rt5645", rt5645); in rt5645_i2c_probe()
4271 if (rt5645->i2c->irq) in rt5645_i2c_probe()
4272 free_irq(rt5645->i2c->irq, rt5645); in rt5645_i2c_probe()
4274 regulator_bulk_disable(ARRAY_SIZE(rt5645->supplies), rt5645->supplies); in rt5645_i2c_probe()
4280 struct rt5645_priv *rt5645 = i2c_get_clientdata(i2c); in rt5645_i2c_remove() local
4283 free_irq(i2c->irq, rt5645); in rt5645_i2c_remove()
4289 timer_delete_sync(&rt5645->btn_check_timer); in rt5645_i2c_remove()
4291 cancel_delayed_work_sync(&rt5645->jack_detect_work); in rt5645_i2c_remove()
4292 cancel_delayed_work_sync(&rt5645->rcclock_work); in rt5645_i2c_remove()
4294 if (rt5645->gpiod_cbj_sleeve) in rt5645_i2c_remove()
4295 gpiod_set_value(rt5645->gpiod_cbj_sleeve, 0); in rt5645_i2c_remove()
4297 regulator_bulk_disable(ARRAY_SIZE(rt5645->supplies), rt5645->supplies); in rt5645_i2c_remove()
4302 struct rt5645_priv *rt5645 = i2c_get_clientdata(i2c); in rt5645_i2c_shutdown() local
4304 regmap_update_bits(rt5645->regmap, RT5645_GEN_CTRL3, in rt5645_i2c_shutdown()
4306 regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL2, RT5645_CBJ_MN_JD, in rt5645_i2c_shutdown()
4308 regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL1, RT5645_CBJ_BST1_EN, in rt5645_i2c_shutdown()
4311 regmap_write(rt5645->regmap, RT5645_RESET, 0); in rt5645_i2c_shutdown()
4313 if (rt5645->gpiod_cbj_sleeve) in rt5645_i2c_shutdown()
4314 gpiod_set_value(rt5645->gpiod_cbj_sleeve, 0); in rt5645_i2c_shutdown()
4319 struct rt5645_priv *rt5645 = dev_get_drvdata(dev); in rt5645_sys_suspend() local
4321 timer_delete_sync(&rt5645->btn_check_timer); in rt5645_sys_suspend()
4322 cancel_delayed_work_sync(&rt5645->jack_detect_work); in rt5645_sys_suspend()
4323 cancel_delayed_work_sync(&rt5645->rcclock_work); in rt5645_sys_suspend()
4325 regcache_cache_only(rt5645->regmap, true); in rt5645_sys_suspend()
4326 regcache_mark_dirty(rt5645->regmap); in rt5645_sys_suspend()
4332 struct rt5645_priv *rt5645 = dev_get_drvdata(dev); in rt5645_sys_resume() local
4334 regcache_cache_only(rt5645->regmap, false); in rt5645_sys_resume()
4335 regcache_sync(rt5645->regmap); in rt5645_sys_resume()
4337 if (rt5645->hp_jack) { in rt5645_sys_resume()
4338 rt5645->jack_type = 0; in rt5645_sys_resume()
4339 rt5645_jack_detect_work(&rt5645->jack_detect_work.work); in rt5645_sys_resume()