Skip to content

Commit

Permalink
Merge pull request #70 from mengmeet/dev
Browse files Browse the repository at this point in the history
Add fan support through the ayn-platform
  • Loading branch information
honjow authored Apr 17, 2024
2 parents 96611ea + cefd743 commit b28a61b
Show file tree
Hide file tree
Showing 13 changed files with 62 additions and 33 deletions.
12 changes: 12 additions & 0 deletions backend/fan.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ def parse_fan_configuration(self):
fan_config.FAN_ENABLE_MANUAL_VALUE = fan_pwm_enable["manual_value"]
fan_config.FAN_ENABLE_AUTO_VALUE = fan_pwm_enable["auto_value"]
fan_config.FAN_HWMON_PWMENABLE_PATH = name_path_map[hwmon_name]+"/"+fan_pwm_enable["pwm_enable_path"]
fan_config.FAN_HWMON_PWMENABLE_SECOND_PATH = name_path_map[hwmon_name]+"/"+fan_pwm_enable["pwm_enable_second_path"] if "pwm_enable_second_path" in fan_pwm_enable else None

black_list = (
hwmon_config["black_list"]
Expand Down Expand Up @@ -295,8 +296,11 @@ def get_fanIsAuto(self,index):
is_find_hwmon = self.fan_config_list[index].FAN_ISFIND_HWMON
hwmon_mode = self.fan_config_list[index].FAN_HWMON_MODE
hwmon_pwm_enable_path = self.fan_config_list[index].FAN_HWMON_PWMENABLE_PATH
hwmon_pwm_enable_second_path = self.fan_config_list[index].FAN_HWMON_PWMENABLE_SECOND_PATH
enable_auto_value = self.fan_config_list[index].FAN_ENABLE_AUTO_VALUE
try:
if not os.path.exists(hwmon_pwm_enable_path) and os.path.exists(hwmon_pwm_enable_second_path):
hwmon_pwm_enable_path = hwmon_pwm_enable_second_path
if is_find_hwmon and hwmon_mode == 0:
fanIsManual=int(open(hwmon_pwm_enable_path).read().strip())
logging.debug(f"使用hwmon数据 读取hwmon地址:{hwmon_pwm_enable_path} 风扇是否控制:{fanIsManual == enable_auto_value}")
Expand Down Expand Up @@ -340,12 +344,16 @@ def set_fanAuto(self, index:int, value:bool):
is_find_hwmon = self.fan_config_list[index].FAN_ISFIND_HWMON
hwmon_mode = self.fan_config_list[index].FAN_HWMON_MODE
hwmon_pwm_enable_path = self.fan_config_list[index].FAN_HWMON_PWMENABLE_PATH
hwmon_pwm_enable_second_path = self.fan_config_list[index].FAN_HWMON_PWMENABLE_SECOND_PATH
hwmon_pwm_path = self.fan_config_list[index].FAN_HWMON_PWM_PATH
hwmon_mode1_pwm_path = self.fan_config_list[index].FAN_HWMON_MODE1_PWM_PATH
enable_manual_value = self.fan_config_list[index].FAN_ENABLE_MANUAL_VALUE
enable_auto_value = self.fan_config_list[index].FAN_ENABLE_AUTO_VALUE
mode1_auto_value = self.fan_config_list[index].FAN_HWMON_MODE1_AUTO_VALUE
try:
if not os.path.exists(hwmon_pwm_enable_path) and os.path.exists(hwmon_pwm_enable_second_path):
hwmon_pwm_enable_path = hwmon_pwm_enable_second_path

if is_find_hwmon and hwmon_mode == 0:
if value:
fanIsManual = enable_auto_value if value else enable_manual_value
Expand Down Expand Up @@ -428,7 +436,10 @@ def set_fanPercent(self, index:int,value:int):
hwmon_mode1_pwm_path = self.fan_config_list[index].FAN_HWMON_MODE1_PWM_PATH
enable_manual_value = self.fan_config_list[index].FAN_ENABLE_MANUAL_VALUE
hwmon_pwm_enable_path = self.fan_config_list[index].FAN_HWMON_PWMENABLE_PATH
hwmon_pwm_enable_second_path = self.fan_config_list[index].FAN_HWMON_PWMENABLE_SECOND_PATH
try:
if not os.path.exists(hwmon_pwm_enable_path) and os.path.exists(hwmon_pwm_enable_second_path):
hwmon_pwm_enable_path = hwmon_pwm_enable_second_path
if is_find_hwmon and hwmon_mode == 0:
fanWriteValue = max(min(int(value/100*rpm_write_max),rpm_write_max),0)
currentVal = int(open(hwmon_pwm_path).read().strip())
Expand All @@ -454,6 +465,7 @@ def set_fanPercent(self, index:int,value:int):
open(temp_path,'w').write(str(temp))
logging.debug(f"写入hwmon数据 写入hwmon转速地址:{pwm_path} 风扇转速百分比{value} 风扇最大值{rpm_write_max} 风扇转速写入值:{fanWriteValue} 温度地址:{temp_path} 温度大小:{temp}")
fanIsManual = enable_manual_value

open(hwmon_pwm_enable_path,'w').write(str(fanIsManual))
logging.debug(f"写入hwmon数据 写入hwmon地址:{hwmon_pwm_enable_path} 写入风扇是否控制:{fanIsManual}")
return True
Expand Down
25 changes: 12 additions & 13 deletions backend/fan_config/ec/aokzoe.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@

product_name: # /sys/devices/virtual/dmi/id/product_name 内容
product_name: # /sys/devices/virtual/dmi/id/product_name 内容
- AOKZOE A1 AR07
- ONEXPLAYER Mini Pro
fans:
- manual_offset: 0x4a # 风扇自动控制ec地址
rpmwrite_offset: 0x4b # 风扇写入转速ec地址
rpmread_offset: 0x76 # 风扇读取转速ec地址
- manual_offset: 0x4a # 风扇自动控制ec地址
rpmwrite_offset: 0x4b # 风扇写入转速ec地址
rpmread_offset: 0x76 # 风扇读取转速ec地址

ram_reg_addr: 0x4E # 风扇ecRam寄存器地址
ram_reg_data: 0x4F # 风扇ecRam寄存器数据
ram_manual_offset: 0x44a # 风扇自动控制ecRam地址
ram_rpmwrite_offset: 0x44b # 风扇写入转速ecRam地址
ram_rpmread_offset: 0x1809 # 风扇读取转速ecRam地址
ram_rpmread_length: 0 # 风扇实际转速值长度 0为需要通过计算获得转速
ram_reg_addr: 0x4E # 风扇ecRam寄存器地址
ram_reg_data: 0x4F # 风扇ecRam寄存器数据
ram_manual_offset: 0x44a # 风扇自动控制ecRam地址
ram_rpmwrite_offset: 0x44b # 风扇写入转速ecRam地址
ram_rpmread_offset: 0x1809 # 风扇读取转速ecRam地址
ram_rpmread_length: 0 # 风扇实际转速值长度 0为需要通过计算获得转速

rpm_write_max: 255 # 风扇最大转速ec写入值
rpm_value_max: 4968 # 风扇最大转速数值
rpm_write_max: 255 # 风扇最大转速ec写入值
rpm_value_max: 4968 # 风扇最大转速数值

4 changes: 1 addition & 3 deletions backend/fan_config/ec/ayaneo_2.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

product_name:
product_name:
- AYANEO 2
- AYANEO 2S
- GEEK
Expand All @@ -18,4 +17,3 @@ fans:

rpm_write_max: 255
rpm_value_max: 5530

4 changes: 1 addition & 3 deletions backend/fan_config/ec/ayaneo_air.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

product_name:
product_name:
- AIR
- AIR Pro
- AIR 1S
Expand All @@ -18,4 +17,3 @@ fans:

rpm_write_max: 255
rpm_value_max: 5811

3 changes: 1 addition & 2 deletions backend/fan_config/ec/gpd_win4.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

product_name:
product_name:
- G1618-04
fans:
- ram_reg_addr: 0x2E
Expand Down
3 changes: 1 addition & 2 deletions backend/fan_config/ec/gpd_winmax2.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

product_name:
product_name:
- G1619-04
fans:
- ram_reg_addr: 0x4E
Expand Down
3 changes: 1 addition & 2 deletions backend/fan_config/ec/gpd_winmini.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

product_name:
product_name:
- G1617-01
fans:
- ram_reg_addr: 0x4E
Expand Down
4 changes: 1 addition & 3 deletions backend/fan_config/ec/onexplayer2.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

product_name:
product_name:
- ONEXPLAYER 2 ARP23
fans:
- manual_offset: 0x4a
Expand All @@ -15,4 +14,3 @@ fans:

rpm_write_max: 184
rpm_value_max: 5000

4 changes: 2 additions & 2 deletions backend/fan_config/hwmon/asus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ fans:

- fan_name: GPU Fan
pwm_mode: 1

pwm_enable:
manual_value: 1
auto_value: 2
Expand Down Expand Up @@ -107,4 +107,4 @@ fans:
pwm_read_path: fan2_input
pwm_read_max: 8200

temp_mode: 0
temp_mode: 0
23 changes: 23 additions & 0 deletions backend/fan_config/hwmon/aynec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
hwmon_name: aynec

fans:
- fan_name: Fan
pwm_mode: 0

pwm_enable:
manual_value: 1
auto_value: 0
pwm_enable_path: pwm1_enable
pwm_enable_second_path: pwm1_mode

pwm_write:
pwm_write_max:
default: 255
pwm_write_path: pwm1

pwm_input:
hwmon_label: aynec
pwm_read_path: fan1_input
pwm_read_max: 5000

temp_mode: 0
2 changes: 1 addition & 1 deletion backend/fan_config/hwmon/oxpec.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# hwmon目录下name文件内容
hwmon_name: oxpec
hwmon_name: oxpec

fans:
- fan_name: Fan # 显示在 UI 上的风扇名称
Expand Down
2 changes: 1 addition & 1 deletion backend/fan_config/hwmon/steamdeck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ hwmon_name: steamdeck_hwmon
fans:
- fan_name: Fan
pwm_mode: 0

pwm_enable:
manual_value: 1
auto_value: 0
Expand Down
6 changes: 5 additions & 1 deletion backend/fan_config/schema/hwmon.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"pwm_mode": {
"type": "number",
"enum": [0, 1],
"description": "写入的模式 0.普通模式(对单个文件写入) 1.rog掌机特殊模式(对多个文件写入同样的数值)"
"description": "写入的模式 0.普通模式(对单个文件写入) 1.对多个文件写入同样的数值"
},
"black_list": {
"type": "array",
Expand Down Expand Up @@ -79,6 +79,10 @@
"pwm_enable_path": {
"type": "string",
"description": "写入数值文件路径"
},
"pwm_enable_second_path": {
"type": "string",
"description": "写入数值文件路径(次选, pwm_enable_path 不存在时使用该路径)"
}
},
"required": ["manual_value", "auto_value", "pwm_enable_path"]
Expand Down

0 comments on commit b28a61b

Please sign in to comment.