drivers/hwmon: OCC hwmon driver restructuring
v2 cover drivers/hwmon: OCC hwmon driver restructuring
From: "Edward A. James" <[email protected]>
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
Signature · 1 line
1.9.1
Hey,
Quoted 10 lines · On Wed, Oct 12, 2016 at 8:42 AM, <[email protected]> wrote:
From: "Edward A. James" <[email protected]>
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.
Cool. I think you should consider sending these patches as a series that introduce the driver from scratch. You can achieve this by reverting the patch that adds the code Yi wrote, and adding your cleaned up version as a series of small patches.
This will be one of our first client drivers for Jeremy and Chris' fsi bus. I recommend taking a read of the current state of the client driver API, and keeping that in mind when you write the i2c version.
Cheers,
Joel
Quoted 48 lines
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 andKconfigaccordingly to preserve the build.Patch 2: "
drivers/hwmon: Isolate bus transfer protocol"
- Copy i2c related code intoocc_i2c.cand simplify.
- Copy common platform code intoocc.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 protocoldrivers/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_______________________________________________
openbmc mailing list
[email protected]
https://lists.ozlabs.org/listinfo/openbmc