Hi André, On Tue, Apr 15, 2025 at 11:22:18PM +0200, André Apitzsch via B4 Relay wrote: > From: André Apitzsch <g...@apitzsch.eu> > > Replace the hard coded external clock frequency by the one read from > device tree. > > Signed-off-by: André Apitzsch <g...@apitzsch.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);
Please instead rely on the rate set on the clock (using assigned-clock-rates etc.). See how other drivers do this. Essentially, "clock-frequency" is only relevant for ancient systems and ACPI today. <URL:https://hverkuil.home.xs4all.nl/spec/driver-api/camera-sensor.html> > if (ret) > return dev_err_probe(dev, ret, > "failed to set xclk frequency\n"); > -- Kind regards, Sakari Ailus