Lines Matching refs:evea
15 #define DRV_NAME "evea"
107 static void evea_set_power_state_on(struct evea_priv *evea)
109 struct regmap *map = evea->regmap;
125 static void evea_set_power_state_off(struct evea_priv *evea)
127 struct regmap *map = evea->regmap;
144 static int evea_update_switch_lin(struct evea_priv *evea)
146 struct regmap *map = evea->regmap;
148 if (evea->switch_lin) {
168 static int evea_update_switch_lo(struct evea_priv *evea)
170 struct regmap *map = evea->regmap;
172 if (evea->switch_lo) {
196 static int evea_update_switch_hp(struct evea_priv *evea)
198 struct regmap *map = evea->regmap;
200 if (evea->switch_hp) {
221 static void evea_update_switch_all(struct evea_priv *evea)
223 evea_update_switch_lin(evea);
224 evea_update_switch_lo(evea);
225 evea_update_switch_hp(evea);
232 struct evea_priv *evea = snd_soc_component_get_drvdata(component);
234 ucontrol->value.integer.value[0] = evea->switch_lin;
243 struct evea_priv *evea = snd_soc_component_get_drvdata(component);
245 if (evea->switch_lin == ucontrol->value.integer.value[0])
248 evea->switch_lin = ucontrol->value.integer.value[0];
250 return evea_update_switch_lin(evea);
257 struct evea_priv *evea = snd_soc_component_get_drvdata(component);
259 ucontrol->value.integer.value[0] = evea->switch_lo;
268 struct evea_priv *evea = snd_soc_component_get_drvdata(component);
270 if (evea->switch_lo == ucontrol->value.integer.value[0])
273 evea->switch_lo = ucontrol->value.integer.value[0];
275 return evea_update_switch_lo(evea);
282 struct evea_priv *evea = snd_soc_component_get_drvdata(component);
284 ucontrol->value.integer.value[0] = evea->switch_hp;
293 struct evea_priv *evea = snd_soc_component_get_drvdata(component);
295 if (evea->switch_hp == ucontrol->value.integer.value[0])
298 evea->switch_hp = ucontrol->value.integer.value[0];
300 return evea_update_switch_hp(evea);
314 struct evea_priv *evea = snd_soc_component_get_drvdata(component);
316 evea->switch_lin = 1;
317 evea->switch_lo = 1;
318 evea->switch_hp = 1;
320 evea_set_power_state_on(evea);
321 evea_update_switch_all(evea);
328 struct evea_priv *evea = snd_soc_component_get_drvdata(component);
330 evea_set_power_state_off(evea);
332 reset_control_assert(evea->rst_adamv);
333 reset_control_assert(evea->rst_exiv);
334 reset_control_assert(evea->rst);
336 clk_disable_unprepare(evea->clk_exiv);
337 clk_disable_unprepare(evea->clk);
344 struct evea_priv *evea = snd_soc_component_get_drvdata(component);
347 ret = clk_prepare_enable(evea->clk);
351 ret = clk_prepare_enable(evea->clk_exiv);
355 ret = reset_control_deassert(evea->rst);
359 ret = reset_control_deassert(evea->rst_exiv);
363 ret = reset_control_deassert(evea->rst_adamv);
367 evea_set_power_state_on(evea);
368 evea_update_switch_all(evea);
373 reset_control_assert(evea->rst_exiv);
376 reset_control_assert(evea->rst);
379 clk_disable_unprepare(evea->clk_exiv);
382 clk_disable_unprepare(evea->clk);
453 struct evea_priv *evea;
457 evea = devm_kzalloc(&pdev->dev, sizeof(struct evea_priv), GFP_KERNEL);
458 if (!evea)
461 evea->clk = devm_clk_get(&pdev->dev, "evea");
462 if (IS_ERR(evea->clk))
463 return PTR_ERR(evea->clk);
465 evea->clk_exiv = devm_clk_get(&pdev->dev, "exiv");
466 if (IS_ERR(evea->clk_exiv))
467 return PTR_ERR(evea->clk_exiv);
469 evea->rst = devm_reset_control_get_shared(&pdev->dev, "evea");
470 if (IS_ERR(evea->rst))
471 return PTR_ERR(evea->rst);
473 evea->rst_exiv = devm_reset_control_get_shared(&pdev->dev, "exiv");
474 if (IS_ERR(evea->rst_exiv))
475 return PTR_ERR(evea->rst_exiv);
481 evea->regmap = devm_regmap_init_mmio(&pdev->dev, preg,
483 if (IS_ERR(evea->regmap))
484 return PTR_ERR(evea->regmap);
486 ret = clk_prepare_enable(evea->clk);
490 ret = clk_prepare_enable(evea->clk_exiv);
494 ret = reset_control_deassert(evea->rst);
498 ret = reset_control_deassert(evea->rst_exiv);
503 evea->rst_adamv = devm_reset_control_get_shared(&pdev->dev, "adamv");
504 if (IS_ERR(evea->rst_adamv)) {
505 ret = PTR_ERR(evea->rst_adamv);
509 ret = reset_control_deassert(evea->rst_adamv);
513 platform_set_drvdata(pdev, evea);
523 reset_control_assert(evea->rst_adamv);
526 reset_control_assert(evea->rst_exiv);
529 reset_control_assert(evea->rst);
532 clk_disable_unprepare(evea->clk_exiv);
535 clk_disable_unprepare(evea->clk);
542 struct evea_priv *evea = platform_get_drvdata(pdev);
544 reset_control_assert(evea->rst_adamv);
545 reset_control_assert(evea->rst_exiv);
546 reset_control_assert(evea->rst);
548 clk_disable_unprepare(evea->clk_exiv);
549 clk_disable_unprepare(evea->clk);
555 { .compatible = "socionext,uniphier-evea", },