Lines Matching refs:rk3228

56 	struct rk3228_codec_priv *rk3228 = snd_soc_component_get_drvdata(component);  in rk3228_codec_reset()  local
58 regmap_write(rk3228->regmap, CODEC_RESET, 0); in rk3228_codec_reset()
60 regmap_write(rk3228->regmap, CODEC_RESET, 0x03); in rk3228_codec_reset()
69 struct rk3228_codec_priv *rk3228 = snd_soc_component_get_drvdata(component); in rk3228_set_dai_fmt() local
83 regmap_update_bits(rk3228->regmap, DAC_INIT_CTRL1, in rk3228_set_dai_fmt()
105 regmap_update_bits(rk3228->regmap, DAC_INIT_CTRL2, in rk3228_set_dai_fmt()
110 static void rk3228_analog_output(struct rk3228_codec_priv *rk3228, int mute) in rk3228_analog_output() argument
112 if (rk3228->spk_en_gpio) in rk3228_analog_output()
113 gpiod_set_value(rk3228->spk_en_gpio, mute); in rk3228_analog_output()
119 struct rk3228_codec_priv *rk3228 = snd_soc_component_get_drvdata(component); in rk3228_digital_mute() local
127 regmap_update_bits(rk3228->regmap, HPOUT_CTRL, in rk3228_digital_mute()
134 struct rk3228_codec_priv *rk3228 = snd_soc_component_get_drvdata(component); in rk3228_codec_power_on() local
136 regmap_update_bits(rk3228->regmap, DAC_PRECHARGE_CTRL, in rk3228_codec_power_on()
139 regmap_update_bits(rk3228->regmap, DAC_PRECHARGE_CTRL, in rk3228_codec_power_on()
150 struct rk3228_codec_priv *rk3228 = snd_soc_component_get_drvdata(component); in rk3228_codec_power_off() local
152 regmap_update_bits(rk3228->regmap, DAC_PRECHARGE_CTRL, in rk3228_codec_power_off()
155 regmap_update_bits(rk3228->regmap, DAC_PRECHARGE_CTRL, in rk3228_codec_power_off()
197 struct rk3228_codec_priv *rk3228 = snd_soc_component_get_drvdata(component); in rk3228_codec_open_playback() local
200 regmap_update_bits(rk3228->regmap, DAC_PRECHARGE_CTRL, in rk3228_codec_open_playback()
205 regmap_update_bits(rk3228->regmap, in rk3228_codec_open_playback()
212 msleep(rk3228->spk_depop_time); in rk3228_codec_open_playback()
213 rk3228_analog_output(rk3228, 1); in rk3228_codec_open_playback()
215 regmap_update_bits(rk3228->regmap, HPOUTL_GAIN_CTRL, in rk3228_codec_open_playback()
217 regmap_update_bits(rk3228->regmap, HPOUTR_GAIN_CTRL, in rk3228_codec_open_playback()
253 struct rk3228_codec_priv *rk3228 = snd_soc_component_get_drvdata(component); in rk3228_codec_close_playback() local
256 rk3228_analog_output(rk3228, 0); in rk3228_codec_close_playback()
258 regmap_update_bits(rk3228->regmap, HPOUTL_GAIN_CTRL, in rk3228_codec_close_playback()
260 regmap_update_bits(rk3228->regmap, HPOUTR_GAIN_CTRL, in rk3228_codec_close_playback()
264 regmap_update_bits(rk3228->regmap, in rk3228_codec_close_playback()
271 regmap_update_bits(rk3228->regmap, DAC_PRECHARGE_CTRL, in rk3228_codec_close_playback()
282 struct rk3228_codec_priv *rk3228 = snd_soc_component_get_drvdata(component); in rk3228_hw_params() local
302 regmap_update_bits(rk3228->regmap, DAC_INIT_CTRL2, DAC_VDL_MASK, val); in rk3228_hw_params()
304 regmap_update_bits(rk3228->regmap, DAC_INIT_CTRL3, in rk3228_hw_params()
438 struct rk3228_codec_priv *rk3228; in rk3228_platform_probe() local
443 rk3228 = devm_kzalloc(&pdev->dev, sizeof(*rk3228), GFP_KERNEL); in rk3228_platform_probe()
444 if (!rk3228) in rk3228_platform_probe()
447 rk3228->mclk = devm_clk_get(&pdev->dev, "mclk"); in rk3228_platform_probe()
448 if (PTR_ERR(rk3228->mclk) == -EPROBE_DEFER) in rk3228_platform_probe()
451 rk3228->pclk = devm_clk_get(&pdev->dev, "pclk"); in rk3228_platform_probe()
452 if (IS_ERR(rk3228->pclk)) in rk3228_platform_probe()
453 return PTR_ERR(rk3228->pclk); in rk3228_platform_probe()
455 rk3228->sclk = devm_clk_get(&pdev->dev, "sclk"); in rk3228_platform_probe()
456 if (IS_ERR(rk3228->sclk)) in rk3228_platform_probe()
457 return PTR_ERR(rk3228->sclk); in rk3228_platform_probe()
459 rk3228->spk_en_gpio = devm_gpiod_get_optional(&pdev->dev, in rk3228_platform_probe()
462 if (IS_ERR(rk3228->spk_en_gpio)) in rk3228_platform_probe()
463 return PTR_ERR(rk3228->spk_en_gpio); in rk3228_platform_probe()
466 &rk3228->spk_depop_time); in rk3228_platform_probe()
469 rk3228->spk_depop_time = 100; in rk3228_platform_probe()
477 ret = clk_prepare_enable(rk3228->mclk); in rk3228_platform_probe()
481 ret = clk_prepare_enable(rk3228->pclk); in rk3228_platform_probe()
485 ret = clk_prepare_enable(rk3228->sclk); in rk3228_platform_probe()
489 clk_set_rate(rk3228->sclk, INITIAL_FREQ); in rk3228_platform_probe()
491 rk3228->regmap = devm_regmap_init_mmio(&pdev->dev, base, in rk3228_platform_probe()
493 if (IS_ERR(rk3228->regmap)) { in rk3228_platform_probe()
494 ret = PTR_ERR(rk3228->regmap); in rk3228_platform_probe()
498 platform_set_drvdata(pdev, rk3228); in rk3228_platform_probe()
506 clk_disable_unprepare(rk3228->sclk); in rk3228_platform_probe()
508 clk_disable_unprepare(rk3228->pclk); in rk3228_platform_probe()
510 clk_disable_unprepare(rk3228->mclk); in rk3228_platform_probe()
517 struct rk3228_codec_priv *rk3228 = platform_get_drvdata(pdev); in rk3228_platform_remove() local
519 if (!IS_ERR(rk3228->mclk)) in rk3228_platform_remove()
520 clk_disable_unprepare(rk3228->mclk); in rk3228_platform_remove()
522 if (!IS_ERR(rk3228->pclk)) in rk3228_platform_remove()
523 clk_disable_unprepare(rk3228->pclk); in rk3228_platform_remove()
525 if (!IS_ERR(rk3228->sclk)) in rk3228_platform_remove()
526 clk_disable_unprepare(rk3228->sclk); in rk3228_platform_remove()