From: michael.srba@seznam.cz To: Dave Stevenson <dave.stevenson@raspberrypi.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, Rob Herring <robh+dt@kernel.org>, Shawn Guo <shawnguo@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>, Fabio Estevam <festevam@gmail.com>, NXP Linux Team <linux-imx@nxp.com>, Geert Uytterhoeven <geert+renesas@glider.be>, Magnus Damm <magnus.damm@gmail.com>, linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-renesas-soc@vger.kernel.org, Michael Srba <Michael.Srba@seznam.cz> Subject: [PATCH v2 1/3] media: i2c: imx219: add support for specifying clock-frequencies Date: Sun, 6 Dec 2020 18:27:18 +0100 [thread overview] Message-ID: <20201206172720.9406-1-michael.srba@seznam.cz> (raw) From: Michael Srba <Michael.Srba@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). Signed-off-by: Michael Srba <Michael.Srba@seznam.cz> --- changes since v1: default to exactly 24MHz when `clock-frequency` is not present --- drivers/media/i2c/imx219.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index f64c0ef7a897..b6500e2ab19e 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -1443,13 +1443,28 @@ 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_warn(dev, "could not get xclk frequency\n"); + + /* default to 24MHz */ + imx219->xclk_freq = 24000000; + } + + /* 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; + } + + ret = imx219_get_regulators(imx219); if (ret) { dev_err(dev, "failed to get regulators\n"); -- 2.29.2
WARNING: multiple messages have this Message-ID (diff)
From: michael.srba@seznam.cz To: Dave Stevenson <dave.stevenson@raspberrypi.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, Rob Herring <robh+dt@kernel.org>, Shawn Guo <shawnguo@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de> Cc: devicetree@vger.kernel.org, Geert Uytterhoeven <geert+renesas@glider.be>, Magnus Damm <magnus.damm@gmail.com>, linux-renesas-soc@vger.kernel.org, Michael Srba <Michael.Srba@seznam.cz>, NXP Linux Team <linux-imx@nxp.com>, Pengutronix Kernel Team <kernel@pengutronix.de>, Fabio Estevam <festevam@gmail.com>, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Subject: [PATCH v2 1/3] media: i2c: imx219: add support for specifying clock-frequencies Date: Sun, 6 Dec 2020 18:27:18 +0100 [thread overview] Message-ID: <20201206172720.9406-1-michael.srba@seznam.cz> (raw) From: Michael Srba <Michael.Srba@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). Signed-off-by: Michael Srba <Michael.Srba@seznam.cz> --- changes since v1: default to exactly 24MHz when `clock-frequency` is not present --- drivers/media/i2c/imx219.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index f64c0ef7a897..b6500e2ab19e 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -1443,13 +1443,28 @@ 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_warn(dev, "could not get xclk frequency\n"); + + /* default to 24MHz */ + imx219->xclk_freq = 24000000; + } + + /* 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; + } + + ret = imx219_get_regulators(imx219); if (ret) { dev_err(dev, "failed to get regulators\n"); -- 2.29.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2020-12-06 17:33 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-06 17:27 michael.srba [this message] 2020-12-06 17:27 ` [PATCH v2 1/3] media: i2c: imx219: add support for specifying clock-frequencies michael.srba 2020-12-06 17:27 ` [PATCH v2 2/3] media: dt-bindings: media: i2c: imx219: document clock-frequency property michael.srba 2020-12-06 17:27 ` michael.srba 2020-12-06 17:27 ` [PATCH v2 3/3] arm64: dts: update device trees to specify clock-frequency in imx219 node michael.srba 2020-12-06 17:27 ` michael.srba 2020-12-07 5:59 ` [PATCH v2 1/3] media: i2c: imx219: add support for specifying clock-frequencies Sascha Hauer 2020-12-07 5:59 ` Sascha Hauer 2020-12-10 20:51 ` Michael Srba 2020-12-10 20:51 ` Michael Srba 2020-12-18 9:59 ` Krzysztof Kozlowski 2020-12-18 9:59 ` Krzysztof Kozlowski 2020-12-18 10:48 ` Dave Stevenson 2020-12-18 10:48 ` Dave Stevenson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201206172720.9406-1-michael.srba@seznam.cz \ --to=michael.srba@seznam.cz \ --cc=dave.stevenson@raspberrypi.com \ --cc=devicetree@vger.kernel.org \ --cc=festevam@gmail.com \ --cc=geert+renesas@glider.be \ --cc=kernel@pengutronix.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-imx@nxp.com \ --cc=linux-media@vger.kernel.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=magnus.damm@gmail.com \ --cc=mchehab@kernel.org \ --cc=robh+dt@kernel.org \ --cc=s.hauer@pengutronix.de \ --cc=shawnguo@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.