[RFC linux v2 0/2] drivers/hwmon: OCC hwmon driver restructuring

eajames.ibm at gmail.com eajames.ibm at gmail.com
Wed Oct 12 08:42:14 AEDT 2016


From: "Edward A. James" <eajames at us.ibm.com>

This patchset is provided to refactor the Power8 OCC hwmon driver. There are a
number of issues with the existing driver. Firstly, i2c access was embedded
throughout the driver. Secondly, there is no way to easily add different
versions of the OCC.

This patchset addresses the first issue by abstracting the bus transfer
protocol into a modular structure. In this way, any low level transfer method
may be easily implemented.

The second issue is addressed by separating the "version specific" code for the
OCC and the common hwmon code. This task is not yet complete, but the general
structure is in place. Ultimately, different OCC versions could be probed up
using the device tree.

Patch 1: "drivers/hwmon: Move OCC driver to occ directory"
- Move the existing OCC hwmon driver to it's own directory.
- Edit makefiles and Kconfig accordingly to preserve the build.

Patch 2: "drivers/hwmon: Isolate bus transfer protocol"
- Copy i2c related code into occ_i2c.c and simplify.
- Copy common platform code into occ.c; more functions can be placed here
  later.
- Change core functions to accept OCC driver data parameter instead of
  device pointer.

Edward A. James (2):
  drivers/hwmon: Move OCC driver to occ directory
  drivers/hwmon: Isolate bus transfer protocol

 drivers/hwmon/Kconfig          |   13 +-
 drivers/hwmon/Makefile         |    2 +-
 drivers/hwmon/occ/Kconfig      |   15 +
 drivers/hwmon/occ/Makefile     |    1 +
 drivers/hwmon/occ/occ.c        |  127 ++++
 drivers/hwmon/occ/occ.h        |   47 ++
 drivers/hwmon/occ/occ_i2c.c    |  150 +++++
 drivers/hwmon/occ/power8_occ.c | 1055 +++++++++++++++++++++++++++++++++
 drivers/hwmon/occ/power8_occ.h |   25 +
 drivers/hwmon/power8_occ_i2c.c | 1254 ----------------------------------------
 10 files changed, 1422 insertions(+), 1267 deletions(-)
 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_i2c.c
 create mode 100644 drivers/hwmon/occ/power8_occ.c
 create mode 100644 drivers/hwmon/occ/power8_occ.h
 delete mode 100644 drivers/hwmon/power8_occ_i2c.c

-- 
1.9.1



More information about the openbmc mailing list