summaryrefslogtreecommitdiff
path: root/meta-fii/meta-mori/recipes-phosphor
diff options
context:
space:
mode:
authorAshwin Murali <ashwin.murali@fii-na.com>2022-04-29 22:47:15 +0300
committerAshwin Murali <ashwin.murali@fii-na.com>2022-07-22 19:17:39 +0300
commit321eb030ecc3a68776a7029acd64901dd32b4e11 (patch)
treecc592c9f5ad23178ed657b555aeca643b3f48298 /meta-fii/meta-mori/recipes-phosphor
parentc77d41d2f06c664862cf536ab9d5dffacd922ee4 (diff)
downloadopenbmc-321eb030ecc3a68776a7029acd64901dd32b4e11.tar.xz
meta-fii: meta-mori: Add pwm_init package
Add pwm_init service to set fans to pwm mode and initialise them to a value of 50% on boot. Signed-off-by: Ashwin Murali <ashwin.murali@fii-na.com> Change-Id: I07963eda9b0c264e66d1dd4f2a0d31f4e74d831e
Diffstat (limited to 'meta-fii/meta-mori/recipes-phosphor')
-rw-r--r--meta-fii/meta-mori/recipes-phosphor/fans/pwm-init.bb29
-rw-r--r--meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/bin/pwm_init.sh30
-rw-r--r--meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/pwm_init.service11
-rw-r--r--meta-fii/meta-mori/recipes-phosphor/image/obmc-phosphor-image.bbappend1
4 files changed, 71 insertions, 0 deletions
diff --git a/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init.bb b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init.bb
new file mode 100644
index 0000000000..97daab696e
--- /dev/null
+++ b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Initialize PWM sensors"
+DESCRIPTION = "Initialize PWM sensors"
+LICENSE = "CLOSED"
+PR = "r1"
+
+inherit systemd
+
+DEPENDS = "systemd"
+RDEPENDS:${PN} = "bash"
+
+S = "${WORKDIR}"
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+SRC_URI += " \
+ file://pwm_init.service \
+ file://bin/pwm_init.sh \
+ "
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_AUTO_ENABLE = "enable"
+SYSTEMD_SERVICE:${PN} += "pwm_init.service"
+
+FILES:${PN} += "${bindir}/* ${systemd_system_unitdir}/*"
+
+do_install:append() {
+ install -d ${D}${libexecdir}/${PN}
+ install -m 0755 ${S}/bin/* ${D}${libexecdir}/${PN}/
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${S}/*.service ${D}${systemd_system_unitdir}
+}
diff --git a/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/bin/pwm_init.sh b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/bin/pwm_init.sh
new file mode 100644
index 0000000000..d1d7df1ac4
--- /dev/null
+++ b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/bin/pwm_init.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+#
+
+# Provide source directive to shellcheck.
+# shellcheck source=meta-fii/meta-mori/recipes-mori/mori-fw-utility/mori-fw/mori-lib.sh
+source /usr/libexec/mori-fw/mori-lib.sh
+
+
+# Set all pwm to 50%
+find /sys/class/hwmon/hwmon*/ -name 'pwm[1-6]' -exec bash -c 'echo "$1" && echo 127 > "$1" && cat "$1"' -- {} \;
+
+
+# Set all fans to pwm mode.
+find /sys/class/hwmon/hwmon*/ -name 'pwm*_enable' -exec bash -c 'echo "$1" && echo 1 > "$1" && cat "$1"' -- {} \;
+
+
+for i in {0..5}
+do
+ fan_pwm_rate_of_change=0x$(printf '%02x' $((8 + i)) | \
+ awk '{print $1}')
+ # Set Fan PWM Rate-of-Change Bits(bits 4:2) to 000b
+ # Register 08h to 0Dh
+ oriRegVal=$(i2cget -y -f "${I2C_FANCTRL[0]}" 0x"${I2C_FANCTRL[1]}" \
+ "$fan_pwm_rate_of_change")
+ updateVal=$((oriRegVal & 0xe3))
+ updateVal=0x$(printf "%x" $updateVal)
+ i2cset -y -f "${I2C_FANCTRL[0]}" 0x"${I2C_FANCTRL[1]}" \
+ "$fan_pwm_rate_of_change" "$updateVal"
+done
+
diff --git a/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/pwm_init.service b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/pwm_init.service
new file mode 100644
index 0000000000..351d5f15b4
--- /dev/null
+++ b/meta-fii/meta-mori/recipes-phosphor/fans/pwm-init/pwm_init.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Init PWM sensors
+Before=xyz.openbmc_project.fansensor.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/pwm-init/pwm_init.sh
+
+[Install]
+WantedBy=multi-user.target
+WantedBy=xyz.openbmc_project.fansensor.service
diff --git a/meta-fii/meta-mori/recipes-phosphor/image/obmc-phosphor-image.bbappend b/meta-fii/meta-mori/recipes-phosphor/image/obmc-phosphor-image.bbappend
index 7d3a1ad092..88d0fa914b 100644
--- a/meta-fii/meta-mori/recipes-phosphor/image/obmc-phosphor-image.bbappend
+++ b/meta-fii/meta-mori/recipes-phosphor/image/obmc-phosphor-image.bbappend
@@ -32,6 +32,7 @@ OBMC_IMAGE_EXTRA_INSTALL:append:mori = " entity-manager"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " fru-device"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " dbus-sensors"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " estoraged"
+OBMC_IMAGE_EXTRA_INSTALL:append:mori = " pwm-init"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-pid-control"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-logging"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " mori-cmd"