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

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
...@@ -55,11 +55,33 @@ static int panfrost_clk_init(struct panfrost_device *pfdev) ...@@ -55,11 +55,33 @@ static int panfrost_clk_init(struct panfrost_device *pfdev)
if (err) if (err)
return 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; return 0;
disable_clock:
clk_disable_unprepare(pfdev->clock);
return err;
} }
static void panfrost_clk_fini(struct panfrost_device *pfdev) static void panfrost_clk_fini(struct panfrost_device *pfdev)
{ {
clk_disable_unprepare(pfdev->bus_clock);
clk_disable_unprepare(pfdev->clock); clk_disable_unprepare(pfdev->clock);
} }
......
...@@ -66,6 +66,7 @@ struct panfrost_device { ...@@ -66,6 +66,7 @@ struct panfrost_device {
void __iomem *iomem; void __iomem *iomem;
struct clk *clock; struct clk *clock;
struct clk *bus_clock;
struct regulator *regulator; struct regulator *regulator;
struct reset_control *rstc; struct reset_control *rstc;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment