path: root/control/
diff options
authorLei YU <>2018-01-31 16:47:37 +0800
committerLei YU <>2018-02-26 10:34:36 +0800
commit069e4405a6926cdacc33c0826075356da2cd9dbd (patch)
tree2d0083ed580d8bd3218a25cb75095cad4a9ed906 /control/
parent80f271b296488e12d4edd29b5bb908a407fbda1f (diff)
Add target interface for fan control
Current fan control assumes the use of the FanSpeed interface for fan targets. For fans controlled by pwm, FanPwm interface is added. This commit adds "target_interface" config parameter, so that user can specify the interface for the fan targets. E.g. - inventory: /system/chassis/motherboard/fan0 cooling_zone: 0 cooling_profile: air sensors: - fan0 target_interface: xyz.openbmc_project.Control.FanPwm The config is optional and defaults to FanSpeed, so the current code will not be affected. Tested: Use this config on Romulus, ensures the fan control sets target on FanPwm interface and works fine. Change-Id: I73adccaa770d657b5d7aaeb307917f89588524de Signed-off-by: Lei YU <>
Diffstat (limited to 'control/')
1 files changed, 5 insertions, 1 deletions
diff --git a/control/ b/control/
index 1568137..3ccab36 100755
--- a/control/
+++ b/control/
@@ -140,7 +140,8 @@ const std::vector<ZoneGroup> Manager::_zoneLayouts
%for sensor in fan['sensors']:
- }
+ },
+ "${fan['target_interface']}"
@@ -665,6 +666,9 @@ def getFansInZone(zone_num, profiles, fan_data):
fan = {}
fan['name'] = f['inventory']
fan['sensors'] = f['sensors']
+ fan['target_interface'] = f.get(
+ 'target_interface',
+ 'xyz.openbmc_project.Control.FanSpeed')
return fans
OpenPOWER on IntegriCloud