On Thu, Nov 08, 2018 at 03:05:19PM -0600, Eddie James wrote: > From: Eddie James <eajames@xxxxxxxxxxxxxxxxxx> > > This series adds a hwmon driver to support the OCC on POWER8 and POWER9 > processors. The OCC is an embedded processor that provides realtime power and > thermal monitoring and management. > > The series also adds a "bus" driver to handle atomic communication between the > service processor and the OCC on a POWER9 chip. This communication takes place > over FSI bus to the SBE (Self-Boot engine) FIFO, which in turn communicates > with the OCC. The driver for the SBEFIFO is already available as an FSI client > driver. > > For POWER8 OCCs, communication between the service processor and the OCC is > achieved over I2C bus. > I am not entirely happy with the series - there are still lots of proprietary attributes, and I would have preferred the use of the _info API at this point - but this has taken long enough. Series applied to hwmon-next. Please send any fixes as follow-up patches. Thanks, Guenter > Changes since v5: > * Makefile fix when compiling both P8 and P9 versions > * Spelling fix in hwmon doc > * Added an additional sentence for P9 binding doc to explain that OCC isn't > an FSI slave device. > > Changes since v4: > * Make the hwmon attributes conform almost completely to standard names and > values. The only exception is powerX_cap_user and powerX_cap_user_source. > * Improve hwmon documentation. > * Add ibm,p9-occ dt documentation. > > Changes since v3: > * Add the FSI OCC driver. > * Pull the sysfs attribute code into it's own file for cleanliness. > * Various fixes for attribute creation and integer overflow. > > Changes since v2: > * Add sysfs_notify for the error and throttling attributes when change is > detected. > * Removed occs_present counting of devices bound. > * Improved remove() of P9 driver to avoid bad behavior with relation to OCC > driver when unbound. > * Added default cases (return EINVAL) for all sensor show functions. > * Added temperature fault sensor. > * Added back dt binding documentation for P9 to address checkpatch warning. > * Added occs_present attribute from the poll response. > > Changes since v1: > * Remove wait loop in P9 code, as that is now handled by FSI OCC driver. > * Removed dt binding documentation for P9, FSI OCC driver will probe OCC hwmon > driver automatically. > * Moved OCC response code definitions to the OCC include file. > * Fixed includes. > * Changed some structure fields to __beXX as that is what they are. > * Changed some errnos. > * Removed some dev_err(). > * Refactored P8 code a bit to use #defined addresses and magic values, and > changed "goto retry" to a loop. > * Refactored error handling a bit. > > Eddie James (10): > dt-bindings: fsi: Add P9 OCC device documentation > fsi: Add On-Chip Controller (OCC) driver > Documentation: hwmon: Add OCC documentation > dt-bindings: i2c: Add P8 OCC hwmon device documentation > hwmon: Add On-Chip Controller (OCC) hwmon driver > hwmon (occ): Add command transport method for P8 and P9 > hwmon (occ): Parse OCC poll response > hwmon (occ): Add sensor types and versions > hwmon (occ): Add sensor attributes and register hwmon device > hwmon (occ): Add sysfs attributes for additional OCC data > > .../devicetree/bindings/fsi/ibm,p9-occ.txt | 16 + > .../devicetree/bindings/i2c/ibm,p8-occ-hwmon.txt | 25 + > Documentation/hwmon/occ | 112 ++ > drivers/fsi/Kconfig | 10 + > drivers/fsi/Makefile | 1 + > drivers/fsi/fsi-occ.c | 599 +++++++++++ > drivers/hwmon/Kconfig | 2 + > drivers/hwmon/Makefile | 1 + > drivers/hwmon/occ/Kconfig | 31 + > drivers/hwmon/occ/Makefile | 5 + > drivers/hwmon/occ/common.c | 1098 ++++++++++++++++++++ > drivers/hwmon/occ/common.h | 128 +++ > drivers/hwmon/occ/p8_i2c.c | 255 +++++ > drivers/hwmon/occ/p9_sbe.c | 106 ++ > drivers/hwmon/occ/sysfs.c | 188 ++++ > include/linux/fsi-occ.h | 25 + > 16 files changed, 2602 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fsi/ibm,p9-occ.txt > create mode 100644 Documentation/devicetree/bindings/i2c/ibm,p8-occ-hwmon.txt > create mode 100644 Documentation/hwmon/occ > create mode 100644 drivers/fsi/fsi-occ.c > create mode 100644 drivers/hwmon/occ/Kconfig > create mode 100644 drivers/hwmon/occ/Makefile > create mode 100644 drivers/hwmon/occ/common.c > create mode 100644 drivers/hwmon/occ/common.h > create mode 100644 drivers/hwmon/occ/p8_i2c.c > create mode 100644 drivers/hwmon/occ/p9_sbe.c > create mode 100644 drivers/hwmon/occ/sysfs.c > create mode 100644 include/linux/fsi-occ.h > > -- > 1.8.3.1 >