wspoon: Start hwmon differently for the MAX31785
Add a new udev rule to start the phosphor-hwmon instance for
the MAX31785 fan controller differently than other hwmon devices.
Also introduce different hwmon config files for air and water cooled
systems where the water cooled system doesn't use fan 1.
The new udev rule starts a service that will check the cooling type
and then link in the appropriate config file before starting the
actual phosphor-hwmon service.
Note that this phosphor-hwmon service is still stopped the same as
any other phosphor-hwmon service.
Tested: Test that phosphor-hwmon is started using the correct
config files on air and water cooled systems.
Change-Id: Ia93d97df024e7b6bff5eb379ddea4730fe34b55b
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%.bbappend b/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
index 7a83bf0..584418c 100644
--- a/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
+++ b/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
@@ -1,13 +1,16 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += " \
+ file://70-hwmon.rules \
+ file://70-max31785-hwmon.rules \
file://start_max31785_hwmon.sh \
"
WSPOON_CHIPS = " \
i2c@1e78a000/i2c-bus@100/bmp280@77 \
i2c@1e78a000/i2c-bus@100/dps310@76 \
- i2c@1e78a000/i2c-bus@100/max31785@52 \
+ i2c@1e78a000/i2c-bus@100/max31785@52_air \
+ i2c@1e78a000/i2c-bus@100/max31785@52_water \
i2c@1e78a000/i2c-bus@100/power-supply@68 \
i2c@1e78a000/i2c-bus@100/power-supply@69 \
i2c@1e78a000/i2c-bus@140/ir35221@70 \
@@ -36,6 +39,9 @@
SYSTEMD_SERVICE_${PN} += "max31785-hwmon-helper@.service"
do_install_append() {
+ install -d ${D}/${base_libdir}/udev/rules.d/
+ install ${WORKDIR}/70-max31785-hwmon.rules ${D}/${base_libdir}/udev/rules.d/
+
install -d ${D}${bindir}
install -m 0755 ${WORKDIR}/start_max31785_hwmon.sh ${D}${bindir}
}
diff --git a/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/70-hwmon.rules b/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/70-hwmon.rules
new file mode 100755
index 0000000..548b219
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/70-hwmon.rules
@@ -0,0 +1,2 @@
+SUBSYSTEM=="hwmon", ACTION=="add", ENV{OF_NAME}!="max31785", RUN="/usr/bin/start_hwmon.sh start %p %E{OF_FULLNAME}"
+SUBSYSTEM=="hwmon", ACTION=="remove", RUN="/usr/bin/start_hwmon.sh stop %p %E{OF_FULLNAME}"
diff --git a/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/70-max31785-hwmon.rules b/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/70-max31785-hwmon.rules
new file mode 100755
index 0000000..e1c3172
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/70-max31785-hwmon.rules
@@ -0,0 +1 @@
+SUBSYSTEM=="hwmon", ACTION=="add", ENV{OF_NAME}=="max31785", RUN="/bin/systemctl start max31785-hwmon-helper@%E{OF_FULLNAME}.service"
diff --git a/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/max31785@52.conf b/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/max31785@52_air.conf
similarity index 100%
rename from meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/max31785@52.conf
rename to meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/max31785@52_air.conf
diff --git a/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/max31785@52_water.conf b/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/max31785@52_water.conf
new file mode 100644
index 0000000..271e6be
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/max31785@52_water.conf
@@ -0,0 +1,7 @@
+LABEL_fan1 = "fan0_0"
+LABEL_fan3 = "fan2_0"
+LABEL_fan4 = "fan3_0"
+LABEL_fan5 = "fan0_1"
+LABEL_fan7 = "fan2_1"
+LABEL_fan8 = "fan3_1"
+TARGET_MODE = "RPM"