mirror of
https://github.com/lm-sensors/lm-sensors
synced 2025-08-31 22:35:23 +00:00
new pcf8591 driver, patch from
Aurelien Jarno <aurelien.jarno@insa-lyon.fr> git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1243 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
@@ -2927,6 +2927,91 @@ void print_fscscy(const sensors_chip_name *name)
|
||||
free_the_label(&label);
|
||||
}
|
||||
|
||||
void print_pcf8591(const sensors_chip_name *name)
|
||||
{
|
||||
char *label;
|
||||
double ain_conf, ch0, ch1, ch2, ch3;
|
||||
double aout_enable, aout;
|
||||
int valid;
|
||||
|
||||
if (!sensors_get_label_and_valid(*name,SENSORS_PCF8591_AIN_CONF,&label,&valid) &&
|
||||
!sensors_get_feature(*name,SENSORS_PCF8591_AIN_CONF,&ain_conf)) {
|
||||
if (valid) {
|
||||
print_label(label,10);
|
||||
switch ((int)ain_conf)
|
||||
{
|
||||
case 0: printf("four single ended inputs\n");
|
||||
break;
|
||||
case 1: printf("three differential inputs\n");
|
||||
break;
|
||||
case 2: printf("single ended and differential mixed\n");
|
||||
break;
|
||||
case 3: printf("two differential inputs\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else printf("ERROR: Can't read analog inputs configuration!\n");
|
||||
free_the_label(&label);
|
||||
|
||||
if (!sensors_get_label_and_valid(*name,SENSORS_PCF8591_CH0,&label,&valid) &&
|
||||
!sensors_get_feature(*name,SENSORS_PCF8591_CH0,&ch0)) {
|
||||
if (valid) {
|
||||
print_label(label,10);
|
||||
printf("%0.0f\n", ch0);
|
||||
}
|
||||
}
|
||||
else printf("ERROR: Can't read ch0!\n");
|
||||
free_the_label(&label);
|
||||
|
||||
if (!sensors_get_label_and_valid(*name,SENSORS_PCF8591_CH1,&label,&valid) &&
|
||||
!sensors_get_feature(*name,SENSORS_PCF8591_CH1,&ch1)) {
|
||||
if (valid) {
|
||||
print_label(label,10);
|
||||
printf("%0.0f\n", ch1);
|
||||
}
|
||||
}
|
||||
else printf("ERROR: Can't read ch1!\n");
|
||||
free_the_label(&label);
|
||||
|
||||
if (ain_conf != 3) {
|
||||
if (!sensors_get_label_and_valid(*name,SENSORS_PCF8591_CH2,&label,&valid) &&
|
||||
!sensors_get_feature(*name,SENSORS_PCF8591_CH2,&ch2)) {
|
||||
if (valid) {
|
||||
print_label(label,10);
|
||||
printf("%0.0f\n", ch2);
|
||||
}
|
||||
}
|
||||
else printf("ERROR: Can't read ch2!\n");
|
||||
free_the_label(&label);
|
||||
}
|
||||
|
||||
if (ain_conf == 0) {
|
||||
if (!sensors_get_label_and_valid(*name,SENSORS_PCF8591_CH3,&label,&valid) &&
|
||||
!sensors_get_feature(*name,SENSORS_PCF8591_CH3,&ch3)) {
|
||||
if (valid) {
|
||||
print_label(label,10);
|
||||
printf("%0.0f\n", ch3);
|
||||
}
|
||||
}
|
||||
else printf("ERROR: Can't read ch3!\n");
|
||||
free_the_label(&label);
|
||||
}
|
||||
|
||||
if (!sensors_get_label_and_valid(*name,SENSORS_PCF8591_AOUT,&label,&valid) &&
|
||||
!sensors_get_feature(*name,SENSORS_PCF8591_AOUT,&aout) &&
|
||||
!sensors_get_feature(*name,SENSORS_PCF8591_AOUT_ENABLE,&aout_enable)) {
|
||||
if (valid) {
|
||||
print_label(label,10);
|
||||
printf("%0.0f (%s)\n", aout, aout_enable?"enabled":"disabled");
|
||||
}
|
||||
}
|
||||
else printf("ERROR: Can't read aout!\n");
|
||||
free_the_label(&label);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void print_unknown_chip(const sensors_chip_name *name)
|
||||
{
|
||||
int a,b,valid;
|
||||
|
Reference in New Issue
Block a user