Lines Matching refs:xvcu

521 static int xvcu_register_clock_provider(struct xvcu_device *xvcu)
523 struct device *dev = xvcu->dev;
528 void __iomem *reg_base = xvcu->vcu_slcr_ba;
536 xvcu->clk_data = data;
539 "vcu_pll", __clk_get_name(xvcu->pll_ref),
543 xvcu->pll = hw;
545 hw = xvcu_register_pll_post(dev, "vcu_pll_post", xvcu->pll, reg_base);
548 xvcu->pll_post = hw;
551 parent_data[1].hw = xvcu->pll_post;
577 static void xvcu_unregister_clock_provider(struct xvcu_device *xvcu)
579 struct clk_hw_onecell_data *data = xvcu->clk_data;
591 clk_hw_unregister_fixed_factor(xvcu->pll_post);
606 struct xvcu_device *xvcu;
610 xvcu = devm_kzalloc(&pdev->dev, sizeof(*xvcu), GFP_KERNEL);
611 if (!xvcu)
614 xvcu->dev = &pdev->dev;
621 xvcu->vcu_slcr_ba = devm_ioremap(&pdev->dev, res->start,
623 if (!xvcu->vcu_slcr_ba) {
628 xvcu->logicore_reg_ba =
630 if (IS_ERR(xvcu->logicore_reg_ba)) {
647 xvcu->logicore_reg_ba =
650 if (IS_ERR(xvcu->logicore_reg_ba)) {
652 return PTR_ERR(xvcu->logicore_reg_ba);
656 xvcu->aclk = devm_clk_get(&pdev->dev, "aclk");
657 if (IS_ERR(xvcu->aclk)) {
659 return PTR_ERR(xvcu->aclk);
662 xvcu->pll_ref = devm_clk_get(&pdev->dev, "pll_ref");
663 if (IS_ERR(xvcu->pll_ref)) {
665 return PTR_ERR(xvcu->pll_ref);
668 ret = clk_prepare_enable(xvcu->aclk);
679 regmap_write(xvcu->logicore_reg_ba, VCU_GASKET_INIT, VCU_GASKET_VALUE);
681 ret = xvcu_register_clock_provider(xvcu);
687 dev_set_drvdata(&pdev->dev, xvcu);
692 xvcu_unregister_clock_provider(xvcu);
693 clk_disable_unprepare(xvcu->aclk);
707 struct xvcu_device *xvcu;
709 xvcu = platform_get_drvdata(pdev);
711 xvcu_unregister_clock_provider(xvcu);
714 regmap_write(xvcu->logicore_reg_ba, VCU_GASKET_INIT, 0);
716 clk_disable_unprepare(xvcu->aclk);