summaryrefslogtreecommitdiff
path: root/meta-fii/meta-kudo/recipes-phosphor/fans/pwm-init/bin/pwm_init.sh
blob: 1e0682f8e7e270ea33eb907da3036b122464ecf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
#
# Set all fans to pwm mode.

# Provide source directive to shellcheck.
# shellcheck source=meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh
source /usr/libexec/kudo-fw/kudo-lib.sh

# Set all pwm_enable to 1
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