Lines Matching refs:rd
123 struct rk_dsm_priv *rd = snd_soc_component_get_drvdata(component); in rk_dsm_dac_pa_get() local
125 if (!rd->pa_ctl) in rk_dsm_dac_pa_get()
128 ucontrol->value.enumerated.item[0] = gpiod_get_value(rd->pa_ctl); in rk_dsm_dac_pa_get()
137 struct rk_dsm_priv *rd = snd_soc_component_get_drvdata(component); in rk_dsm_dac_pa_put() local
139 if (!rd->pa_ctl) in rk_dsm_dac_pa_put()
142 gpiod_set_value(rd->pa_ctl, ucontrol->value.enumerated.item[0]); in rk_dsm_dac_pa_put()
203 static void rk_dsm_enable_clk_dac(struct rk_dsm_priv *rd) in rk_dsm_enable_clk_dac() argument
205 regmap_update_bits(rd->regmap, DACCLKCTRL, in rk_dsm_enable_clk_dac()
218 static int rk_dsm_set_clk(struct rk_dsm_priv *rd, in rk_dsm_set_clk() argument
233 clk_set_rate(rd->clk_dac, mclk); in rk_dsm_set_clk()
235 rk_dsm_enable_clk_dac(rd); in rk_dsm_set_clk()
237 regmap_update_bits(rd->regmap, DACSCLKRXINT_DIV, in rk_dsm_set_clk()
240 regmap_update_bits(rd->regmap, I2S_CKR0, in rk_dsm_set_clk()
251 struct rk_dsm_priv *rd = in rk_dsm_set_dai_fmt() local
256 regmap_update_bits(rd->regmap, I2S_CKR1, in rk_dsm_set_dai_fmt()
284 regmap_update_bits(rd->regmap, I2S_CKR1, mask, val); in rk_dsm_set_dai_fmt()
293 struct rk_dsm_priv *rd = in rk_dsm_hw_params() local
297 rk_dsm_set_clk(rd, substream, params_rate(params)); in rk_dsm_hw_params()
330 regmap_update_bits(rd->regmap, DACCFG1, in rk_dsm_hw_params()
346 regmap_update_bits(rd->regmap, I2S_RXCR0, in rk_dsm_hw_params()
349 regmap_update_bits(rd->regmap, DACPWM_CTRL, in rk_dsm_hw_params()
357 regmap_update_bits(rd->regmap, I2S_XFER, in rk_dsm_hw_params()
360 regmap_update_bits(rd->regmap, DACDIGEN, in rk_dsm_hw_params()
373 struct rk_dsm_priv *rd = in rk_dsm_pcm_startup() local
376 gpiod_set_value(rd->pa_ctl, 1); in rk_dsm_pcm_startup()
377 if (rd->pa_ctl_delay_ms) in rk_dsm_pcm_startup()
378 msleep(rd->pa_ctl_delay_ms); in rk_dsm_pcm_startup()
383 static void rk_dsm_reset(struct rk_dsm_priv *rd) in rk_dsm_reset() argument
385 if (IS_ERR(rd->rc)) in rk_dsm_reset()
388 reset_control_assert(rd->rc); in rk_dsm_reset()
390 reset_control_deassert(rd->rc); in rk_dsm_reset()
397 struct rk_dsm_priv *rd = in rk_dsm_pcm_shutdown() local
400 gpiod_set_value(rd->pa_ctl, 0); in rk_dsm_pcm_shutdown()
403 regmap_update_bits(rd->regmap, DACPWM_CTRL, in rk_dsm_pcm_shutdown()
408 regmap_update_bits(rd->regmap, I2S_XFER, in rk_dsm_pcm_shutdown()
411 regmap_update_bits(rd->regmap, I2S_CLR, in rk_dsm_pcm_shutdown()
414 regmap_update_bits(rd->regmap, DACDIGEN, in rk_dsm_pcm_shutdown()
421 rk_dsm_reset(rd); in rk_dsm_pcm_shutdown()
463 struct rk_dsm_priv *rd = dev_get_drvdata(dev); in rk3562_soc_init() local
465 if (IS_ERR(rd->grf)) in rk3562_soc_init()
466 return PTR_ERR(rd->grf); in rk3562_soc_init()
469 return regmap_write(rd->grf, RK3562_GRF_PERI_AUDIO_CON, in rk3562_soc_init()
475 struct rk_dsm_priv *rd = dev_get_drvdata(dev); in rk3562_soc_deinit() local
477 if (IS_ERR(rd->grf)) in rk3562_soc_deinit()
480 regmap_write(rd->grf, RK3562_GRF_PERI_AUDIO_CON, (BIT(14) << 16) | 0x0a100a10); in rk3562_soc_deinit()
499 struct rk_dsm_priv *rd = dev_get_drvdata(dev); in rk_dsm_runtime_resume() local
502 ret = clk_prepare_enable(rd->pclk); in rk_dsm_runtime_resume()
506 regcache_cache_only(rd->regmap, false); in rk_dsm_runtime_resume()
507 regcache_mark_dirty(rd->regmap); in rk_dsm_runtime_resume()
509 ret = clk_prepare_enable(rd->clk_dac); in rk_dsm_runtime_resume()
515 clk_disable_unprepare(rd->pclk); in rk_dsm_runtime_resume()
522 struct rk_dsm_priv *rd = dev_get_drvdata(dev); in rk_dsm_runtime_suspend() local
524 regcache_cache_only(rd->regmap, true); in rk_dsm_runtime_suspend()
525 clk_disable_unprepare(rd->clk_dac); in rk_dsm_runtime_suspend()
526 clk_disable_unprepare(rd->pclk); in rk_dsm_runtime_suspend()
535 struct rk_dsm_priv *rd; in rk_dsm_platform_probe() local
539 rd = devm_kzalloc(&pdev->dev, sizeof(*rd), GFP_KERNEL); in rk_dsm_platform_probe()
540 if (!rd) in rk_dsm_platform_probe()
543 rd->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); in rk_dsm_platform_probe()
544 if (IS_ERR(rd->grf)) in rk_dsm_platform_probe()
545 return PTR_ERR(rd->grf); in rk_dsm_platform_probe()
548 &rd->pa_ctl_delay_ms)) in rk_dsm_platform_probe()
549 rd->pa_ctl_delay_ms = 0; in rk_dsm_platform_probe()
551 rd->rc = devm_reset_control_get(&pdev->dev, "reset"); in rk_dsm_platform_probe()
553 rd->clk_dac = devm_clk_get(&pdev->dev, "dac"); in rk_dsm_platform_probe()
554 if (IS_ERR(rd->clk_dac)) in rk_dsm_platform_probe()
555 return PTR_ERR(rd->clk_dac); in rk_dsm_platform_probe()
557 rd->pclk = devm_clk_get(&pdev->dev, "pclk"); in rk_dsm_platform_probe()
558 if (IS_ERR(rd->pclk)) in rk_dsm_platform_probe()
559 return PTR_ERR(rd->pclk); in rk_dsm_platform_probe()
565 rd->regmap = in rk_dsm_platform_probe()
567 if (IS_ERR(rd->regmap)) in rk_dsm_platform_probe()
568 return PTR_ERR(rd->regmap); in rk_dsm_platform_probe()
570 platform_set_drvdata(pdev, rd); in rk_dsm_platform_probe()
572 rd->data = device_get_match_data(&pdev->dev); in rk_dsm_platform_probe()
573 if (rd->data && rd->data->init) { in rk_dsm_platform_probe()
574 ret = rd->data->init(&pdev->dev); in rk_dsm_platform_probe()
586 regmap_update_bits(rd->regmap, DACPWM_CTRL, in rk_dsm_platform_probe()
590 rd->pa_ctl = devm_gpiod_get_optional(&pdev->dev, "pa-ctl", in rk_dsm_platform_probe()
593 if (!rd->pa_ctl) { in rk_dsm_platform_probe()
595 } else if (IS_ERR(rd->pa_ctl)) { in rk_dsm_platform_probe()
596 ret = PTR_ERR(rd->pa_ctl); in rk_dsm_platform_probe()
615 if (rd->data && rd->data->deinit) in rk_dsm_platform_probe()
616 rd->data->deinit(&pdev->dev); in rk_dsm_platform_probe()
623 struct rk_dsm_priv *rd = dev_get_drvdata(&pdev->dev); in rk_dsm_platform_remove() local
629 if (rd->data && rd->data->deinit) in rk_dsm_platform_remove()
630 rd->data->deinit(&pdev->dev); in rk_dsm_platform_remove()