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); if (ret) return dev_err_probe(dev, ret, "failed to set xclk frequency\n"); -- 2.49.0