From 8ffb8660b7b581bc570084f569f00f3bc3afb1a7 Mon Sep 17 00:00:00 2001 From: Frodo Looijaard Date: Sat, 19 Dec 1998 13:18:16 +0000 Subject: [PATCH] Again, some library files. These document for each chip how it can be accessed. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@93 7894878c-1315-0410-8ee3-d5d059ff63e0 --- lib/Module.mk | 2 +- lib/access.h | 48 ++++++ lib/chips.c | 435 ++++++++++++++++++++++++++++++++++++++++++++++++++ lib/chips.h | 229 ++++++++++++++++++++++++++ 4 files changed, 713 insertions(+), 1 deletion(-) create mode 100644 lib/access.h create mode 100644 lib/chips.c create mode 100644 lib/chips.h diff --git a/lib/Module.mk b/lib/Module.mk index d661f2fa..94ee3f63 100644 --- a/lib/Module.mk +++ b/lib/Module.mk @@ -35,7 +35,7 @@ LIBSHSONAME := libsensors.so.$(LIBMAINVER) LIBTARGETS := $(MODULE_DIR)/$(LIBSTLIBNAME) $(MODULE_DIR)/$(LIBSHLIBNAME) LIBCSOURCES := $(MODULE_DIR)/data.c $(MODULE_DIR)/general.c \ - $(MODULE_DIR)/error.c + $(MODULE_DIR)/error.c $(MODULE_DIR)/chips.c LIBOTHEROBJECTS := $(MODULE_DIR)/conf-parse.o $(MODULE_DIR)/conf-lex.o LIBSHOBJECTS := $(LIBCSOURCES:.c=.lo) $(LIBOTHEROBJECTS:.o=.lo) LIBSTOBJECTS := $(LIBCSOURCES:.c=.ao) $(LIBOTHEROBJECTS:.o=.ao) diff --git a/lib/access.h b/lib/access.h new file mode 100644 index 00000000..219d4bf3 --- /dev/null +++ b/lib/access.h @@ -0,0 +1,48 @@ +/* + access.h - Part of libsensors, a Linux library for reading sensor data. + Copyright (c) 1998 Frodo Looijaard + + 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; either version 2 of the License, or + (at your option) any later version. + + 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef LIB_SENSORS_ACCESS_H +#define LIB_SENSORS_ACCESS_H + +typedef struct sensors_chip_feature { + int number; + const char *name; + int logical_mapping; + int compute_mapping; + int mode; + int sysctl; + int offset; + int scaling; +} sensors_chip_feature; + +typedef struct sensors_chip_features { + const char *prefix; + struct sensors_chip_feature *feature; +} sensors_chip_features; + +#define SENSORS_NO_RW 0 +#define SENSORS_R 1 +#define SENSORS_W 2 +#define SENSORS_RW 3 + +#define SENSORS_NO_MAPPING -1 + +extern sensors_chip_features sensors_chip_features_list[]; + +#endif /* def LIB_SENSORS_ACCESS_H */ diff --git a/lib/chips.c b/lib/chips.c new file mode 100644 index 00000000..40078f5b --- /dev/null +++ b/lib/chips.c @@ -0,0 +1,435 @@ +/* + chips.c - Part of libsensors, a Linux library for reading sensor data. + Copyright (c) 1998 Frodo Looijaard + + 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; either version 2 of the License, or + (at your option) any later version. + + 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "chips.h" +#include "access.h" +#include "src/sensors.h" + +/* For each chip, a list of features; + For each feature, the number, its name, the logical mapping (for example, + fan1_div belongs to fan1), the compute mapping, an access field, the + SYSCTL id of the /proc field, the value location of the /proc field, + and the magnitude. + The access field indicates whether resources are readable and writable. + Sometimes, a resource is neither; in this case, it is just a catch-all + category, for mappings. + The value location is the byte-offset where this value can be found in + the sysctl buffer. + The magnitude is the 10-power through which the read value must be + divided. */ + + +#define VALUE(x) (x-1) * sizeof(double) + +static sensors_chip_feature lm78_features[] = + { + { SENSORS_LM78_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN0, VALUE(3), 2 }, + { SENSORS_LM78_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN1, VALUE(3), 2 }, + { SENSORS_LM78_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN2, VALUE(3), 2 }, + { SENSORS_LM78_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN3, VALUE(3), 2 }, + { SENSORS_LM78_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN4, VALUE(3), 2 }, + { SENSORS_LM78_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN5, VALUE(3), 2 }, + { SENSORS_LM78_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN6, VALUE(3), 2 }, + { SENSORS_LM78_IN0_MIN, "in0_min", SENSORS_LM78_IN0, SENSORS_LM78_IN0, + SENSORS_RW, LM78_SYSCTL_IN0, VALUE(1), 2 }, + { SENSORS_LM78_IN1_MIN, "in1_min", SENSORS_LM78_IN1, SENSORS_LM78_IN1, + SENSORS_RW, LM78_SYSCTL_IN1, VALUE(1), 2 }, + { SENSORS_LM78_IN2_MIN, "in2_min", SENSORS_LM78_IN2, SENSORS_LM78_IN2, + SENSORS_RW, LM78_SYSCTL_IN2, VALUE(1), 2 }, + { SENSORS_LM78_IN3_MIN, "in3_min", SENSORS_LM78_IN3, SENSORS_LM78_IN3, + SENSORS_RW, LM78_SYSCTL_IN3, VALUE(1), 2 }, + { SENSORS_LM78_IN4_MIN, "in4_min", SENSORS_LM78_IN4, SENSORS_LM78_IN4, + SENSORS_RW, LM78_SYSCTL_IN4, VALUE(1), 2 }, + { SENSORS_LM78_IN5_MIN, "in5_min", SENSORS_LM78_IN5, SENSORS_LM78_IN5, + SENSORS_RW, LM78_SYSCTL_IN5, VALUE(1), 2 }, + { SENSORS_LM78_IN6_MIN, "in6_min", SENSORS_LM78_IN6, SENSORS_LM78_IN6, + SENSORS_RW, LM78_SYSCTL_IN6, VALUE(1), 2 }, + { SENSORS_LM78_IN0_MAX, "in0_max", SENSORS_LM78_IN0, SENSORS_LM78_IN0, + SENSORS_RW, LM78_SYSCTL_IN0, VALUE(2), 2 }, + { SENSORS_LM78_IN1_MAX, "in1_max", SENSORS_LM78_IN1, SENSORS_LM78_IN1, + SENSORS_RW, LM78_SYSCTL_IN1, VALUE(2), 2 }, + { SENSORS_LM78_IN2_MAX, "in2_max", SENSORS_LM78_IN2, SENSORS_LM78_IN2, + SENSORS_RW, LM78_SYSCTL_IN2, VALUE(2), 2 }, + { SENSORS_LM78_IN3_MAX, "in3_max", SENSORS_LM78_IN3, SENSORS_LM78_IN3, + SENSORS_RW, LM78_SYSCTL_IN3, VALUE(2), 2 }, + { SENSORS_LM78_IN4_MAX, "in4_max", SENSORS_LM78_IN4, SENSORS_LM78_IN4, + SENSORS_RW, LM78_SYSCTL_IN4, VALUE(2), 2 }, + { SENSORS_LM78_IN5_MAX, "in5_max", SENSORS_LM78_IN5, SENSORS_LM78_IN5, + SENSORS_RW, LM78_SYSCTL_IN5, VALUE(2), 2 }, + { SENSORS_LM78_IN6_MAX, "in6_max", SENSORS_LM78_IN6, SENSORS_LM78_IN6, + SENSORS_RW, LM78_SYSCTL_IN6, VALUE(2), 2 }, + { SENSORS_LM78_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_LM78_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_LM78_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN3, VALUE(2), 0 }, + { SENSORS_LM78_FAN1_MIN, "fan1_min", SENSORS_LM78_FAN1, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_LM78_FAN2_MIN, "fan2_min", SENSORS_LM78_FAN2, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_LM78_FAN3_MIN, "fan3_min", SENSORS_LM78_FAN3, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN3, VALUE(1), 0 }, + { SENSORS_LM78_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_TEMP, VALUE(3), 1 }, + { SENSORS_LM78_TEMP_HYST, "temp_hyst", SENSORS_LM78_TEMP, + SENSORS_LM78_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP, + VALUE(2), 1 }, + { SENSORS_LM78_TEMP_OVER, "temp_over", SENSORS_LM78_TEMP, + SENSORS_LM78_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP, + VALUE(1), 1 }, + { SENSORS_LM78_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_VID, VALUE(1), 2 }, + { SENSORS_LM78_FAN1_DIV, "fan1_div", SENSORS_LM78_FAN1, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_LM78_FAN2_DIV, "fan2_div", SENSORS_LM78_FAN2, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_LM78_FAN3_DIV, "fan3_div", SENSORS_LM78_FAN3, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { SENSORS_LM78_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 }, + { 0 } + }; + +static sensors_chip_feature lm78j_features[] = + { + { SENSORS_LM78J_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN0, VALUE(3), 2 }, + { SENSORS_LM78J_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN1, VALUE(3), 2 }, + { SENSORS_LM78J_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN2, VALUE(3), 2 }, + { SENSORS_LM78J_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN3, VALUE(3), 2 }, + { SENSORS_LM78J_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN4, VALUE(3), 2 }, + { SENSORS_LM78J_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN5, VALUE(3), 2 }, + { SENSORS_LM78J_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN6, VALUE(3), 2 }, + { SENSORS_LM78J_IN0_MIN, "in0_min", SENSORS_LM78J_IN0, SENSORS_LM78J_IN0, + SENSORS_RW, LM78_SYSCTL_IN0, VALUE(1), 2 }, + { SENSORS_LM78J_IN1_MIN, "in1_min", SENSORS_LM78J_IN1, SENSORS_LM78J_IN1, + SENSORS_RW, LM78_SYSCTL_IN1, VALUE(1), 2 }, + { SENSORS_LM78J_IN2_MIN, "in2_min", SENSORS_LM78J_IN2, SENSORS_LM78J_IN2, + SENSORS_RW, LM78_SYSCTL_IN2, VALUE(1), 2 }, + { SENSORS_LM78J_IN3_MIN, "in3_min", SENSORS_LM78J_IN3, SENSORS_LM78J_IN3, + SENSORS_RW, LM78_SYSCTL_IN3, VALUE(1), 2 }, + { SENSORS_LM78J_IN4_MIN, "in4_min", SENSORS_LM78J_IN4, SENSORS_LM78J_IN4, + SENSORS_RW, LM78_SYSCTL_IN4, VALUE(1), 2 }, + { SENSORS_LM78J_IN5_MIN, "in5_min", SENSORS_LM78J_IN5, SENSORS_LM78J_IN5, + SENSORS_RW, LM78_SYSCTL_IN5, VALUE(1), 2 }, + { SENSORS_LM78J_IN6_MIN, "in6_min", SENSORS_LM78J_IN6, SENSORS_LM78J_IN6, + SENSORS_RW, LM78_SYSCTL_IN6, VALUE(1), 2 }, + { SENSORS_LM78J_IN0_MAX, "in0_max", SENSORS_LM78J_IN0, SENSORS_LM78J_IN0, + SENSORS_RW, LM78_SYSCTL_IN0, VALUE(2), 2 }, + { SENSORS_LM78J_IN1_MAX, "in1_max", SENSORS_LM78J_IN1, SENSORS_LM78J_IN1, + SENSORS_RW, LM78_SYSCTL_IN1, VALUE(2), 2 }, + { SENSORS_LM78J_IN2_MAX, "in2_max", SENSORS_LM78J_IN2, SENSORS_LM78J_IN2, + SENSORS_RW, LM78_SYSCTL_IN2, VALUE(2), 2 }, + { SENSORS_LM78J_IN3_MAX, "in3_max", SENSORS_LM78J_IN3, SENSORS_LM78J_IN3, + SENSORS_RW, LM78_SYSCTL_IN3, VALUE(2), 2 }, + { SENSORS_LM78J_IN4_MAX, "in4_max", SENSORS_LM78J_IN4, SENSORS_LM78J_IN4, + SENSORS_RW, LM78_SYSCTL_IN4, VALUE(2), 2 }, + { SENSORS_LM78J_IN5_MAX, "in5_max", SENSORS_LM78J_IN5, SENSORS_LM78J_IN5, + SENSORS_RW, LM78_SYSCTL_IN5, VALUE(2), 2 }, + { SENSORS_LM78J_IN6_MAX, "in6_max", SENSORS_LM78J_IN6, SENSORS_LM78J_IN6, + SENSORS_RW, LM78_SYSCTL_IN6, VALUE(2), 2 }, + { SENSORS_LM78J_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_LM78J_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_LM78J_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN3, VALUE(2), 0 }, + { SENSORS_LM78J_FAN1_MIN, "fan1_min", SENSORS_LM78J_FAN1, + SENSORS_NO_MAPPING, SENSORS_RW, LM78_SYSCTL_FAN1, + VALUE(1), 0 }, + { SENSORS_LM78J_FAN2_MIN, "fan2_min", SENSORS_LM78J_FAN2, + SENSORS_NO_MAPPING, SENSORS_RW, LM78_SYSCTL_FAN2, + VALUE(1), 0 }, + { SENSORS_LM78J_FAN3_MIN, "fan3_min", SENSORS_LM78J_FAN3, + SENSORS_NO_MAPPING, SENSORS_RW, LM78_SYSCTL_FAN3, + VALUE(1), 0 }, + { SENSORS_LM78J_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_TEMP, VALUE(3), 1 }, + { SENSORS_LM78J_TEMP_HYST, "temp_hyst", SENSORS_LM78J_TEMP, + SENSORS_LM78J_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP, + VALUE(2), 1 }, + { SENSORS_LM78J_TEMP_OVER, "temp_over", SENSORS_LM78J_TEMP, + SENSORS_LM78J_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP, + VALUE(1), 1 }, + { SENSORS_LM78J_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_VID, VALUE(1), 2 }, + { SENSORS_LM78J_FAN1_DIV, "fan1_div", SENSORS_LM78J_FAN1, + SENSORS_NO_MAPPING, SENSORS_RW, + LM78_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_LM78J_FAN2_DIV, "fan2_div", SENSORS_LM78J_FAN2, + SENSORS_NO_MAPPING, SENSORS_RW, + LM78_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_LM78J_FAN3_DIV, "fan3_div", SENSORS_LM78J_FAN3, + SENSORS_NO_MAPPING, SENSORS_R, + LM78_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { SENSORS_LM78J_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 }, + { 0 } + }; + +static sensors_chip_feature lm79_features[] = + { + { SENSORS_LM79_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN0, VALUE(3), 2 }, + { SENSORS_LM79_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN1, VALUE(3), 2 }, + { SENSORS_LM79_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN2, VALUE(3), 2 }, + { SENSORS_LM79_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN3, VALUE(3), 2 }, + { SENSORS_LM79_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN4, VALUE(3), 2 }, + { SENSORS_LM79_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN5, VALUE(3), 2 }, + { SENSORS_LM79_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_IN6, VALUE(3), 2 }, + { SENSORS_LM79_IN0_MIN, "in0_min", SENSORS_LM79_IN0, SENSORS_LM79_IN0, + SENSORS_RW, LM78_SYSCTL_IN0, VALUE(1), 2 }, + { SENSORS_LM79_IN1_MIN, "in1_min", SENSORS_LM79_IN1, SENSORS_LM79_IN1, + SENSORS_RW, LM78_SYSCTL_IN1, VALUE(1), 2 }, + { SENSORS_LM79_IN2_MIN, "in2_min", SENSORS_LM79_IN2, SENSORS_LM79_IN2, + SENSORS_RW, LM78_SYSCTL_IN2, VALUE(1), 2 }, + { SENSORS_LM79_IN3_MIN, "in3_min", SENSORS_LM79_IN3, SENSORS_LM79_IN3, + SENSORS_RW, LM78_SYSCTL_IN3, VALUE(1), 2 }, + { SENSORS_LM79_IN4_MIN, "in4_min", SENSORS_LM79_IN4, SENSORS_LM79_IN4, + SENSORS_RW, LM78_SYSCTL_IN4, VALUE(1), 2 }, + { SENSORS_LM79_IN5_MIN, "in5_min", SENSORS_LM79_IN5, SENSORS_LM79_IN5, + SENSORS_RW, LM78_SYSCTL_IN5, VALUE(1), 2 }, + { SENSORS_LM79_IN6_MIN, "in6_min", SENSORS_LM79_IN6, SENSORS_LM79_IN6, + SENSORS_RW, LM78_SYSCTL_IN6, VALUE(1), 2 }, + { SENSORS_LM79_IN0_MAX, "in0_max", SENSORS_LM79_IN0, SENSORS_LM79_IN0, + SENSORS_RW, LM78_SYSCTL_IN0, VALUE(2), 2 }, + { SENSORS_LM79_IN1_MAX, "in1_max", SENSORS_LM79_IN1, SENSORS_LM79_IN1, + SENSORS_RW, LM78_SYSCTL_IN1, VALUE(2), 2 }, + { SENSORS_LM79_IN2_MAX, "in2_max", SENSORS_LM79_IN2, SENSORS_LM79_IN2, + SENSORS_RW, LM78_SYSCTL_IN2, VALUE(2), 2 }, + { SENSORS_LM79_IN3_MAX, "in3_max", SENSORS_LM79_IN3, SENSORS_LM79_IN3, + SENSORS_RW, LM78_SYSCTL_IN3, VALUE(2), 2 }, + { SENSORS_LM79_IN4_MAX, "in4_max", SENSORS_LM79_IN4, SENSORS_LM79_IN4, + SENSORS_RW, LM78_SYSCTL_IN4, VALUE(2), 2 }, + { SENSORS_LM79_IN5_MAX, "in5_max", SENSORS_LM79_IN5, SENSORS_LM79_IN5, + SENSORS_RW, LM78_SYSCTL_IN5, VALUE(2), 2 }, + { SENSORS_LM79_IN6_MAX, "in6_max", SENSORS_LM79_IN6, SENSORS_LM79_IN6, + SENSORS_RW, LM78_SYSCTL_IN6, VALUE(2), 2 }, + { SENSORS_LM79_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_LM79_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_LM79_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN3, VALUE(2), 0 }, + { SENSORS_LM79_FAN1_MIN, "fan1_min", SENSORS_LM79_FAN1, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_LM79_FAN2_MIN, "fan2_min", SENSORS_LM79_FAN2, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_LM79_FAN3_MIN, "fan3_min", SENSORS_LM79_FAN3, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN3, VALUE(1), 0 }, + { SENSORS_LM79_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_TEMP, VALUE(3), 1 }, + { SENSORS_LM79_TEMP_HYST, "temp_hyst", SENSORS_LM79_TEMP, + SENSORS_LM79_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP, + VALUE(2), 1 }, + { SENSORS_LM79_TEMP_OVER, "temp_over", SENSORS_LM79_TEMP, + SENSORS_LM79_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP, + VALUE(1), 1 }, + { SENSORS_LM79_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_VID, VALUE(1), 2 }, + { SENSORS_LM79_FAN1_DIV, "fan1_div", SENSORS_LM79_FAN1, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_LM79_FAN2_DIV, "fan2_div", SENSORS_LM79_FAN2, SENSORS_NO_MAPPING, + SENSORS_RW, LM78_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_LM79_FAN3_DIV, "fan3_div", SENSORS_LM79_FAN3, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { SENSORS_LM79_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 }, + { 0 } + }; + + +static sensors_chip_feature lm75_features[] = + { + { SENSORS_LM75_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, LM75_SYSCTL_TEMP, VALUE(3), 1 }, + { SENSORS_LM75_TEMP_HYST, "temp_hyst", SENSORS_LM75_TEMP, + SENSORS_LM75_TEMP, SENSORS_RW, LM75_SYSCTL_TEMP, + VALUE(2), 1 }, + { SENSORS_LM75_TEMP_OVER, "temp_over", SENSORS_LM75_TEMP, + SENSORS_LM75_TEMP, SENSORS_RW, LM75_SYSCTL_TEMP, + VALUE(1), 1 }, + { 0 } + }; + +static sensors_chip_feature gl518r00_features[] = + { + { SENSORS_GL518R00_VDD, "vdd", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING, + SENSORS_NO_RW, GL518_SYSCTL_VDD, VALUE(3), 2 }, + { SENSORS_GL518R00_VIN1, "vin1", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING, + SENSORS_NO_RW, GL518_SYSCTL_VIN1, VALUE(3), 2 }, + { SENSORS_GL518R00_VIN2, "vin2", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING, + SENSORS_NO_RW, GL518_SYSCTL_VIN2, VALUE(3), 2 }, + { SENSORS_GL518R00_VIN3, "vin3", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_VIN3, VALUE(3), 2 }, + { SENSORS_GL518R00_VDD_MIN, "vdd_min", SENSORS_GL518R00_VDD, + SENSORS_GL518R00_VDD, SENSORS_RW, + GL518_SYSCTL_VDD, VALUE(1), 2 }, + { SENSORS_GL518R00_VIN1_MIN, "vin1_min", SENSORS_GL518R00_VIN1, + SENSORS_GL518R00_VIN1, SENSORS_RW, + GL518_SYSCTL_VIN1, VALUE(1), 2 }, + { SENSORS_GL518R00_VIN2_MIN, "vin2_min", SENSORS_GL518R00_VIN2, + SENSORS_GL518R00_VIN2, SENSORS_RW, + GL518_SYSCTL_VIN2, VALUE(1), 2 }, + { SENSORS_GL518R00_VIN3_MIN, "vin3_min", SENSORS_GL518R00_VIN3, + SENSORS_GL518R00_VIN3, SENSORS_RW, + GL518_SYSCTL_VIN3, VALUE(1), 2 }, + { SENSORS_GL518R00_VDD_MAX, "vdd_max", SENSORS_GL518R00_VDD, + SENSORS_GL518R00_VDD, SENSORS_RW, + GL518_SYSCTL_VDD, VALUE(2), 2 }, + { SENSORS_GL518R00_VIN1_MAX, "vin1_max", SENSORS_GL518R00_VIN1, + SENSORS_GL518R00_VIN1, SENSORS_RW, + GL518_SYSCTL_VIN1, VALUE(2), 2 }, + { SENSORS_GL518R00_VIN2_MAX, "vin2_max", SENSORS_GL518R00_VIN2, + SENSORS_GL518R00_VIN2, SENSORS_RW, + GL518_SYSCTL_VIN2, VALUE(2), 2 }, + { SENSORS_GL518R00_VIN3_MAX, "vin3_max", SENSORS_GL518R00_VIN3, + SENSORS_GL518R00_VIN3, SENSORS_RW, + GL518_SYSCTL_VIN3, VALUE(2), 2 }, + { SENSORS_GL518R00_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_GL518R00_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_GL518R00_FAN1_MIN, "fan1_min", SENSORS_GL518R00_FAN1, + SENSORS_GL518R00_FAN1, SENSORS_RW, + GL518_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_GL518R00_FAN2_MIN, "fan2_min", SENSORS_GL518R00_FAN2, + SENSORS_GL518R00_FAN2, SENSORS_RW, + GL518_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_GL518R00_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_TEMP, VALUE(3), 1 }, + { SENSORS_GL518R00_TEMP_HYST, "temp_hyst", SENSORS_GL518R00_TEMP, + SENSORS_GL518R00_TEMP, SENSORS_RW, + GL518_SYSCTL_TEMP, VALUE(2), 1 }, + { SENSORS_GL518R00_TEMP_OVER, "temp_over", SENSORS_GL518R00_TEMP, + SENSORS_GL518R00_TEMP, SENSORS_RW, + GL518_SYSCTL_VDD, VALUE(1), 1 }, + { SENSORS_GL518R00_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_VID, VALUE(1), 0 }, + { SENSORS_GL518R00_FAN1_DIV, "fan1_div", SENSORS_GL518R00_FAN1, + SENSORS_NO_MAPPING, SENSORS_RW, + GL518_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_GL518R00_FAN2_DIV, "fan2_div", SENSORS_GL518R00_FAN2, + SENSORS_NO_MAPPING, SENSORS_RW, + GL518_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_GL518R00_ALARMS, "alarms", SENSORS_NO_MAPPING, + SENSORS_NO_MAPPING, SENSORS_R, + GL518_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { 0 } + }; + + +static sensors_chip_feature gl518r80_features[] = + { + { SENSORS_GL518R80_VDD, "vdd", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING, + SENSORS_NO_RW, GL518_SYSCTL_VDD, VALUE(3), 2 }, + { SENSORS_GL518R80_VIN1, "vin1", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING, + SENSORS_NO_RW, GL518_SYSCTL_VIN1, VALUE(3), 2 }, + { SENSORS_GL518R80_VIN2, "vin2", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING, + SENSORS_NO_RW, GL518_SYSCTL_VIN2, VALUE(3), 2 }, + { SENSORS_GL518R80_VIN3, "vin3", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_VIN3, VALUE(3), 2 }, + { SENSORS_GL518R80_VDD_MIN, "vdd_min", SENSORS_GL518R80_VDD, + SENSORS_GL518R80_VDD, SENSORS_RW, + GL518_SYSCTL_VDD, VALUE(1), 2 }, + { SENSORS_GL518R80_VIN1_MIN, "vin1_min", SENSORS_GL518R80_VIN1, + SENSORS_GL518R80_VIN1, SENSORS_RW, + GL518_SYSCTL_VIN1, VALUE(1), 2 }, + { SENSORS_GL518R80_VIN2_MIN, "vin2_min", SENSORS_GL518R80_VIN2, + SENSORS_GL518R80_VIN2, SENSORS_RW, + GL518_SYSCTL_VIN2, VALUE(1), 2 }, + { SENSORS_GL518R80_VIN3_MIN, "vin3_min", SENSORS_GL518R80_VIN3, + SENSORS_GL518R80_VIN3, SENSORS_RW, + GL518_SYSCTL_VIN3, VALUE(1), 2 }, + { SENSORS_GL518R80_VDD_MAX, "vdd_max", SENSORS_GL518R80_VDD, + SENSORS_GL518R80_VDD, SENSORS_RW, + GL518_SYSCTL_VDD, VALUE(2), 2 }, + { SENSORS_GL518R80_VIN1_MAX, "vin1_max", SENSORS_GL518R80_VIN1, + SENSORS_GL518R80_VIN1, SENSORS_RW, + GL518_SYSCTL_VIN1, VALUE(2), 2 }, + { SENSORS_GL518R80_VIN2_MAX, "vin2_max", SENSORS_GL518R80_VIN2, + SENSORS_GL518R80_VIN2, SENSORS_RW, + GL518_SYSCTL_VIN2, VALUE(2), 2 }, + { SENSORS_GL518R80_VIN3_MAX, "vin3_max", SENSORS_GL518R80_VIN3, + SENSORS_GL518R80_VIN3, SENSORS_RW, + GL518_SYSCTL_VIN3, VALUE(2), 2 }, + { SENSORS_GL518R80_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_GL518R80_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_GL518R80_FAN1_MIN, "fan1_min", SENSORS_GL518R80_FAN1, + SENSORS_GL518R80_FAN1, SENSORS_RW, + GL518_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_GL518R80_FAN2_MIN, "fan2_min", SENSORS_GL518R80_FAN2, + SENSORS_GL518R80_FAN2, SENSORS_RW, + GL518_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_GL518R80_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_TEMP, VALUE(3), 1 }, + { SENSORS_GL518R80_TEMP_HYST, "temp_hyst", SENSORS_GL518R80_TEMP, + SENSORS_GL518R80_TEMP, SENSORS_RW, + GL518_SYSCTL_TEMP, VALUE(2), 1 }, + { SENSORS_GL518R80_TEMP_OVER, "temp_over", SENSORS_GL518R80_TEMP, + SENSORS_GL518R80_TEMP, SENSORS_RW, + GL518_SYSCTL_VDD, VALUE(1), 1 }, + { SENSORS_GL518R80_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_R, GL518_SYSCTL_VID, VALUE(1), 0 }, + { SENSORS_GL518R80_FAN1_DIV, "fan1_div", SENSORS_GL518R80_FAN1, + SENSORS_NO_MAPPING, SENSORS_RW, + GL518_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_GL518R80_FAN2_DIV, "fan2_div", SENSORS_GL518R80_FAN2, + SENSORS_NO_MAPPING, SENSORS_RW, + GL518_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_GL518R80_ALARMS, "alarms", SENSORS_NO_MAPPING, + SENSORS_NO_MAPPING, SENSORS_R, + GL518_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { 0 } + }; + + +sensors_chip_features sensors_chip_features_list[] = +{ + { SENSORS_LM78_PREFIX, lm78_features }, + { SENSORS_LM78J_PREFIX, lm78j_features }, + { SENSORS_LM79_PREFIX, lm79_features }, + { SENSORS_LM75_PREFIX, lm75_features }, + { SENSORS_GL518R00_PREFIX, gl518r00_features }, + { SENSORS_GL518R80_PREFIX, gl518r80_features }, + { 0 } +}; + diff --git a/lib/chips.h b/lib/chips.h new file mode 100644 index 00000000..8b8dba96 --- /dev/null +++ b/lib/chips.h @@ -0,0 +1,229 @@ +/* + chips.h - Part of libsensors, a Linux library for reading sensor data. + Copyright (c) 1998 Frodo Looijaard + + 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; either version 2 of the License, or + (at your option) any later version. + + 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +/* This files contains, for each type of chip, the kind of values you can + read and write. The actual value of each define is completely arbitrary, + as long as, for one specific chip, each defined value is unique. I tried + to give similar features similar values, but you can't trust that. + Some entries are very alike (for example the LM78, LM78-J and LM79 + defines). Where documented, you can mix the defines. If chip prefixes + are different, they get their own entry. */ + +/* If you add a chip here, do not forget to add the entry in chips.c too. + Other than that (and a recompile, and a bump up of the library number + for shared libs) nothing should need to be done to support new chips. */ + + +/* LM78 chips */ + +#ifndef LIB_SENSORS_CHIPS_H +#define LIB_SENSORS_CHIP_H + +#define SENSORS_LM78_PREFIX "lm78" + +#define SENSORS_LM78_IN0 1 /* R */ +#define SENSORS_LM78_IN1 2 /* R */ +#define SENSORS_LM78_IN2 3 /* R */ +#define SENSORS_LM78_IN3 4 /* R */ +#define SENSORS_LM78_IN4 5 /* R */ +#define SENSORS_LM78_IN5 6 /* R */ +#define SENSORS_LM78_IN6 7 /* R */ +#define SENSORS_LM78_IN0_MIN 11 /* RW */ +#define SENSORS_LM78_IN1_MIN 12 /* RW */ +#define SENSORS_LM78_IN2_MIN 13 /* RW */ +#define SENSORS_LM78_IN3_MIN 14 /* RW */ +#define SENSORS_LM78_IN4_MIN 15 /* RW */ +#define SENSORS_LM78_IN5_MIN 16 /* RW */ +#define SENSORS_LM78_IN6_MIN 17 /* RW */ +#define SENSORS_LM78_IN0_MAX 21 /* RW */ +#define SENSORS_LM78_IN1_MAX 22 /* RW */ +#define SENSORS_LM78_IN2_MAX 23 /* RW */ +#define SENSORS_LM78_IN3_MAX 24 /* RW */ +#define SENSORS_LM78_IN4_MAX 25 /* RW */ +#define SENSORS_LM78_IN5_MAX 26 /* RW */ +#define SENSORS_LM78_IN6_MAX 27 /* RW */ +#define SENSORS_LM78_FAN1 31 /* R */ +#define SENSORS_LM78_FAN2 32 /* R */ +#define SENSORS_LM78_FAN3 33 /* R */ +#define SENSORS_LM78_FAN1_MIN 41 /* RW */ +#define SENSORS_LM78_FAN2_MIN 42 /* RW */ +#define SENSORS_LM78_FAN3_MIN 43 /* RW */ +#define SENSORS_LM78_TEMP 51 /* R */ +#define SENSORS_LM78_TEMP_HYST 52 /* RW */ +#define SENSORS_LM78_TEMP_OVER 53 /* RW */ +#define SENSORS_LM78_VID 61 /* R */ +#define SENSORS_LM78_FAN1_DIV 71 /* RW */ +#define SENSORS_LM78_FAN2_DIV 72 /* RW */ +#define SENSORS_LM78_FAN3_DIV 73 /* R (yes, really! */ +#define SENSORS_LM78_ALARMS 81 /* R */ + + +/* LM78-J chips. It is actually safe to use the LM78 defines instead, but it + is better practice to use these. */ + +#define SENSORS_LM78J_PREFIX "lm78-j" + +#define SENSORS_LM78J_IN0 1 /* R */ +#define SENSORS_LM78J_IN1 2 /* R */ +#define SENSORS_LM78J_IN2 3 /* R */ +#define SENSORS_LM78J_IN3 4 /* R */ +#define SENSORS_LM78J_IN4 5 /* R */ +#define SENSORS_LM78J_IN5 6 /* R */ +#define SENSORS_LM78J_IN6 7 /* R */ +#define SENSORS_LM78J_IN0_MIN 11 /* RW */ +#define SENSORS_LM78J_IN1_MIN 12 /* RW */ +#define SENSORS_LM78J_IN2_MIN 13 /* RW */ +#define SENSORS_LM78J_IN3_MIN 14 /* RW */ +#define SENSORS_LM78J_IN4_MIN 15 /* RW */ +#define SENSORS_LM78J_IN5_MIN 16 /* RW */ +#define SENSORS_LM78J_IN6_MIN 17 /* RW */ +#define SENSORS_LM78J_IN0_MAX 21 /* RW */ +#define SENSORS_LM78J_IN1_MAX 22 /* RW */ +#define SENSORS_LM78J_IN2_MAX 23 /* RW */ +#define SENSORS_LM78J_IN3_MAX 24 /* RW */ +#define SENSORS_LM78J_IN4_MAX 25 /* RW */ +#define SENSORS_LM78J_IN5_MAX 26 /* RW */ +#define SENSORS_LM78J_IN6_MAX 27 /* RW */ +#define SENSORS_LM78J_FAN1 31 /* R */ +#define SENSORS_LM78J_FAN2 32 /* R */ +#define SENSORS_LM78J_FAN3 33 /* R */ +#define SENSORS_LM78J_FAN1_MIN 41 /* RW */ +#define SENSORS_LM78J_FAN2_MIN 42 /* RW */ +#define SENSORS_LM78J_FAN3_MIN 43 /* RW */ +#define SENSORS_LM78J_TEMP 51 /* R */ +#define SENSORS_LM78J_TEMP_HYST 52 /* RW */ +#define SENSORS_LM78J_TEMP_OVER 53 /* RW */ +#define SENSORS_LM78J_VID 61 /* R */ +#define SENSORS_LM78J_FAN1_DIV 71 /* RW */ +#define SENSORS_LM78J_FAN2_DIV 72 /* RW */ +#define SENSORS_LM78J_FAN3_DIV 73 /* R (yes, really!) */ +#define SENSORS_LM78J_ALARMS 81 /* R */ + + +/* LM79 chips. It is actually safe to use the LM78 defines instead, but it + is better practice to use these. */ + +#define SENSORS_LM79_PREFIX "lm79" + +#define SENSORS_LM79_IN0 1 /* R */ +#define SENSORS_LM79_IN1 2 /* R */ +#define SENSORS_LM79_IN2 3 /* R */ +#define SENSORS_LM79_IN3 4 /* R */ +#define SENSORS_LM79_IN4 5 /* R */ +#define SENSORS_LM79_IN5 6 /* R */ +#define SENSORS_LM79_IN6 7 /* R */ +#define SENSORS_LM79_IN0_MIN 11 /* RW */ +#define SENSORS_LM79_IN1_MIN 12 /* RW */ +#define SENSORS_LM79_IN2_MIN 13 /* RW */ +#define SENSORS_LM79_IN3_MIN 14 /* RW */ +#define SENSORS_LM79_IN4_MIN 15 /* RW */ +#define SENSORS_LM79_IN5_MIN 16 /* RW */ +#define SENSORS_LM79_IN6_MIN 17 /* RW */ +#define SENSORS_LM79_IN0_MAX 21 /* RW */ +#define SENSORS_LM79_IN1_MAX 22 /* RW */ +#define SENSORS_LM79_IN2_MAX 23 /* RW */ +#define SENSORS_LM79_IN3_MAX 24 /* RW */ +#define SENSORS_LM79_IN4_MAX 25 /* R */ +#define SENSORS_LM79_IN5_MAX 26 /* R */ +#define SENSORS_LM79_IN6_MAX 27 /* R */ +#define SENSORS_LM79_FAN1 31 /* R */ +#define SENSORS_LM79_FAN2 32 /* R */ +#define SENSORS_LM79_FAN3 33 /* R */ +#define SENSORS_LM79_FAN1_MIN 41 /* RW */ +#define SENSORS_LM79_FAN2_MIN 42 /* RW */ +#define SENSORS_LM79_FAN3_MIN 43 /* RW */ +#define SENSORS_LM79_TEMP 51 /* R */ +#define SENSORS_LM79_TEMP_HYST 52 /* RW */ +#define SENSORS_LM79_TEMP_OVER 53 /* RW */ +#define SENSORS_LM79_VID 61 /* R */ +#define SENSORS_LM79_FAN1_DIV 71 /* RW */ +#define SENSORS_LM79_FAN2_DIV 72 /* RW */ +#define SENSORS_LM79_FAN3_DIV 73 /* R (yes, really! */ +#define SENSORS_LM79_ALARMS 81 /* R */ + + +/* LM75 chips. */ + +#define SENSORS_LM75_PREFIX "lm75" + +#define SENSORS_LM75_TEMP 51 /* R */ +#define SENSORS_LM75_TEMP_HYST 52 /* RW */ +#define SENSORS_LM75_TEMP_OVER 53 /* RW */ + + +/* GL518SM revision 0x00 chips. You may also use the revision 0x80 defines, + but note that some features are unaccessible in revision 0x00. */ + +#define SENSORS_GL518R00_PREFIX "gl518sm-r00" + +/* Note that other voltages can not be read! */ +#define SENSORS_GL518R00_VDD 1 /* No access! */ +#define SENSORS_GL518R00_VIN1 2 /* No access! */ +#define SENSORS_GL518R00_VIN2 3 /* No access! */ +#define SENSORS_GL518R00_VIN3 4 /* R */ +#define SENSORS_GL518R00_VDD_MIN 11 /* RW */ +#define SENSORS_GL518R00_VIN1_MIN 12 /* RW */ +#define SENSORS_GL518R00_VIN2_MIN 13 /* RW */ +#define SENSORS_GL518R00_VIN3_MIN 14 /* RW */ +#define SENSORS_GL518R00_VDD_MAX 21 /* RW */ +#define SENSORS_GL518R00_VIN1_MAX 22 /* RW */ +#define SENSORS_GL518R00_VIN2_MAX 23 /* RW */ +#define SENSORS_GL518R00_VIN3_MAX 24 /* RW */ +#define SENSORS_GL518R00_FAN1 31 /* R */ +#define SENSORS_GL518R00_FAN2 32 /* R */ +#define SENSORS_GL518R00_FAN1_MIN 41 /* RW */ +#define SENSORS_GL518R00_FAN2_MIN 42 /* RW */ +#define SENSORS_GL518R00_TEMP 51 /* R */ +#define SENSORS_GL518R00_TEMP_HYST 52 /* RW */ +#define SENSORS_GL518R00_TEMP_OVER 53 /* RW */ +#define SENSORS_GL518R00_VID 61 /* R */ +#define SENSORS_GL518R00_FAN1_DIV 71 /* RW */ +#define SENSORS_GL518R00_FAN2_DIV 72 /* RW */ +#define SENSORS_GL518R00_ALARMS 81 /* R */ + + +/* GL518SM revision 0x80 chips. */ + +#define SENSORS_GL518R80_PREFIX "gl518sm-r80" + +#define SENSORS_GL518R80_VDD 1 +#define SENSORS_GL518R80_VIN1 2 +#define SENSORS_GL518R80_VIN2 3 +#define SENSORS_GL518R80_VIN3 4 +#define SENSORS_GL518R80_VDD_MIN 11 +#define SENSORS_GL518R80_VIN1_MIN 12 +#define SENSORS_GL518R80_VIN2_MIN 13 +#define SENSORS_GL518R80_VIN3_MIN 14 +#define SENSORS_GL518R80_VDD_MAX 21 +#define SENSORS_GL518R80_VIN1_MAX 22 +#define SENSORS_GL518R80_VIN2_MAX 23 +#define SENSORS_GL518R80_VIN3_MAX 24 +#define SENSORS_GL518R80_FAN1 31 +#define SENSORS_GL518R80_FAN2 32 +#define SENSORS_GL518R80_FAN1_MIN 41 +#define SENSORS_GL518R80_FAN2_MIN 42 +#define SENSORS_GL518R80_TEMP 51 +#define SENSORS_GL518R80_TEMP_HYST 52 +#define SENSORS_GL518R80_TEMP_OVER 53 +#define SENSORS_GL518R80_VID 61 +#define SENSORS_GL518R80_FAN1_DIV 71 +#define SENSORS_GL518R80_FAN2_DIV 72 +#define SENSORS_GL518R80_ALARMS 81 /* R */ + +#endif /* def LIB_SENSORS_CHIPS_H */