From: Marcus Folkesson <marcus.folkesson@gmail.com>
To: Wolfram Sang <wsa+renesas@sang-engineering.com>,
Peter Rosin <peda@axentia.se>,
Michael Hennerich <michael.hennerich@analog.com>,
Bartosz Golaszewski <brgl@bgdev.pl>,
Andi Shyti <andi.shyti@kernel.org>
Cc: linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Marcus Folkesson <marcus.folkesson@gmail.com>,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: [PATCH v2 4/5] i2c: davinci: add support for setting bus frequency
Date: Thu, 02 Oct 2025 16:41:35 +0200 [thread overview]
Message-ID: <20251002-i2c-mux-v2-4-b698564cd956@gmail.com> (raw)
In-Reply-To: <20251002-i2c-mux-v2-0-b698564cd956@gmail.com>
Populate adapter with clock_hz and set_clk_freq to enable support for
dynamic bus frequency.
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
---
drivers/i2c/busses/i2c-davinci.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c
index 82f295619c4d0ef108c57d13c10004aa25014cbf..fdde573eb59d11a7c6a87141863df1b9b58f64fd 100644
--- a/drivers/i2c/busses/i2c-davinci.c
+++ b/drivers/i2c/busses/i2c-davinci.c
@@ -279,6 +279,27 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev)
return 0;
}
+static int davinci_i2c_set_clk(struct i2c_adapter *adap, u32 clock_hz)
+{
+ struct davinci_i2c_dev *dev = i2c_get_adapdata(adap);
+
+ if (dev->bus_freq_hz == clock_hz)
+ return 0;
+
+ dev->bus_freq_hz = clock_hz;
+
+ /* put I2C into reset */
+ davinci_i2c_reset_ctrl(dev, 0);
+
+ /* compute clock dividers */
+ i2c_davinci_calc_clk_dividers(dev);
+
+ /* Take the I2C module out of reset: */
+ davinci_i2c_reset_ctrl(dev, 1);
+
+ return 0;
+}
+
/*
* This routine does i2c bus recovery by using i2c_generic_scl_recovery
* which is provided by I2C Bus recovery infrastructure.
@@ -810,6 +831,8 @@ static int davinci_i2c_probe(struct platform_device *pdev)
adap->dev.parent = &pdev->dev;
adap->timeout = DAVINCI_I2C_TIMEOUT;
adap->dev.of_node = dev_of_node(&pdev->dev);
+ adap->clock_hz = dev->bus_freq_hz;
+ adap->set_clk_freq = davinci_i2c_set_clk;
if (dev->has_pfunc)
adap->bus_recovery_info = &davinci_i2c_scl_recovery_info;
--
2.50.1
next prev parent reply other threads:[~2025-10-02 14:42 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-02 14:41 [PATCH v2 0/5] I2C Mux per channel bus speed Marcus Folkesson
2025-10-02 14:41 ` [PATCH v2 1/5] i2c: core: add callback to change bus frequency Marcus Folkesson
2025-10-02 14:41 ` [PATCH v2 2/5] i2c: mux: add support for per channel " Marcus Folkesson
2025-10-02 14:41 ` [PATCH v2 3/5] i2c: davinci: calculate bus freq from Hz instead of kHz Marcus Folkesson
2025-10-02 14:49 ` Bartosz Golaszewski
2025-10-02 14:41 ` Marcus Folkesson [this message]
2025-10-02 14:41 ` [PATCH v2 5/5] docs: i2c: i2c-topology: add section about bus speed Marcus Folkesson
2025-10-14 14:13 ` [PATCH v2 0/5] I2C Mux per channel " Marcus Folkesson
-- strict thread matches above, loose matches on Subject: below --
2025-10-03 10:09 [PATCH v2 2/5] i2c: mux: add support for per channel bus frequency kernel test robot
2025-10-03 10:57 ` Dan Carpenter
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=20251002-i2c-mux-v2-4-b698564cd956@gmail.com \
--to=marcus.folkesson@gmail.com \
--cc=andi.shyti@kernel.org \
--cc=bartosz.golaszewski@linaro.org \
--cc=brgl@bgdev.pl \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael.hennerich@analog.com \
--cc=peda@axentia.se \
--cc=wsa+renesas@sang-engineering.com \
/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: link
Be 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.