[PATCH 1/3] media: i2c: imx219: add support for specifying clock-frequencies
Krzysztof Kozlowski
krzk at kernel.org
Mon Dec 7 04:44:38 EST 2020
On Sat, Dec 05, 2020 at 07:33:53PM +0100, michael.srba at seznam.cz wrote:
> From: Michael Srba <Michael.Srba at seznam.cz>
>
> This patch adds 1% tolerance on input clock, similar to other camera sensor
> drivers. It also allows for specifying the actual clock in the device tree,
> instead of relying on it being already set to the right frequency (which is
> often not the case).
All this can be achieved with assigned-clocks-rate and basically you do
not add here value. At least not for DT-based systems. The supported
clock rates will be the same. The method of choosing frequency is
over-complicated comparing to simple assigned-clocks.
If this is for ACPI systems, please document in commit msg why you
cannot used assigned-clocks and choose this solution.
>
> Signed-off-by: Michael Srba <Michael.Srba at seznam.cz>
> ---
> drivers/media/i2c/imx219.c | 17 +++++++++++++++--
> 1 file changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c
> index f64c0ef7a897..a8f05562d0af 100644
> --- a/drivers/media/i2c/imx219.c
> +++ b/drivers/media/i2c/imx219.c
> @@ -1443,13 +1443,26 @@ static int imx219_probe(struct i2c_client *client)
> return PTR_ERR(imx219->xclk);
> }
>
> - imx219->xclk_freq = clk_get_rate(imx219->xclk);
> - if (imx219->xclk_freq != IMX219_XCLK_FREQ) {
> + ret = fwnode_property_read_u32(dev_fwnode(dev), "clock-frequency", &imx219->xclk_freq);
> + if (ret) {
> + dev_err(dev, "could not get xclk frequency\n");
> + return ret;
> + }
> +
> + /* this driver currently expects 24MHz; allow 1% tolerance */
> + if (imx219->xclk_freq < 23760000 || imx219->xclk_freq > 24240000) {
> dev_err(dev, "xclk frequency not supported: %d Hz\n",
> imx219->xclk_freq);
> return -EINVAL;
> }
>
> + ret = clk_set_rate(imx219->xclk, imx219->xclk_freq);
> + if (ret) {
> + dev_err(dev, "could not set xclk frequency\n");
> + return ret;
> + }
> +
> +
No need for double line break.
Best regards,
Krzysztof
More information about the linux-arm-kernel
mailing list