From: Jonas Jelonek <jelonek.jonas@gmail.com>
To: Chris Packham <chris.packham@alliedtelesis.co.nz>,
Andi Shyti <andi.shyti@kernel.org>,
Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: linux-i2c@vger.kernel.org, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Markus Stockhausen <markus.stockhausen@gmx.de>,
Sven Eckelmann <sven@narfation.org>,
Harshal Gohel <hg@simonwunderlich.de>,
Jonas Jelonek <jelonek.jonas@gmail.com>
Subject: [PATCH v8 5/9] i2c: rtl9300: do not set read mode on every transfer
Date: Sat, 27 Sep 2025 10:19:27 +0000 [thread overview]
Message-ID: <20250927101931.71575-6-jelonek.jonas@gmail.com> (raw)
In-Reply-To: <20250927101931.71575-1-jelonek.jonas@gmail.com>
Move the operation to set the read mode from config_xfer to probe.
The I2C controller of RTL9300 and RTL9310 support a legacy message mode
for READs with 'Read Address Data' instead of the standard format 'Write
Address ; Read Data'. There is no way to pass that via smbus_xfer, thus
there is no point in supported this in the driver and moreover no point
in setting this on every transaction. Setting this once in the probe
call is sufficient.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Tested-by: Sven Eckelmann <sven@narfation.org>
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz> # On RTL9302C based board
Tested-by: Markus Stockhausen <markus.stockhausen@gmx.de>
---
drivers/i2c/busses/i2c-rtl9300.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/i2c/busses/i2c-rtl9300.c b/drivers/i2c/busses/i2c-rtl9300.c
index 4177cfb77094..9e3517b09b3d 100644
--- a/drivers/i2c/busses/i2c-rtl9300.c
+++ b/drivers/i2c/busses/i2c-rtl9300.c
@@ -130,11 +130,7 @@ static int rtl9300_i2c_config_xfer(struct rtl9300_i2c *i2c, struct rtl9300_i2c_c
if (ret)
return ret;
- ret = regmap_field_write(i2c->fields[F_DATA_WIDTH], (len - 1) & 0xf);
- if (ret)
- return ret;
-
- return regmap_field_write(i2c->fields[F_RD_MODE], 0);
+ return regmap_field_write(i2c->fields[F_DATA_WIDTH], (len - 1) & 0xf);
}
static int rtl9300_i2c_read(struct rtl9300_i2c *i2c, u8 *buf, int len)
@@ -455,6 +451,11 @@ static int rtl9300_i2c_probe(struct platform_device *pdev)
}
i2c->sda_num = 0xff;
+ /* only use standard read format */
+ ret = regmap_field_write(i2c->fields[F_RD_MODE], 0);
+ if (ret)
+ return ret;
+
return 0;
}
--
2.48.1
next prev parent reply other threads:[~2025-09-27 10:19 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-27 10:19 [PATCH v8 0/9] i2c: fix, rework and extend RTL9300 I2C driver Jonas Jelonek
2025-09-27 10:19 ` [PATCH v8 1/9] i2c: rtl9300: use regmap fields and API for registers Jonas Jelonek
2025-09-27 10:19 ` [PATCH v8 2/9] dt-bindings: i2c: realtek,rtl9301-i2c: fix wording and typos Jonas Jelonek
2025-09-27 10:19 ` [PATCH v8 3/9] i2c: rtl9300: rename internal sda_pin to sda_num Jonas Jelonek
2025-09-27 10:19 ` [PATCH v8 4/9] i2c: rtl9300: move setting SCL frequency to config_io Jonas Jelonek
2025-09-27 10:19 ` Jonas Jelonek [this message]
2025-09-27 10:19 ` [PATCH v8 6/9] i2c: rtl9300: separate xfer configuration and execution Jonas Jelonek
2025-09-27 10:19 ` [PATCH v8 7/9] i2c: rtl9300: use scoped guard instead of explicit lock/unlock Jonas Jelonek
2025-09-27 10:19 ` [PATCH v8 8/9] dt-bindings: i2c: realtek,rtl9301-i2c: extend for RTL9310 support Jonas Jelonek
2025-09-27 10:19 ` [PATCH v8 9/9] i2c: rtl9300: add support for RTL9310 I2C controller Jonas Jelonek
2025-10-01 23:27 ` [PATCH v8 0/9] i2c: fix, rework and extend RTL9300 I2C driver 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=20250927101931.71575-6-jelonek.jonas@gmail.com \
--to=jelonek.jonas@gmail.com \
--cc=andi.shyti@kernel.org \
--cc=chris.packham@alliedtelesis.co.nz \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=hg@simonwunderlich.de \
--cc=krzk+dt@kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=markus.stockhausen@gmx.de \
--cc=robh@kernel.org \
--cc=sven@narfation.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).