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

Message ID 20230306161057.44017-1-eajames@linux.ibm.com
Headers
Series fsi: Add IBM I2C Responder virtual FSI master |

Message

Eddie James March 6, 2023, 4:10 p.m. UTC
  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