| From: |
| Rustam Adilov <adilov-AT-disroot.org> |
| To: |
| Chris Packham <chris.packham-AT-alliedtelesis.co.nz>, Andi Shyti <andi.shyti-AT-kernel.org>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org>, linux-i2c-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org |
| Subject: |
| [PATCH v5 0/8] i2c: rtl9300: support for RTL9607C I2C controller |
| Date: |
| Thu, 26 Mar 2026 20:26:48 +0500 |
| Message-ID: |
| <20260326152656.14030-1-adilov@disroot.org> |
| Cc: |
| Rustam Adilov <adilov-AT-disroot.org> |
| Archive-link: |
| Article |
This patch series for the RTL9300 I2C driver adds i2c support for
RTL9607C SoC. They are somewhat different to the RTL9300 and
RTL9310 but not enough to warrant a new whole driver.
The patch series was split into patches that add/change something in the
driver to smooth out the RTL9607C support addition in the end and for
ease of review. Because of that, the patch 8 depends on all the prior
patches before it.
RTL9607C primarly uses the i2c controller for communication with laser
driver over on i2c interface 1 or 2.
I have successfully tested the byte read operations on my RTL9607C board
which has GN25L95 laser driver in OpenWrt.
This patch series now depends on the patch [1] from Jan Kantert.
[1] -
https://lore.kernel.org/all/20260227111134.2163701-1-jan-...
---
Changelog in v5
- reworded the commit message in Patch 5 to make it clear that the existing
devices also have i2c master controller clocks.
- Link to v4: https://lore.kernel.org/linux-i2c/20260323071337.15410-1-...
Changelog in v4
- moved the patch 7 that changes bindings to be before patch 5 where clk
is introduced in the driver.
- changed the "realtek,rtl9607-i2c" compatible to require the "clocks" to
be specified and with it moved it out of "realtek,rtl9310-i2c" check to its
own place for cleanliness (how it was originally in v1).
- Link to v3: https://lore.kernel.org/linux-i2c/20260322123411.32102-1-...
Changelog in v3
- Patch 7
- reworded the commit message to better describe i2c clock.
- make clocks property available for all compatibles.
- change "realtek,rtl9607-i2c" compatible to be under the same if statement
as "realtek,rtl9310-i2c" for "realtek,scl".
- Link to v2: https://lore.kernel.org/linux-i2c/20260319175753.32338-1-...
Changelog in v2
- rebased on top of the patch from Jan Kantert.
- Patch 7 (to my best understanding of Krzysztof's request):
- added the "clocks: false" for compatibles that are not realtek,rtl9607-i2c.
- Link to v1: https://lore.kernel.org/linux-i2c/20260314082628.25206-1-...
Rustam Adilov (8):
i2c: rtl9300: split data_reg into read and write reg
i2c: rtl9300: introduce max length property to driver data
i2c: rtl9300: introduce F_BUSY to the reg_fields struct
i2c: rtl9300: introduce a property for 8 bit width reg address
dt-bindings: i2c: realtek,rtl9301-i2c: extend for clocks and RTL9607C
support
i2c: rtl9300: introduce clk struct for upcoming rtl9607 support
i2c: rtl9300: intoduce new function properties to driver data
i2c: rtl9300: add RTL9607C i2c controller support
.../bindings/i2c/realtek,rtl9301-i2c.yaml | 15 ++
drivers/i2c/busses/i2c-rtl9300.c | 191 ++++++++++++++----
2 files changed, 171 insertions(+), 35 deletions(-)
--
2.53.0