Skip to contentSkip to conversation

drivers: hwmon: Add On-Chip Controller driver

PATCH In review [email protected] 2 participants 2 messages Dec 16, 2016 – Dec 20, 2016

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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.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