Added fan controls
This commit is contained in:
@@ -1,18 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#define ICX3_I2C_ADDR 0x2D
|
||||
|
||||
#define ICX3_REG_FANCONTROL 80
|
||||
#define ICX3_REG_TEMPSENSOR 102
|
||||
#define ICX3_REG_READINFORMATION 177
|
||||
#define ICX3_REG_ENABLEWRITE 178
|
||||
|
||||
#define ICX3_FANCONTROL_SIZE 0x09
|
||||
#define ICX3_TEMPSENSOR_SIZE 0x13
|
||||
#define ICX3_READINFORMATION_SIZE 0x06
|
||||
#define ICX3_ENABLEWRITE_SIZE 0x05
|
||||
|
||||
#define ICX3_MAX_FANS 4
|
||||
#define ICX3_NUM_TEMP_SENSORS 9
|
||||
|
||||
#define ICX3_WRITE_ENABLED 0xFC
|
||||
#define ICX3_WRITE_DISABLED 0xFE
|
||||
|
||||
struct icx3_fan_control {
|
||||
unsigned char length;
|
||||
unsigned char fanmode;
|
||||
@@ -68,10 +71,22 @@ enum icx3_product_id {
|
||||
ICX3_PRODUCT_NONE = 0
|
||||
};
|
||||
|
||||
enum icx3_fan_mode {
|
||||
ICX3_FANMODE_DEFAULT,
|
||||
ICX3_FANMODE_GPU_CONTROL,
|
||||
ICX3_FANMODE_RPM,
|
||||
ICX3_FANMODE_GPU_RPM_OFFSET,
|
||||
ICX3_FANMODE_MCU_CURVE,
|
||||
ICX3_FANMODE_MODE3,
|
||||
};
|
||||
|
||||
static unsigned char icx3_write_enable[ICX3_ENABLEWRITE_SIZE] = {ICX3_ENABLEWRITE_SIZE-1, 198, 235, 234, 21};
|
||||
static unsigned char icx3_write_disable[ICX3_ENABLEWRITE_SIZE] = {ICX3_ENABLEWRITE_SIZE-1, 144, 235, 203, 52};
|
||||
|
||||
static char *icx3_fan_names[] = {
|
||||
"Fan 0",
|
||||
"Fan 1",
|
||||
"Fan 2",
|
||||
"Fan 3",
|
||||
"Ext. fan"
|
||||
};
|
||||
|
||||
@@ -99,3 +114,7 @@ static char *icx3_temp_sensor_names[] = {
|
||||
enum icx3_product_id check_for_icx3(char *i2c_dev_path);
|
||||
void print_icx3_fans(char *i2c_dev_path);
|
||||
void print_icx3_temps(char *i2c_dev_path);
|
||||
void get_available_fans(char *i2c_dev_path, char *fans_avail);
|
||||
int open_i2c_dev(char *i2c_dev_path);
|
||||
void enable_write(int enable, char *i2c_dev_path);
|
||||
void set_fan(int fan, char *setting, char *i2c_dev_path);
|
||||
Reference in New Issue
Block a user