On Wed, Jan 11, 2023 at 02:29:45PM +0100, Ahmad Fatoum wrote: > The Linux DSA driver supports both I2C and SPI as management interface > by using regmaps as abstraction. barebox regmaps were not quite that > powerful yet, so we rework our regmaps to support optional formatting > and then use that to make the KSZ driver work with either I2C or SPI > transports. > > This series has been tested with both an I2C-connected KSZ8563 and > a SPI-connected KSZ9563, both of which are supported by the barebox > KSZ9477 driver. > > v1 -> v2: > - Use cdev access size encoded in flags to arrive at correct > regmap to use (md -b / md -w works correctly now) > - Changed regmap_init_multi prototype to not take an array > - Added option for 64bit regmap in regmap_init_multi > - Have regmap_init return -ENOSYS if formatted regmap support > is needed, but is not compiled in (previously it crashed). > > Ahmad Fatoum (11): > regmap: consolidate reg/val format into regmap_format > regmap: support formatted read and write > regmap: port regmap_init_spi > regmap: factor out regmap cdev size calculation > net: dsa: ksz9477: switch to regmap_init_spi > net: dsa: ksz9477: create regmap cdev for switch registers > drivers: base: regmap: introduce REGMAP_I2C > dev: add dev_bus_is_spi/i2c helpers > net: dsa: ksz9477: refactor to prepare i2c support > regmap: i2c: use formatted I/O > net: ksz9477: add I2C support Applied, thanks Sascha > > drivers/base/Kconfig | 2 + > drivers/base/regmap/Kconfig | 14 + > drivers/base/regmap/Makefile | 5 +- > drivers/base/regmap/internal.h | 35 +- > drivers/base/regmap/regmap-fmt.c | 574 +++++++++++++++++++++++++++++ > drivers/base/regmap/regmap-i2c.c | 50 ++- > drivers/base/regmap/regmap-multi.c | 104 ++++++ > drivers/base/regmap/regmap-spi.c | 42 +++ > drivers/base/regmap/regmap.c | 66 +++- > drivers/mfd/Kconfig | 4 + > drivers/net/Kconfig | 4 +- > drivers/net/ksz9477.c | 190 +++------- > drivers/net/ksz_common.h | 154 ++++++++ > drivers/rtc/Kconfig | 1 + > drivers/video/ssd1307fb.c | 4 +- > include/i2c/i2c.h | 5 + > include/regmap.h | 82 +++++ > include/spi/spi.h | 5 + > 18 files changed, 1166 insertions(+), 175 deletions(-) > create mode 100644 drivers/base/regmap/Kconfig > create mode 100644 drivers/base/regmap/regmap-fmt.c > create mode 100644 drivers/base/regmap/regmap-multi.c > create mode 100644 drivers/base/regmap/regmap-spi.c > create mode 100644 drivers/net/ksz_common.h > > -- > 2.30.2 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |