Lines Matching refs:rk312x_priv
132 static struct rk312x_codec_priv *rk312x_priv; variable
256 if (!rk312x_priv) { in rk312x_codec_ctl_gpio()
261 if ((gpio & CODEC_SET_SPK) && rk312x_priv && in rk312x_codec_ctl_gpio()
262 rk312x_priv->spk_ctl_gpio) { in rk312x_codec_ctl_gpio()
263 gpiod_set_value(rk312x_priv->spk_ctl_gpio, level); in rk312x_codec_ctl_gpio()
265 msleep(rk312x_priv->spk_mute_delay); in rk312x_codec_ctl_gpio()
268 if ((gpio & CODEC_SET_HP) && rk312x_priv && in rk312x_codec_ctl_gpio()
269 rk312x_priv->hp_ctl_gpio) { in rk312x_codec_ctl_gpio()
270 gpiod_set_value(rk312x_priv->hp_ctl_gpio, level); in rk312x_codec_ctl_gpio()
272 msleep(rk312x_priv->hp_mute_delay); in rk312x_codec_ctl_gpio()
281 if (!rk312x_priv) {
286 if (rk312x_priv->spk_hp_switch_gpio != INVALID_GPIO) {
287 gpio_set_value(rk312x_priv->spk_hp_switch_gpio, rk312x_priv->spk_io);
289 msleep(rk312x_priv->spk_mute_delay);
292 if (rk312x_priv->spk_hp_switch_gpio != INVALID_GPIO) {
293 gpio_set_value(rk312x_priv->spk_hp_switch_gpio, !rk312x_priv->spk_io);
295 msleep(rk312x_priv->hp_mute_delay);
305 regmap_write(rk312x_priv->regmap, RK312x_RESET, 0x00); in rk312x_reset()
307 regmap_write(rk312x_priv->regmap, RK312x_RESET, 0x43); in rk312x_reset()
634 if (!rk312x_priv) { in rk312x_codec_mute_dac()
639 snd_soc_component_write(rk312x_priv->component, 0xb4, 0x40); in rk312x_codec_mute_dac()
640 snd_soc_component_write(rk312x_priv->component, 0xb8, 0x40); in rk312x_codec_mute_dac()
649 if (!rk312x_priv) { in rk312x_playback_path_get()
657 ucontrol->value.integer.value[0] = rk312x_priv->playback_path; in rk312x_playback_path_get()
667 if (!rk312x_priv) { in rk312x_playback_path_put()
672 if (rk312x_priv->playback_path == in rk312x_playback_path_put()
678 pre_path = rk312x_priv->playback_path; in rk312x_playback_path_put()
679 rk312x_priv->playback_path = ucontrol->value.integer.value[0]; in rk312x_playback_path_put()
682 rk312x_priv->playback_path); in rk312x_playback_path_put()
684 switch (rk312x_priv->playback_path) { in rk312x_playback_path_put()
695 snd_soc_component_write(rk312x_priv->component, in rk312x_playback_path_put()
696 0xb4, rk312x_priv->spk_volume); in rk312x_playback_path_put()
697 snd_soc_component_write(rk312x_priv->component, in rk312x_playback_path_put()
698 0xb8, rk312x_priv->spk_volume); in rk312x_playback_path_put()
707 snd_soc_component_write(rk312x_priv->component, in rk312x_playback_path_put()
708 0xb4, rk312x_priv->hp_volume); in rk312x_playback_path_put()
709 snd_soc_component_write(rk312x_priv->component, in rk312x_playback_path_put()
710 0xb8, rk312x_priv->hp_volume); in rk312x_playback_path_put()
719 snd_soc_component_write(rk312x_priv->component, in rk312x_playback_path_put()
720 0xb4, rk312x_priv->spk_volume); in rk312x_playback_path_put()
721 snd_soc_component_write(rk312x_priv->component, in rk312x_playback_path_put()
722 0xb8, rk312x_priv->spk_volume); in rk312x_playback_path_put()
735 if (!rk312x_priv) { in rk312x_capture_path_get()
743 ucontrol->value.integer.value[0] = rk312x_priv->capture_path; in rk312x_capture_path_get()
753 if (!rk312x_priv) { in rk312x_capture_path_put()
758 if (rk312x_priv->capture_path == ucontrol->value.integer.value[0]) in rk312x_capture_path_put()
761 pre_path = rk312x_priv->capture_path; in rk312x_capture_path_put()
762 rk312x_priv->capture_path = ucontrol->value.integer.value[0]; in rk312x_capture_path_put()
765 rk312x_priv->capture_path); in rk312x_capture_path_put()
767 switch (rk312x_priv->capture_path) { in rk312x_capture_path_put()
775 snd_soc_component_write(rk312x_priv->component, 0x10c, in rk312x_capture_path_put()
776 0x20 | rk312x_priv->capture_volume); in rk312x_capture_path_put()
777 snd_soc_component_write(rk312x_priv->component, 0x14c, in rk312x_capture_path_put()
778 0x20 | rk312x_priv->capture_volume); in rk312x_capture_path_put()
784 snd_soc_component_write(rk312x_priv->component, in rk312x_capture_path_put()
785 0x10c, 0x20 | rk312x_priv->capture_volume); in rk312x_capture_path_put()
786 snd_soc_component_write(rk312x_priv->component, in rk312x_capture_path_put()
787 0x14c, 0x20 | rk312x_priv->capture_volume); in rk312x_capture_path_put()
803 if (!rk312x_priv) { in rk312x_voice_call_path_get()
811 ucontrol->value.integer.value[0] = rk312x_priv->voice_call_path; in rk312x_voice_call_path_get()
821 if (!rk312x_priv) { in rk312x_voice_call_path_put()
826 if (rk312x_priv->voice_call_path == ucontrol->value.integer.value[0]) in rk312x_voice_call_path_put()
829 pre_path = rk312x_priv->voice_call_path; in rk312x_voice_call_path_put()
830 rk312x_priv->voice_call_path = ucontrol->value.integer.value[0]; in rk312x_voice_call_path_put()
833 rk312x_priv->voice_call_path); in rk312x_voice_call_path_put()
837 if (rk312x_priv->playback_path != OFF) { in rk312x_voice_call_path_put()
842 snd_soc_component_write(rk312x_priv->component, in rk312x_voice_call_path_put()
843 0xb4, rk312x_priv->spk_volume); in rk312x_voice_call_path_put()
844 snd_soc_component_write(rk312x_priv->component, in rk312x_voice_call_path_put()
845 0xb8, rk312x_priv->spk_volume); in rk312x_voice_call_path_put()
849 switch (rk312x_priv->voice_call_path) { in rk312x_voice_call_path_put()
1263 regmap_write(rk312x_priv->regmap, RK312x_DAC_INT_CTL3, 0x32); in rk312x_set_bias_level()
1314 regmap_write(rk312x_priv->regmap, RK312x_DAC_INT_CTL3, 0x22); in rk312x_set_bias_level()
1324 struct rk312x_codec_priv *rk312x = rk312x_priv; in rk312x_set_dai_sysclk()
1428 struct rk312x_codec_priv *rk312x = rk312x_priv; in rk312x_hw_params()
1543 if (!rk312x_priv->rk312x_for_mid) { in rk312x_digital_mute()
1544 schedule_delayed_work(&rk312x_priv->mute_delayed_work, in rk312x_digital_mute()
1545 msecs_to_jiffies(rk312x_priv->spk_mute_delay)); in rk312x_digital_mute()
1547 switch (rk312x_priv->playback_path) { in rk312x_digital_mute()
1680 if (!rk312x_priv || !rk312x_priv->component) { in rk312x_codec_power_up()
1685 component = rk312x_priv->component; in rk312x_codec_power_up()
1699 if (rk312x_priv->rk312x_for_mid == 1) { in rk312x_codec_power_up()
1730 if (!rk312x_priv || !rk312x_priv->component) { in rk312x_codec_power_down()
1735 component = rk312x_priv->component; in rk312x_codec_power_down()
1775 snd_soc_component_write(rk312x_priv->component, in rk312x_codec_capture_work()
1776 0x10c, 0x20 | rk312x_priv->capture_volume); in rk312x_codec_capture_work()
1777 snd_soc_component_write(rk312x_priv->component, in rk312x_codec_capture_work()
1778 0x14c, 0x20 | rk312x_priv->capture_volume); in rk312x_codec_capture_work()
1790 struct rk312x_codec_priv *rk312x = rk312x_priv; in rk312x_startup()
1795 if (rk312x_priv->rk312x_for_mid) { in rk312x_startup()
1814 snd_soc_component_write(rk312x_priv->component, in rk312x_startup()
1815 0xb4, rk312x_priv->spk_volume); in rk312x_startup()
1816 snd_soc_component_write(rk312x_priv->component, in rk312x_startup()
1817 0xb8, rk312x_priv->spk_volume); in rk312x_startup()
1837 struct rk312x_codec_priv *rk312x = rk312x_priv; in rk312x_shutdown()
1842 if (rk312x_priv->rk312x_for_mid) { in rk312x_shutdown()
1976 if (rk312x_priv->codec_hp_det) { in rk312x_suspend()
1978 regmap_read(rk312x_priv->grf, GRF_ACODEC_CON, &val); in rk312x_suspend()
1979 regmap_write(rk312x_priv->grf, GRF_ACODEC_CON, 0x1f0013); in rk312x_suspend()
1980 regmap_read(rk312x_priv->grf, GRF_ACODEC_CON, &val); in rk312x_suspend()
1981 cancel_delayed_work_sync(&rk312x_priv->hpdet_work); in rk312x_suspend()
1984 if (rk312x_priv->rk312x_for_mid) { in rk312x_suspend()
2013 snd_soc_component_get_drvdata(rk312x_priv->component); in gpio_store()
2067 if (rk312x_priv->codec_hp_det) { in rk312x_resume()
2072 regmap_read(rk312x_priv->grf, GRF_ACODEC_CON, &val); in rk312x_resume()
2073 regmap_write(rk312x_priv->grf, GRF_ACODEC_CON, 0x1f001f); in rk312x_resume()
2074 regmap_read(rk312x_priv->grf, GRF_ACODEC_CON, &val); in rk312x_resume()
2076 schedule_delayed_work(&rk312x_priv->hpdet_work, msecs_to_jiffies(20)); in rk312x_resume()
2078 if (!rk312x_priv->rk312x_for_mid) in rk312x_resume()
2087 regmap_read(rk312x_priv->grf, GRF_ACODEC_CON, &val); in codec_hp_det_isr()
2091 regmap_write(rk312x_priv->grf, GRF_ACODEC_CON, val | 0x10001); in codec_hp_det_isr()
2094 regmap_write(rk312x_priv->grf, GRF_ACODEC_CON, val | 0x20002); in codec_hp_det_isr()
2096 cancel_delayed_work(&rk312x_priv->hpdet_work); in codec_hp_det_isr()
2097 schedule_delayed_work(&rk312x_priv->hpdet_work, msecs_to_jiffies(20)); in codec_hp_det_isr()
2104 regmap_read(rk312x_priv->grf, GRF_SOC_STATUS0, &val); in hpdet_work_func()
2109 extcon_set_state_sync(rk312x_priv->edev, in hpdet_work_func()
2114 extcon_set_state_sync(rk312x_priv->edev, in hpdet_work_func()
2129 if (!rk312x_priv || !rk312x_priv->component) { in rk312x_delay_workq()
2134 rk312x_codec = snd_soc_component_get_drvdata(rk312x_priv->component); in rk312x_delay_workq()
2137 if (!rk312x_priv->rk312x_for_mid) { in rk312x_delay_workq()
2148 ret = devm_request_irq(rk312x_priv->dev, rk312x_priv->irq, codec_hp_det_isr, in rk312x_delay_workq()
2153 regmap_read(rk312x_priv->grf, GRF_ACODEC_CON, &val); in rk312x_delay_workq()
2154 regmap_write(rk312x_priv->grf, GRF_ACODEC_CON, 0x1f001f); in rk312x_delay_workq()
2155 regmap_read(rk312x_priv->grf, GRF_ACODEC_CON, &val); in rk312x_delay_workq()
2162 schedule_delayed_work(&rk312x_priv->hpdet_work, msecs_to_jiffies(100)); in rk312x_delay_workq()
2201 INIT_DELAYED_WORK(&rk312x_priv->init_delayed_work, rk312x_delay_workq); in rk312x_probe()
2202 INIT_DELAYED_WORK(&rk312x_priv->mute_delayed_work, rk312x_codec_unpop); in rk312x_probe()
2203 INIT_DELAYED_WORK(&rk312x_priv->hpdet_work, hpdet_work_func); in rk312x_probe()
2205 schedule_delayed_work(&rk312x_priv->init_delayed_work, msecs_to_jiffies(3000)); in rk312x_probe()
2231 if (!rk312x_priv) { in rk312x_remove()
2236 if (rk312x_priv->spk_ctl_gpio) in rk312x_remove()
2237 gpiod_set_value(rk312x_priv->spk_ctl_gpio, 0); in rk312x_remove()
2239 if (rk312x_priv->hp_ctl_gpio) in rk312x_remove()
2240 gpiod_set_value(rk312x_priv->hp_ctl_gpio, 0); in rk312x_remove()
2244 if (rk312x_priv->rk312x_for_mid) { in rk312x_remove()
2291 rk312x_priv = rk312x; in rk312x_platform_probe()
2452 rk312x_priv = NULL; in rk312x_platform_probe()
2459 rk312x_priv = NULL; in rk312x_platform_remove()
2467 if (!rk312x_priv || !rk312x_priv->component) { in rk312x_platform_shutdown()
2472 if (rk312x_priv->codec_hp_det) { in rk312x_platform_shutdown()
2474 regmap_read(rk312x_priv->grf, GRF_ACODEC_CON, &val); in rk312x_platform_shutdown()
2475 regmap_write(rk312x_priv->grf, GRF_ACODEC_CON, 0x1f0013); in rk312x_platform_shutdown()
2476 regmap_read(rk312x_priv->grf, GRF_ACODEC_CON, &val); in rk312x_platform_shutdown()
2478 cancel_delayed_work_sync(&rk312x_priv->hpdet_work); in rk312x_platform_shutdown()
2481 if (rk312x_priv->spk_ctl_gpio) in rk312x_platform_shutdown()
2482 gpiod_set_value(rk312x_priv->spk_ctl_gpio, 0); in rk312x_platform_shutdown()
2484 if (rk312x_priv->hp_ctl_gpio) in rk312x_platform_shutdown()
2485 gpiod_set_value(rk312x_priv->hp_ctl_gpio, 0); in rk312x_platform_shutdown()
2489 if (rk312x_priv->rk312x_for_mid) { in rk312x_platform_shutdown()
2497 regmap_write(rk312x_priv->regmap, RK312x_RESET, 0xfc); in rk312x_platform_shutdown()
2499 regmap_write(rk312x_priv->regmap, RK312x_RESET, 0x03); in rk312x_platform_shutdown()