[PATCH v8 0/8] fsi: Add IBM I2C Responder virtual FSI master

From: Eddie James
Date: Mon Mar 06 2023 - 11:57:45 EST


The I2C Responder (I2CR) is an I2C device that translates I2C commands
to CFAM or SCOM operations, effectively implementing an FSI master and
bus.

Changes since v7:
- Add FSI master device naming patch
- Use I2C adapter number as FSI master index with "i2cr" name
- Export the fsi_master_i2cr_read/write functions for the SCOM driver

Changes since v6:
- Drop conversions to BE except in the FSI core interface
- Emulate the CFAM config table since it doesn't exist off the I2CR
- Drop status check during probe
- Add release function for device
- Update SCOM driver with newer interfaces and drop BE conversion
- New sbefifo change to not check state during probe

Changes since v5:
- Make I2CR scom driver depend on I2CR FSI master

Changes since v4:
- Add I2CR scom driver and associated patches
- Use compatible strings for FSI drivers if specified
- Include aliased device numbering patch
- Restructure the trace events to eliminate holes

Changes since v3:
- Rework the endian-ness in i2cr_write
- Rework the tracing to include the i2c bus and device address

Changes since v2:
- Fix the bindings again, sorry for the spam

Changes since v1:
- Fix the binding document
- Change the binding name
- Clean up the size argument checking
- Reduce __force by using packed struct for the command

Eddie James (8):
fsi: Move fsi_slave structure definition to header
fsi: Make master device indexing and naming optional
dt-bindings: fsi: Document the IBM I2C Responder virtual FSI master
fsi: Add IBM I2C Responder virtual FSI master
fsi: Add I2C Responder SCOM driver
fsi: Add aliased device numbering
fsi: Use of_match_table for bus matching if specified
fsi: sbefifo: Don't check status during probe

.../bindings/fsi/ibm,i2cr-fsi-master.yaml | 41 +++
drivers/fsi/Kconfig | 17 +
drivers/fsi/Makefile | 2 +
drivers/fsi/fsi-core.c | 73 ++--
drivers/fsi/fsi-master-aspeed.c | 2 +-
drivers/fsi/fsi-master-ast-cf.c | 2 +-
drivers/fsi/fsi-master-gpio.c | 2 +-
drivers/fsi/fsi-master-hub.c | 2 +-
drivers/fsi/fsi-master-i2cr.c | 318 ++++++++++++++++++
drivers/fsi/fsi-master-i2cr.h | 24 ++
drivers/fsi/fsi-master.h | 3 +-
drivers/fsi/fsi-sbefifo.c | 8 -
drivers/fsi/fsi-scom.c | 8 +
drivers/fsi/fsi-slave.h | 28 ++
drivers/fsi/i2cr-scom.c | 154 +++++++++
include/trace/events/fsi_master_i2cr.h | 107 ++++++
16 files changed, 752 insertions(+), 39 deletions(-)
create mode 100644 Documentation/devicetree/bindings/fsi/ibm,i2cr-fsi-master.yaml
create mode 100644 drivers/fsi/fsi-master-i2cr.c
create mode 100644 drivers/fsi/fsi-master-i2cr.h
create mode 100644 drivers/fsi/fsi-slave.h
create mode 100644 drivers/fsi/i2cr-scom.c
create mode 100644 include/trace/events/fsi_master_i2cr.h

--
2.31.1