[PATCH v2 19/66] media: sun6i-csi: Grab bus clock instead of passing it to regmap

Paul Kocialkowski
2022-02-05T18:55:29Z

Since the bus clock alone is not enough to get access to the registers,
don't pass it to regmap and manage it instead just like the other
clocks.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
---
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 10 ++++++++--
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h | 1 +
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
index 5fbaa1e99412..dc79f3c14336 100644
--- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
+++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
@@ -827,13 +827,19 @@ static int sun6i_csi_resource_request(struct sun6i_csi_device *csi_dev,
if (IS_ERR(io_base))
return PTR_ERR(io_base);

- csi_dev->regmap = devm_regmap_init_mmio_clk(&pdev->dev, "bus", io_base,
- &sun6i_csi_regmap_config);
+ csi_dev->regmap = devm_regmap_init_mmio(&pdev->dev, io_base,
+ &sun6i_csi_regmap_config);
if (IS_ERR(csi_dev->regmap)) {
dev_err(&pdev->dev, "Failed to init register map\n");
return PTR_ERR(csi_dev->regmap);
}

+ csi_dev->clk_bus = devm_clk_get(&pdev->dev, "bus");
+ if (IS_ERR(csi_dev->clk_bus)) {
+ dev_err(&pdev->dev, "Unable to acquire bus clock\n");
+ return PTR_ERR(csi_dev->clk_bus);
+ }
+
csi_dev->clk_mod = devm_clk_get(&pdev->dev, "mod");
if (IS_ERR(csi_dev->clk_mod)) {
dev_err(&pdev->dev, "Unable to acquire csi clock\n");
diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h
index e4e7ac6c869f..356661b413f8 100644
--- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h
+++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h
@@ -51,6 +51,7 @@ struct sun6i_csi_device {
struct sun6i_video video;

struct regmap *regmap;
+ struct clk *clk_bus;
struct clk *clk_mod;
struct clk *clk_ram;
struct reset_control *reset;
--
2.34.1