[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250415-imx214_ccs_pll-v1-4-d3d7748e5fbd@apitzsch.eu>
Date: Tue, 15 Apr 2025 23:22:18 +0200
From: André Apitzsch via B4 Relay <devnull+git.apitzsch.eu@...nel.org>
To: Ricardo Ribalda <ribalda@...nel.org>,
Sakari Ailus <sakari.ailus@...ux.intel.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>
Cc: ~postmarketos/upstreaming@...ts.sr.ht, phone-devel@...r.kernel.org,
linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
André Apitzsch <git@...tzsch.eu>
Subject: [PATCH 4/4] media: i2c: imx214: Read clock frequency from device
tree
From: André Apitzsch <git@...tzsch.eu>
Replace the hard coded external clock frequency by the one read from
device tree.
Signed-off-by: André Apitzsch <git@...tzsch.eu>
---
drivers/media/i2c/imx214.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/media/i2c/imx214.c b/drivers/media/i2c/imx214.c
index 5589228d2b44417c0dbf15a6a17fd8f954f1a2bc..6d7f05073aa9ffb054d454771ce22e3141af60e8 100644
--- a/drivers/media/i2c/imx214.c
+++ b/drivers/media/i2c/imx214.c
@@ -1388,6 +1388,7 @@ static int imx214_probe(struct i2c_client *client)
{
struct device *dev = &client->dev;
struct imx214 *imx214;
+ u32 xclk_freq;
int ret;
imx214 = devm_kzalloc(dev, sizeof(*imx214), GFP_KERNEL);
@@ -1401,7 +1402,14 @@ static int imx214_probe(struct i2c_client *client)
return dev_err_probe(dev, PTR_ERR(imx214->xclk),
"failed to get xclk\n");
- ret = clk_set_rate(imx214->xclk, IMX214_DEFAULT_CLK_FREQ);
+ ret = device_property_read_u32(dev, "clock-frequency", &xclk_freq);
+ if (ret) {
+ dev_warn(dev,
+ "clock-frequency not set, please review your DT. Fallback to default\n");
+ xclk_freq = IMX214_DEFAULT_CLK_FREQ;
+ }
+
+ ret = clk_set_rate(imx214->xclk, xclk_freq);
if (ret)
return dev_err_probe(dev, ret,
"failed to set xclk frequency\n");
--
2.49.0
Powered by blists - more mailing lists