瀏覽代碼

kirkwood: use 3 temperature sensors for Zyxel NSA310B

Instead of taking the input of one temperature sensor (temp1), the
script takes into account three temperature sensors to control the
PWM of the cooling fan.

temp1 -> placed on main board
temp2 -> placed on main board
temp3 -> placed on or close to chipset

All three temperatures give valid input for the PWM of the fan on
NSA310 and are actually changing.

Tested on two NSA310.

Signed-off-by: Thomas Beckler <[email protected]>
Reviewed-by: Alberto Bursi <[email protected]>
[commit title/message facelift, code cleanup]
Signed-off-by: Adrian Schmutzler <[email protected]>
Thomas Beckler 5 年之前
父節點
當前提交
450ec48d61
共有 1 個文件被更改,包括 16 次插入4 次删除
  1. 16 4
      target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol

+ 16 - 4
target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol

@@ -27,10 +27,22 @@ boot() {
 		;;
 	zyxel,nsa310b)
 		path_to_hwmon='/sys/devices/platform/ocp@f1000000/f1011000.i2c/i2c-0/0-002e/hwmon/hwmon0'
-		echo 2 > "$path_to_hwmon/pwm1_enable" # fan is on pwm1
-		echo 1 > "$path_to_hwmon/pwm1_auto_channels" # temp1 is the only one that changes
-		echo 23000 > "$path_to_hwmon/temp1_auto_temp_min"
-		echo 43000 > "$path_to_hwmon/temp1_auto_temp_max" # next step is 49600 millicelsius, or 50 celsius, 43 celsius is better
+		# use the max. value of (temp1) OR (temp2) OR (temp3) as an input
+		# for the PWM of the cooling fan
+		echo 123 > "$path_to_hwmon/pwm1_auto_channels"
+		# Temperature sensor #1 placed on mainboard
+		echo 30000 > "$path_to_hwmon/temp1_auto_temp_min"
+		echo 49600 > "$path_to_hwmon/temp1_auto_temp_max"
+		# Temperature sensor #2 placed on mainboard
+		# range: 0 to 127000 in steps of 1000 [millicelsius]
+		echo 30000 > "$path_to_hwmon/temp2_auto_temp_min"
+		# range: 0 to 127000 in steps of ???? [millicelsius]
+		echo 49600 > "$path_to_hwmon/temp2_auto_temp_max"
+		# Temperature sensor #3 placed close to a chipset
+		# range: 0 to 60000 in steps of 1000 [millicelsius]
+		echo 23000 > "$path_to_hwmon/temp3_auto_temp_min"
+		# pre-defined steps: 103000, 122000, 143300, 170000 in [millicelsius]
+		echo 103000 > "$path_to_hwmon/temp3_auto_temp_max"
 		;;
 	esac
 }