drivers: hwmon: Add On-Chip Controller driver
cover drivers: hwmon: Add On-Chip Controller driver
From: "Edward A. James" <[email protected]>
This patchset adds a hwmon driver to support the OCC (On-Chip Controller) on the IBM POWER8 and POWER9 processors, from a BMC (Baseboard Management Controller). The OCC is an embedded processor that provides real time power and thermal monitoring.
The driver provides an interface on a BMC to poll OCC sensor data, set user power caps, and perform some basic OCC error handling. It interfaces with userspace through hwmon.
The driver is currently functional only for the OCC on POWER8 chips. Communicating with the POWER9 OCC requries FSI support.
Edward A. James (7):
hwmon: Add core On-Chip Controller support for POWER CPUs
hwmon: occ: Add sysfs interface
hwmon: occ: Add I2C transport implementation for SCOM operations
hwmon: occ: Add callbacks for parsing P8 OCC datastructures
hwmon: occ: Add hwmon implementation for the P8 OCC
arm: aspeed: dts: Add I2C POWER8 OCC compatible string
hwmon: occ: Add callbacks for parsing P9 OCC datastructures
.../devicetree/bindings/i2c/i2c-ibm-occ.txt | 13 + Documentation/hwmon/occ | 100 ++++ arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts | 9 + drivers/hwmon/Kconfig | 2 + drivers/hwmon/Makefile | 1 + drivers/hwmon/occ/Kconfig | 29 ++ drivers/hwmon/occ/Makefile | 2 + drivers/hwmon/occ/occ.c | 519 +++++++++++++++++++++ drivers/hwmon/occ/occ.h | 86 ++++ drivers/hwmon/occ/occ_p8.c | 217 +++++++++ drivers/hwmon/occ/occ_p8.h | 30 ++ drivers/hwmon/occ/occ_p8_i2c.c | 141 ++++++ drivers/hwmon/occ/occ_p9.c | 243 ++++++++++ drivers/hwmon/occ/occ_p9.h | 30 ++ drivers/hwmon/occ/occ_scom_i2c.c | 67 +++ drivers/hwmon/occ/occ_scom_i2c.h | 26 ++ drivers/hwmon/occ/occ_sysfs.c | 492 +++++++++++++++++++ drivers/hwmon/occ/occ_sysfs.h | 52 +++ drivers/hwmon/occ/scom.h | 48 ++ 19 files changed, 2107 insertions(+) create mode 100644 Documentation/devicetree/bindings/i2c/i2c-ibm-occ.txt create mode 100644 Documentation/hwmon/occ create mode 100644 drivers/hwmon/occ/Kconfig create mode 100644 drivers/hwmon/occ/Makefile create mode 100644 drivers/hwmon/occ/occ.c create mode 100644 drivers/hwmon/occ/occ.h create mode 100644 drivers/hwmon/occ/occ_p8.c create mode 100644 drivers/hwmon/occ/occ_p8.h create mode 100644 drivers/hwmon/occ/occ_p8_i2c.c create mode 100644 drivers/hwmon/occ/occ_p9.c create mode 100644 drivers/hwmon/occ/occ_p9.h create mode 100644 drivers/hwmon/occ/occ_scom_i2c.c create mode 100644 drivers/hwmon/occ/occ_scom_i2c.h create mode 100644 drivers/hwmon/occ/occ_sysfs.c create mode 100644 drivers/hwmon/occ/occ_sysfs.h create mode 100644 drivers/hwmon/occ/scom.h
Signature · 1 line
1.9.1
Hi Eddie,
Quoted 14 lines · On Fri, 2016-12-16 at 14:37 -0600, [email protected] wrote:
Quoted 1 line
From: "Edward A. James" <[email protected]>
This patchset adds a hwmon driver to support the OCC (On-Chip Controller) on the IBM POWER8 and POWER9 processors, from a BMC (Baseboard Management Controller). The OCC is an embedded processor that provides real time power and thermal monitoring.
The driver provides an interface on a BMC to poll OCC sensor data, set user power caps, and perform some basic OCC error handling. It interfaces with userspace through hwmon.
The driver is currently functional only for the OCC on POWER8 chips. Communicating with the POWER9 OCC requries FSI support.
Quoted 8 lines
Edward A. James (7):
hwmon: Add core On-Chip Controller support for POWER CPUs
hwmon: occ: Add sysfs interface
hwmon: occ: Add I2C transport implementation for SCOM operations
hwmon: occ: Add callbacks for parsing P8 OCC datastructures
hwmon: occ: Add hwmon implementation for the P8 OCC
arm: aspeed: dts: Add I2C POWER8 OCC compatible string
hwmon: occ: Add callbacks for parsing P9 OCC datastructures
I'm happy with how these are looking. I think it's time to send the next series upstream once you've addressed the issues in what here is v7.
When sending upstream, please reset the reroll-count to 0 as upstream haven't yet participated in the reviews so it makes no sense for them to see the patches as a "v8" of the series.
Also, please make sure to Cc Joel and myself, though I suspect git send-email will automatically add me as I appear in the tags. I don't know if Yi's interested in being Cc'ed given he authored the original driver, maybe ask him.
Finally, it's good form to thread the patches under the cover letter. This makes the mail easy to find and hide in people's inboxes. I've mentioned this several times but it has received no attention, but *please* sort it out before you send the patches upstream. Feel free to use my address as a testing ground.
Thanks for putting in the effort to get this code cleaned up.
Andrew
Quoted 38 lines
.../devicetree/bindings/i2c/i2c-ibm-occ.txt | 13 + Documentation/hwmon/occ | 100 ++++ arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts | 9 + drivers/hwmon/Kconfig | 2 + drivers/hwmon/Makefile | 1 + drivers/hwmon/occ/Kconfig | 29 ++ drivers/hwmon/occ/Makefile | 2 + drivers/hwmon/occ/occ.c | 519 +++++++++++++++++++++ drivers/hwmon/occ/occ.h | 86 ++++ drivers/hwmon/occ/occ_p8.c | 217 +++++++++ drivers/hwmon/occ/occ_p8.h | 30 ++ drivers/hwmon/occ/occ_p8_i2c.c | 141 ++++++ drivers/hwmon/occ/occ_p9.c | 243 ++++++++++ drivers/hwmon/occ/occ_p9.h | 30 ++ drivers/hwmon/occ/occ_scom_i2c.c | 67 +++ drivers/hwmon/occ/occ_scom_i2c.h | 26 ++ drivers/hwmon/occ/occ_sysfs.c | 492 +++++++++++++++++++ drivers/hwmon/occ/occ_sysfs.h | 52 +++ drivers/hwmon/occ/scom.h | 48 ++
19 files changed, 2107 insertions(+)create mode 100644
Documentation/devicetree/bindings/i2c/i2c-ibm-occ.txtcreate mode 100644Documentation/hwmon/occ
create mode 100644drivers/hwmon/occ/Kconfig
create mode 100644drivers/hwmon/occ/Makefile
create mode 100644drivers/hwmon/occ/occ.c
create mode 100644drivers/hwmon/occ/occ.h
create mode 100644drivers/hwmon/occ/occ_p8.c
create mode 100644drivers/hwmon/occ/occ_p8.h
create mode 100644drivers/hwmon/occ/occ_p8_i2c.c
create mode 100644drivers/hwmon/occ/occ_p9.c
create mode 100644drivers/hwmon/occ/occ_p9.h
create mode 100644drivers/hwmon/occ/occ_scom_i2c.c
create mode 100644drivers/hwmon/occ/occ_scom_i2c.h
create mode 100644drivers/hwmon/occ/occ_sysfs.c
create mode 100644drivers/hwmon/occ/occ_sysfs.h
create mode 100644drivers/hwmon/occ/scom.h