Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b681af0b authored by Clément Péron's avatar Clément Péron Committed by Rob Herring
Browse files

drm: panfrost: add optional bus_clock



Allwinner H6 has an ARM Mali-T720 MP2 which required a bus_clock.

Add an optional bus_clock at the init of the panfrost driver.

Signed-off-by: default avatarClément Péron <peron.clem@gmail.com>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190521161102.29620-2-peron.clem@gmail.com
parent d4db6c08
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -55,11 +55,33 @@ static int panfrost_clk_init(struct panfrost_device *pfdev)
	if (err)
		return err;

	pfdev->bus_clock = devm_clk_get_optional(pfdev->dev, "bus");
	if (IS_ERR(pfdev->bus_clock)) {
		dev_err(pfdev->dev, "get bus_clock failed %ld\n",
			PTR_ERR(pfdev->bus_clock));
		return PTR_ERR(pfdev->bus_clock);
	}

	if (pfdev->bus_clock) {
		rate = clk_get_rate(pfdev->bus_clock);
		dev_info(pfdev->dev, "bus_clock rate = %lu\n", rate);

		err = clk_prepare_enable(pfdev->bus_clock);
		if (err)
			goto disable_clock;
	}

	return 0;

disable_clock:
	clk_disable_unprepare(pfdev->clock);

	return err;
}

static void panfrost_clk_fini(struct panfrost_device *pfdev)
{
	clk_disable_unprepare(pfdev->bus_clock);
	clk_disable_unprepare(pfdev->clock);
}

+1 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ struct panfrost_device {

	void __iomem *iomem;
	struct clk *clock;
	struct clk *bus_clock;
	struct regulator *regulator;
	struct reset_control *rstc;