siemens/nc_fpga: Add support for lowest FAN speed to FAN controller

The functionality of the FAN controller is extended to provide a
lowest startup speed of the FAN. Add the parameter "fanmin" to
the fan_ctrl_t structure and initialize the value.

Change-Id: Ib2e093ed6f5fc29bbea879779eb4777eb371b937
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/20789
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Werner Zeh 2017-07-27 13:48:18 +02:00 committed by Martin Roth
parent 909536a666
commit c38ab85cd4
2 changed files with 5 additions and 3 deletions

View File

@ -1,7 +1,7 @@
/* /*
* This file is part of the coreboot project. * This file is part of the coreboot project.
* *
* Copyright (C) 2016 Siemens AG. * Copyright (C) 2016-2017 Siemens AG.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -73,6 +73,7 @@ static void init_fan_ctrl (void *base_adr)
FPGA_SET_PARAM(FANKi, ctrl->ki); FPGA_SET_PARAM(FANKi, ctrl->ki);
FPGA_SET_PARAM(FANKd, ctrl->kd); FPGA_SET_PARAM(FANKd, ctrl->kd);
FPGA_SET_PARAM(FANMaxSpeed, ctrl->fanmax); FPGA_SET_PARAM(FANMaxSpeed, ctrl->fanmax);
FPGA_SET_PARAM(FANStartSpeed, ctrl->fanmin);
/* Set freeze and FAN configuration. */ /* Set freeze and FAN configuration. */
if ((hwilib_get_field(FF_FanReq, &fan_req, 1) == 1) && if ((hwilib_get_field(FF_FanReq, &fan_req, 1) == 1) &&
(hwilib_get_field(FF_FreezeDis, &freeze_disable, 1) == 1)) { (hwilib_get_field(FF_FreezeDis, &freeze_disable, 1) == 1)) {

View File

@ -1,7 +1,7 @@
/* /*
* This file is part of the coreboot project. * This file is part of the coreboot project.
* *
* Copyright (C) 2016 Siemens AG. * Copyright (C) 2016-2017 Siemens AG.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -60,7 +60,8 @@ typedef struct {
uint16_t kp; uint16_t kp;
uint16_t ki; uint16_t ki;
uint16_t kd; uint16_t kd;
uint16_t res8[2]; uint16_t fanmin;
uint16_t res8;
uint16_t fanmax; uint16_t fanmax;
uint16_t hystval; uint16_t hystval;
uint16_t hystthreshold; uint16_t hystthreshold;