All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Théo Lebrun" <theo.lebrun@bootlin.com>
To: Linus Walleij <linus.walleij@linaro.org>,
	 Andi Shyti <andi.shyti@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	 Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	 Conor Dooley <conor+dt@kernel.org>,
	 Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mips@vger.kernel.org,
	"Gregory Clement" <gregory.clement@bootlin.com>,
	"Vladimir Kondratiev" <vladimir.kondratiev@mobileye.com>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	"Tawfik Bayouk" <tawfik.bayouk@mobileye.com>,
	"Théo Lebrun" <theo.lebrun@bootlin.com>,
	"Wolfram Sang" <wsa+renesas@sang-engineering.com>
Subject: [PATCH v3 07/11] i2c: nomadik: fetch i2c-transfer-timeout-us property from devicetree
Date: Wed, 06 Mar 2024 18:59:27 +0100	[thread overview]
Message-ID: <20240306-mbly-i2c-v3-7-605f866aa4ec@bootlin.com> (raw)
In-Reply-To: <20240306-mbly-i2c-v3-0-605f866aa4ec@bootlin.com>

Allow overriding the default timeout value (200ms) from devicetree,
using the generic i2c-transfer-timeout-us property.

The i2c_adapter->timeout field is an unaccurate jiffies amount;
i2c-nomadik uses hrtimers for timeouts below one jiffy.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
 drivers/i2c/busses/i2c-nomadik.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-nomadik.c b/drivers/i2c/busses/i2c-nomadik.c
index 020beb8ffa17..2e738b18677e 100644
--- a/drivers/i2c/busses/i2c-nomadik.c
+++ b/drivers/i2c/busses/i2c-nomadik.c
@@ -975,6 +975,8 @@ static const struct i2c_algorithm nmk_i2c_algo = {
 static void nmk_i2c_of_probe(struct device_node *np,
 			     struct nmk_i2c_dev *priv)
 {
+	u32 timeout_usecs;
+
 	/* Default to 100 kHz if no frequency is given in the node */
 	if (of_property_read_u32(np, "clock-frequency", &priv->clk_freq))
 		priv->clk_freq = I2C_MAX_STANDARD_MODE_FREQ;
@@ -986,7 +988,12 @@ static void nmk_i2c_of_probe(struct device_node *np,
 		priv->sm = I2C_FREQ_MODE_FAST;
 	priv->tft = 1; /* Tx FIFO threshold */
 	priv->rft = 8; /* Rx FIFO threshold */
-	priv->timeout_usecs = 200 * USEC_PER_MSEC; /* Slave response timeout */
+
+	/* Slave response timeout */
+	if (!of_property_read_u32(np, "i2c-transfer-timeout-us", &timeout_usecs))
+		priv->timeout_usecs = timeout_usecs;
+	else
+		priv->timeout_usecs = 200 * USEC_PER_MSEC;
 }
 
 static int nmk_i2c_probe(struct amba_device *adev, const struct amba_id *id)

-- 
2.44.0


WARNING: multiple messages have this Message-ID (diff)
From: "Théo Lebrun" <theo.lebrun@bootlin.com>
To: Linus Walleij <linus.walleij@linaro.org>,
	 Andi Shyti <andi.shyti@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	 Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	 Conor Dooley <conor+dt@kernel.org>,
	 Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mips@vger.kernel.org,
	"Gregory Clement" <gregory.clement@bootlin.com>,
	"Vladimir Kondratiev" <vladimir.kondratiev@mobileye.com>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	"Tawfik Bayouk" <tawfik.bayouk@mobileye.com>,
	"Théo Lebrun" <theo.lebrun@bootlin.com>,
	"Wolfram Sang" <wsa+renesas@sang-engineering.com>
Subject: [PATCH v3 07/11] i2c: nomadik: fetch i2c-transfer-timeout-us property from devicetree
Date: Wed, 06 Mar 2024 18:59:27 +0100	[thread overview]
Message-ID: <20240306-mbly-i2c-v3-7-605f866aa4ec@bootlin.com> (raw)
In-Reply-To: <20240306-mbly-i2c-v3-0-605f866aa4ec@bootlin.com>

Allow overriding the default timeout value (200ms) from devicetree,
using the generic i2c-transfer-timeout-us property.

The i2c_adapter->timeout field is an unaccurate jiffies amount;
i2c-nomadik uses hrtimers for timeouts below one jiffy.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
 drivers/i2c/busses/i2c-nomadik.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-nomadik.c b/drivers/i2c/busses/i2c-nomadik.c
index 020beb8ffa17..2e738b18677e 100644
--- a/drivers/i2c/busses/i2c-nomadik.c
+++ b/drivers/i2c/busses/i2c-nomadik.c
@@ -975,6 +975,8 @@ static const struct i2c_algorithm nmk_i2c_algo = {
 static void nmk_i2c_of_probe(struct device_node *np,
 			     struct nmk_i2c_dev *priv)
 {
+	u32 timeout_usecs;
+
 	/* Default to 100 kHz if no frequency is given in the node */
 	if (of_property_read_u32(np, "clock-frequency", &priv->clk_freq))
 		priv->clk_freq = I2C_MAX_STANDARD_MODE_FREQ;
@@ -986,7 +988,12 @@ static void nmk_i2c_of_probe(struct device_node *np,
 		priv->sm = I2C_FREQ_MODE_FAST;
 	priv->tft = 1; /* Tx FIFO threshold */
 	priv->rft = 8; /* Rx FIFO threshold */
-	priv->timeout_usecs = 200 * USEC_PER_MSEC; /* Slave response timeout */
+
+	/* Slave response timeout */
+	if (!of_property_read_u32(np, "i2c-transfer-timeout-us", &timeout_usecs))
+		priv->timeout_usecs = timeout_usecs;
+	else
+		priv->timeout_usecs = 200 * USEC_PER_MSEC;
 }
 
 static int nmk_i2c_probe(struct amba_device *adev, const struct amba_id *id)

-- 
2.44.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2024-03-06 17:59 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-06 17:59 [PATCH v3 00/11] Add Mobileye EyeQ5 support to the Nomadik I2C controller & use hrtimers for timeouts Théo Lebrun
2024-03-06 17:59 ` Théo Lebrun
2024-03-06 17:59 ` [PATCH v3 01/11] dt-bindings: i2c: nomadik: add mobileye,eyeq5-i2c bindings and example Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-06 19:36   ` Rob Herring
2024-03-06 19:36     ` Rob Herring
2024-03-06 20:17   ` Rob Herring
2024-03-06 20:17     ` Rob Herring
2024-03-06 17:59 ` [PATCH v3 02/11] i2c: nomadik: rename private struct pointers from dev to priv Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-06 17:59 ` [PATCH v3 03/11] i2c: nomadik: simplify IRQ masking logic Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-07 23:01   ` Andi Shyti
2024-03-07 23:01     ` Andi Shyti
2024-03-08  8:57     ` Théo Lebrun
2024-03-08  8:57       ` Théo Lebrun
2024-03-08 12:27       ` Andi Shyti
2024-03-08 12:27         ` Andi Shyti
2024-03-08 13:33         ` Théo Lebrun
2024-03-08 13:33           ` Théo Lebrun
2024-03-06 17:59 ` [PATCH v3 04/11] i2c: nomadik: use bitops helpers Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-07 23:04   ` Andi Shyti
2024-03-07 23:04     ` Andi Shyti
2024-03-06 17:59 ` [PATCH v3 05/11] i2c: nomadik: support short xfer timeouts using waitqueue & hrtimer Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-06 17:59 ` [PATCH v3 06/11] i2c: nomadik: replace jiffies by ktime for FIFO flushing timeout Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-06 17:59 ` Théo Lebrun [this message]
2024-03-06 17:59   ` [PATCH v3 07/11] i2c: nomadik: fetch i2c-transfer-timeout-us property from devicetree Théo Lebrun
2024-03-06 17:59 ` [PATCH v3 08/11] i2c: nomadik: support Mobileye EyeQ5 I2C controller Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-07 23:11   ` Andi Shyti
2024-03-07 23:11     ` Andi Shyti
2024-03-08  9:16     ` Théo Lebrun
2024-03-08  9:16       ` Théo Lebrun
2024-03-08 12:28       ` Andi Shyti
2024-03-08 12:28         ` Andi Shyti
2024-03-08 22:54   ` Andi Shyti
2024-03-08 22:54     ` Andi Shyti
2024-03-11  8:59     ` Théo Lebrun
2024-03-11  8:59       ` Théo Lebrun
2024-03-06 17:59 ` [PATCH v3 09/11] i2c: nomadik: sort includes Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-06 19:51   ` Linus Walleij
2024-03-06 19:51     ` Linus Walleij
2024-03-07 23:11   ` Andi Shyti
2024-03-07 23:11     ` Andi Shyti
2024-03-06 17:59 ` [PATCH v3 10/11] MIPS: mobileye: eyeq5: add 5 I2C controller nodes Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-08 12:25   ` Andi Shyti
2024-03-08 12:25     ` Andi Shyti
2024-03-06 17:59 ` [PATCH v3 11/11] MIPS: mobileye: eyeq5: add evaluation board I2C temp sensor Théo Lebrun
2024-03-06 17:59   ` Théo Lebrun
2024-03-08 12:26   ` Andi Shyti
2024-03-08 12:26     ` Andi Shyti
2024-03-08 22:52 ` (subset) [PATCH v3 00/11] Add Mobileye EyeQ5 support to the Nomadik I2C controller & use hrtimers for timeouts Andi Shyti
2024-03-08 22:52   ` Andi Shyti

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=20240306-mbly-i2c-v3-7-605f866aa4ec@bootlin.com \
    --to=theo.lebrun@bootlin.com \
    --cc=andi.shyti@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregory.clement@bootlin.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=tawfik.bayouk@mobileye.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=vladimir.kondratiev@mobileye.com \
    --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.