diff options
Diffstat (limited to 'src/drivers/siemens/nc_fpga/nc_fpga.h')
-rw-r--r-- | src/drivers/siemens/nc_fpga/nc_fpga.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/drivers/siemens/nc_fpga/nc_fpga.h b/src/drivers/siemens/nc_fpga/nc_fpga.h new file mode 100644 index 0000000000..886f3dda05 --- /dev/null +++ b/src/drivers/siemens/nc_fpga/nc_fpga.h @@ -0,0 +1,64 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2016 Siemens AG. + * + * 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 + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _SIEMENS_NC_FPGA_H_ +#define _SIEMENS_NC_FPGA_H_ + +#define NC_MAGIC_OFFSET 0x020 +#define NC_FPGA_MAGIC 0x4E433746 +#define NC_CAP1_OFFSET 0x080 +#define NC_CAP1_FAN_CTRL 0x080 +#define NC_CAP1_TEMP_MON 0x100 +#define NC_FANMON_CTRL_OFFSET 0x400 + +#define MAX_NUM_SENSORS 4 + +typedef struct { + uint16_t rmin; + uint16_t rmax; + uint16_t nmin; + uint16_t nmax; +} temp_cc_t; + +typedef struct { + uint16_t res0; + uint8_t sensornum; + uint8_t res1; + uint32_t sensordelay; + uint32_t res2[4]; + temp_cc_t sensorcfg[8]; + uint32_t res3[4]; + uint8_t sensorselect; + uint8_t res4[3]; + uint16_t t_warn; + uint16_t t_crit; + uint16_t res5; + uint8_t res6[2]; + uint32_t samplingtime; + uint16_t setpoint; + uint8_t hystctrl; + uint8_t res7; + uint16_t kp; + uint16_t ki; + uint16_t kd; + uint16_t res8[2]; + uint16_t fanmax; + uint16_t hystval; + uint16_t hystthreshold; + uint16_t res9[4]; + uint32_t fanmon; +} __attribute__ ((packed)) fan_ctrl_t; + +#endif /* _SIEMENS_NC_FPGA_H_ */ |