Quoting Maxime Ripard (2020-04-24 08:34:06)
The HDMI block has a block that controls clocks and reset signals to the HDMI0 and HDMI1 controllers.
Let's expose that through a clock driver implementing a clock and reset provider.
Cc: Michael Turquette mturquette@baylibre.com Cc: Stephen Boyd sboyd@kernel.org Cc: Rob Herring robh+dt@kernel.org Cc: linux-clk@vger.kernel.org Cc: devicetree@vger.kernel.org Signed-off-by: Maxime Ripard maxime@cerno.tech
Reviewed-by: Stephen Boyd sboyd@kernel.org
diff --git a/drivers/clk/bcm/clk-bcm2711-dvp.c b/drivers/clk/bcm/clk-bcm2711-dvp.c new file mode 100644 index 000000000000..c1c4b5857d32 --- /dev/null +++ b/drivers/clk/bcm/clk-bcm2711-dvp.c @@ -0,0 +1,127 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// Copyright 2020 Cerno
+#include <linux/clk-provider.h> +#include <linux/module.h>
[...]
+static int clk_dvp_probe(struct platform_device *pdev) +{
struct clk_hw_onecell_data *data;
struct resource *res;
struct clk_dvp *dvp;
void __iomem *base;
int ret;
dvp = devm_kzalloc(&pdev->dev, sizeof(*dvp), GFP_KERNEL);
if (!dvp)
return -ENOMEM;
platform_set_drvdata(pdev, dvp);
dvp->data = devm_kzalloc(&pdev->dev,
struct_size(dvp->data, hws, NR_CLOCKS),
GFP_KERNEL);
if (!dvp->data)
return -ENOMEM;
data = dvp->data;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
base = devm_ioremap_resource(&pdev->dev, res);
devm_platform_ioremap_resource()?
if (IS_ERR(base))
return PTR_ERR(base);