mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-07 13:13:57 +08:00
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: Clément Péron <peron.clem@gmail.com> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190521161102.29620-2-peron.clem@gmail.com
This commit is contained in:
parent
d4db6c0890
commit
b681af0bc1
@ -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 {
|
|||||||
|
|
||||||
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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user