This builds on top of my in-flight series that adds the syscon node for the
switch block[1]. The I2C controllers are part of that block of registers. The
controller driver is adapted from openwrt, the multiplexing support is added by
me and differs from the openwrt implementation.
[1] - https://lore.kernel.org/lkml/20240913024948.1317786-1-chris.packham@alliedtelesis.co.nz/
Chris Packham (5):
dt-bindings: i2c: Add RTL9300 I2C controller
i2c: Add driver for the RTL9300 I2C controller
mips: dts: realtek: Add I2C controllers
dt-bindings: i2c: Add RTL9300 I2C multiplexer
i2c: rtl9300: Add multiplexing support
.../bindings/i2c/realtek,rtl9300-i2c-mux.yaml | 82 +++
.../bindings/i2c/realtek,rtl9300-i2c.yaml | 73 +++
MAINTAINERS | 8 +
arch/mips/boot/dts/realtek/rtl930x.dtsi | 18 +
drivers/i2c/busses/Kconfig | 10 +
drivers/i2c/busses/Makefile | 1 +
drivers/i2c/busses/i2c-rtl9300.c | 543 ++++++++++++++++++
7 files changed, 735 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/realtek,rtl9300-i2c-mux.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/realtek,rtl9300-i2c.yaml
create mode 100644 drivers/i2c/busses/i2c-rtl9300.c
--
2.46.1