All of lore.kernel.org
 help / color / mirror / Atom feed
* [lm-sensors] Fintek F71889ED is unsupported (hack patch included)
@ 2010-05-28 21:25 Maarten Maathuis
  2010-05-31 16:26 ` [lm-sensors] Fintek F71889ED is unsupported (hack patch Maarten Maathuis
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Maarten Maathuis @ 2010-05-28 21:25 UTC (permalink / raw)
  To: lm-sensors

[-- Attachment #1: Type: text/plain, Size: 1676 bytes --]

This appears to be a pretty new Super I/O IC, which i found on my new
motherboard (MSI 870A-G54).

I couldn't find a datasheet, but this link
(http://code.google.com/p/open-hardware-monitor/source/detail?r=130#)
suggests that it can be trivially added to the f71882fg driver.

So i tried that, pretending it was a f71889fg.

This is the output i got, i appended what i think about the values:

f71889ed-isa-0600
Adapter: ISA adapter
in0:         +1.66 V
in1:         +0.90 V  (max =  +2.04 V)  <-- Vcore, 1.11 V when in high
power mode, this seems accurate (compared to bios)
in2:         +1.07 V
in3:         +0.88 V
in4:         +0.62 V
in5:         +1.27 V
in6:         +1.55 V
in7:         +1.66 V
in8:         +1.64 V
fan1:        785 RPM <-- cpu fan, accurate (compared to bios)
fan2:          0 RPM  ALARM
fan3:          0 RPM  ALARM
temp1:       +24.0 C  (high = +255.0 C, hyst = +251.0 C)  ALARM  <--
cpu temp, probably accurate (compared to bios)
                      (crit = +255.0 C, hyst = +251.0 C)  ALARM
sensor = Intel PECI
temp2:         FAULT  (high = +255.0 C, hyst = +251.0 C)
                      (crit = +255.0 C, hyst = +251.0 C)  sensor = transistor
temp3:       +33.0 C  (high = +255.0 C, hyst = +253.0 C)  ALARM   <--
system temp, probably accurate (compared to bios)
                      (crit = +255.0 C, hyst = +253.0 C)  ALARM
sensor = transistor

So please tell me what you think, any ideas how this can be improved.
Especially the system voltages are horribly mis-calibrated it seems.

Please CC me upon reply, i am not subscribed to the mailing-list.

Maarten.


-- 
Life spent, a precious moment, in the wink of an eye we live and we die.

[-- Attachment #2: f71889ed.patch --]
[-- Type: text/x-patch, Size: 6796 bytes --]

diff --git a/drivers/hwmon/f71882fg.c b/drivers/hwmon/f71882fg.c
index a95fa42..b8fda89 100644
--- a/drivers/hwmon/f71882fg.c
+++ b/drivers/hwmon/f71882fg.c
@@ -48,7 +48,8 @@
 #define SIO_F71858_ID		0x0507  /* Chipset ID */
 #define SIO_F71862_ID		0x0601	/* Chipset ID */
 #define SIO_F71882_ID		0x0541	/* Chipset ID */
-#define SIO_F71889_ID		0x0723	/* Chipset ID */
+#define SIO_F71889FG_ID		0x0723	/* Chipset ID */
+#define SIO_F71889ED_ID		0x0909	/* Chipset ID */
 #define SIO_F8000_ID		0x0581	/* Chipset ID */
 
 #define REGION_LENGTH		8
@@ -96,13 +97,14 @@ static unsigned short force_id;
 module_param(force_id, ushort, 0);
 MODULE_PARM_DESC(force_id, "Override the detected device ID");
 
-enum chips { f71858fg, f71862fg, f71882fg, f71889fg, f8000 };
+enum chips { f71858fg, f71862fg, f71882fg, f71889fg, f71889ed, f8000 };
 
 static const char *f71882fg_names[] = {
 	"f71858fg",
 	"f71862fg",
 	"f71882fg",
 	"f71889fg",
+	"f71889ed",
 	"f8000",
 };
 
@@ -306,7 +308,7 @@ static struct sensor_device_attribute_2 f71858fg_in_temp_attr[] = {
 	SENSOR_ATTR_2(temp3_fault, S_IRUGO, show_temp_fault, NULL, 0, 2),
 };
 
-/* Temp and in attr common to the f71862fg, f71882fg and f71889fg */
+/* Temp and in attr common to the f71862fg, f71882fg, f71889fg and f71889ed */
 static struct sensor_device_attribute_2 fxxxx_in_temp_attr[] = {
 	SENSOR_ATTR_2(in0_input, S_IRUGO, show_in, NULL, 0, 0),
 	SENSOR_ATTR_2(in1_input, S_IRUGO, show_in, NULL, 0, 1),
@@ -477,7 +479,7 @@ static struct sensor_device_attribute_2 fxxxx_fan_beep_attr[] = {
 };
 
 /* PWM attr for the f71862fg, fewer pwms and fewer zones per pwm than the
-   f71858fg / f71882fg / f71889fg */
+   f71858fg / f71882fg / f71889fg / f71889ed */
 static struct sensor_device_attribute_2 f71862fg_auto_pwm_attr[] = {
 	SENSOR_ATTR_2(pwm1_auto_channels_temp, S_IRUGO|S_IWUSR,
 		      show_pwm_auto_point_channel,
@@ -546,7 +548,7 @@ static struct sensor_device_attribute_2 f71862fg_auto_pwm_attr[] = {
 		      show_pwm_auto_point_temp_hyst, NULL, 3, 2),
 };
 
-/* PWM attr common to the f71858fg, f71882fg and f71889fg */
+/* PWM attr common to the f71858fg, f71882fg, f71889fg and f71889ed */
 static struct sensor_device_attribute_2 fxxxx_auto_pwm_attr[4][14] = { {
 	SENSOR_ATTR_2(pwm1_auto_channels_temp, S_IRUGO|S_IWUSR,
 		      show_pwm_auto_point_channel,
@@ -947,7 +949,7 @@ static struct f71882fg_data *f71882fg_update_device(struct device *dev)
 	/* Update once every 60 seconds */
 	if ( time_after(jiffies, data->last_limits + 60 * HZ ) ||
 			!data->valid) {
-		if (data->type == f71882fg || data->type == f71889fg) {
+		if (data->type == f71882fg || data->type == f71889fg || data->type == f71889ed) {
 			data->in1_max =
 				f71882fg_read8(data, F71882FG_REG_IN1_HIGH);
 			data->in_beep =
@@ -970,7 +972,7 @@ static struct f71882fg_data *f71882fg_update_device(struct device *dev)
 		}
 
 		if (data->type == f71862fg || data->type == f71882fg ||
-		    data->type == f71889fg) {
+		    data->type == f71889fg || data->type == f71889ed) {
 			data->fan_beep = f71882fg_read8(data,
 						F71882FG_REG_FAN_BEEP);
 			data->temp_beep = f71882fg_read8(data,
@@ -981,7 +983,7 @@ static struct f71882fg_data *f71882fg_update_device(struct device *dev)
 			data->temp_type[3] = (reg & 0x08) ? 2 : 4;
 		}
 		/* Determine temp index 1 sensor type */
-		if (data->type == f71889fg) {
+		if (data->type == f71889fg || data->type == f71889ed) {
 			reg2 = f71882fg_read8(data, F71882FG_REG_START);
 			switch ((reg2 & 0x60) >> 5) {
 			case 0x00: /* BJT / Thermistor */
@@ -1083,7 +1085,7 @@ static struct f71882fg_data *f71882fg_update_device(struct device *dev)
 		if (data->type == f8000)
 			data->fan[3] = f71882fg_read16(data,
 						F71882FG_REG_FAN(3));
-		if (data->type == f71882fg || data->type == f71889fg)
+		if (data->type == f71882fg || data->type == f71889fg || data->type == f71889ed)
 			data->in_status = f71882fg_read8(data,
 						F71882FG_REG_IN_STATUS);
 		for (nr = 0; nr < nr_ins; nr++)
@@ -1802,7 +1804,7 @@ static ssize_t store_pwm_auto_point_temp(struct device *dev,
 	int point = to_sensor_dev_attr_2(devattr)->nr;
 	long val = simple_strtol(buf, NULL, 10) / 1000;
 
-	if (data->type == f71889fg)
+	if (data->type == f71889fg || data->type == f71889ed)
 		val = SENSORS_LIMIT(val, -128, 127);
 	else
 		val = SENSORS_LIMIT(val, 0, 127);
@@ -1897,6 +1899,7 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
 			break;
 		case f71882fg:
 		case f71889fg:
+		case f71889ed:
 			err = f71882fg_create_sysfs_files(pdev,
 					fxxxx_in1_alarm_attr,
 					ARRAY_SIZE(fxxxx_in1_alarm_attr));
@@ -1935,6 +1938,7 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
 			break;
 		case f71882fg:
 		case f71889fg:
+		case f71889ed:
 			err = 0;
 			break;
 		case f8000:
@@ -1955,7 +1959,7 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
 			goto exit_unregister_sysfs;
 
 		if (data->type == f71862fg || data->type == f71882fg ||
-		    data->type == f71889fg) {
+		    data->type == f71889fg || data->type == f71889ed) {
 			err = f71882fg_create_sysfs_files(pdev,
 					fxxxx_fan_beep_attr, nr_fans);
 			if (err)
@@ -1979,6 +1983,7 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
 					ARRAY_SIZE(f8000_auto_pwm_attr));
 			break;
 		case f71889fg:
+		case f71889ed:
 			for (i = 0; i < nr_fans; i++) {
 				data->pwm_auto_point_mapping[i] =
 					f71882fg_read8(data,
@@ -2051,6 +2056,7 @@ static int f71882fg_remove(struct platform_device *pdev)
 			break;
 		case f71882fg:
 		case f71889fg:
+		case f71889ed:
 			f71882fg_remove_sysfs_files(pdev,
 					fxxxx_in1_alarm_attr,
 					ARRAY_SIZE(fxxxx_in1_alarm_attr));
@@ -2073,7 +2079,7 @@ static int f71882fg_remove(struct platform_device *pdev)
 				ARRAY_SIZE(fxxxx_fan_attr[0]) * nr_fans);
 
 		if (data->type == f71862fg || data->type == f71882fg ||
-		    data->type == f71889fg)
+		    data->type == f71889fg || data->type == f71889ed)
 			f71882fg_remove_sysfs_files(pdev,
 					fxxxx_fan_beep_attr, nr_fans);
 
@@ -2091,7 +2097,7 @@ static int f71882fg_remove(struct platform_device *pdev)
 					f8000_auto_pwm_attr,
 					ARRAY_SIZE(f8000_auto_pwm_attr));
 			break;
-		default: /* f71858fg / f71882fg / f71889fg */
+		default: /* f71858fg / f71882fg / f71889fg / f71889ed */
 			f71882fg_remove_sysfs_files(pdev,
 				&fxxxx_auto_pwm_attr[0][0],
 				ARRAY_SIZE(fxxxx_auto_pwm_attr[0]) * nr_fans);
@@ -2128,9 +2134,12 @@ static int __init f71882fg_find(int sioaddr, unsigned short *address,
 	case SIO_F71882_ID:
 		sio_data->type = f71882fg;
 		break;
-	case SIO_F71889_ID:
+	case SIO_F71889FG_ID:
 		sio_data->type = f71889fg;
 		break;
+	case SIO_F71889ED_ID:
+		sio_data->type = f71889ed;
+		break;
 	case SIO_F8000_ID:
 		sio_data->type = f8000;
 		break;

[-- Attachment #3: Type: text/plain, Size: 153 bytes --]

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [lm-sensors] Fintek F71889ED is unsupported (hack patch
  2010-05-28 21:25 [lm-sensors] Fintek F71889ED is unsupported (hack patch included) Maarten Maathuis
@ 2010-05-31 16:26 ` Maarten Maathuis
  2010-06-10  8:24 ` Hans de Goede
  2010-06-10  8:29 ` Jean Delvare
  2 siblings, 0 replies; 4+ messages in thread
From: Maarten Maathuis @ 2010-05-31 16:26 UTC (permalink / raw)
  To: lm-sensors

On Fri, May 28, 2010 at 11:25 PM, Maarten Maathuis <madman2003@gmail.com> wrote:
> This appears to be a pretty new Super I/O IC, which i found on my new
> motherboard (MSI 870A-G54).
>
> I couldn't find a datasheet, but this link
> (http://code.google.com/p/open-hardware-monitor/source/detail?r\x130#)
> suggests that it can be trivially added to the f71882fg driver.
>
> So i tried that, pretending it was a f71889fg.
>
> This is the output i got, i appended what i think about the values:
>
> f71889ed-isa-0600
> Adapter: ISA adapter
> in0:         +1.66 V
> in1:         +0.90 V  (max =  +2.04 V)  <-- Vcore, 1.11 V when in high
> power mode, this seems accurate (compared to bios)
> in2:         +1.07 V
> in3:         +0.88 V
> in4:         +0.62 V
> in5:         +1.27 V
> in6:         +1.55 V
> in7:         +1.66 V
> in8:         +1.64 V
> fan1:        785 RPM <-- cpu fan, accurate (compared to bios)
> fan2:          0 RPM  ALARM
> fan3:          0 RPM  ALARM
> temp1:       +24.0 C  (high = +255.0 C, hyst = +251.0 C)  ALARM  <--
> cpu temp, probably accurate (compared to bios)
>                      (crit = +255.0 C, hyst = +251.0 C)  ALARM
> sensor = Intel PECI
> temp2:         FAULT  (high = +255.0 C, hyst = +251.0 C)
>                      (crit = +255.0 C, hyst = +251.0 C)  sensor = transistor
> temp3:       +33.0 C  (high = +255.0 C, hyst = +253.0 C)  ALARM   <--
> system temp, probably accurate (compared to bios)
>                      (crit = +255.0 C, hyst = +253.0 C)  ALARM
> sensor = transistor
>
> So please tell me what you think, any ideas how this can be improved.
> Especially the system voltages are horribly mis-calibrated it seems.
>
> Please CC me upon reply, i am not subscribed to the mailing-list.
>
> Maarten.
>
>
> --
> Life spent, a precious moment, in the wink of an eye we live and we die.
>

Anyone?

-- 
Life spent, a precious moment, in the wink of an eye we live and we die.

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [lm-sensors] Fintek F71889ED is unsupported (hack patch
  2010-05-28 21:25 [lm-sensors] Fintek F71889ED is unsupported (hack patch included) Maarten Maathuis
  2010-05-31 16:26 ` [lm-sensors] Fintek F71889ED is unsupported (hack patch Maarten Maathuis
@ 2010-06-10  8:24 ` Hans de Goede
  2010-06-10  8:29 ` Jean Delvare
  2 siblings, 0 replies; 4+ messages in thread
From: Hans de Goede @ 2010-06-10  8:24 UTC (permalink / raw)
  To: lm-sensors

Hi,

Short self intro: I'm the author and maintainer of the f71882fg driver.

On 05/28/2010 11:25 PM, Maarten Maathuis wrote:
> This appears to be a pretty new Super I/O IC, which i found on my new
> motherboard (MSI 870A-G54).
>
> I couldn't find a datasheet, but this link
> (http://code.google.com/p/open-hardware-monitor/source/detail?r\x130#)
> suggests that it can be trivially added to the f71882fg driver.
>
> So i tried that, pretending it was a f71889fg.
>
> This is the output i got, i appended what i think about the values:
>
> f71889ed-isa-0600
> Adapter: ISA adapter
> in0:         +1.66 V
> in1:         +0.90 V  (max =  +2.04 V)<-- Vcore, 1.11 V when in high
> power mode, this seems accurate (compared to bios)
> in2:         +1.07 V
> in3:         +0.88 V
> in4:         +0.62 V
> in5:         +1.27 V
> in6:         +1.55 V
> in7:         +1.66 V
> in8:         +1.64 V
> fan1:        785 RPM<-- cpu fan, accurate (compared to bios)
> fan2:          0 RPM  ALARM
> fan3:          0 RPM  ALARM
> temp1:       +24.0 C  (high = +255.0 C, hyst = +251.0 C)  ALARM<--
> cpu temp, probably accurate (compared to bios)
>                        (crit = +255.0 C, hyst = +251.0 C)  ALARM
> sensor = Intel PECI
> temp2:         FAULT  (high = +255.0 C, hyst = +251.0 C)
>                        (crit = +255.0 C, hyst = +251.0 C)  sensor = transistor
> temp3:       +33.0 C  (high = +255.0 C, hyst = +253.0 C)  ALARM<--
> system temp, probably accurate (compared to bios)
>                        (crit = +255.0 C, hyst = +253.0 C)  ALARM
> sensor = transistor
>
> So please tell me what you think, any ideas how this can be improved.
> Especially the system voltages are horribly mis-calibrated it seems.
>

Well first fo all we will need a datasheet, yes really. The fintek
chips are quite complex when it comes to there fan control parts
and there then to be subtile differences between all the different
versions, see all the special handling for various revisions already
present in the driver.

Luckily Fintek usually provides datasheet to the public. But they tend
to lag a bit between devices showing up in the market and actually
publishing a datasheet. They don't want to put the sheet up till it
is "final" (or so I think), where as products are already being sold
in the market with the chip in them (presumably made with the use of
non final datasheets).

So the thing to do is to keep an eye on:
http://www.fintek.com.tw/eng/products.asp?BID=1&SID\x17

And when a datasheet shows up there drop me a mail and I'll extend
the driver and then ask you to test it.

Regards,

Hans

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [lm-sensors] Fintek F71889ED is unsupported (hack patch
  2010-05-28 21:25 [lm-sensors] Fintek F71889ED is unsupported (hack patch included) Maarten Maathuis
  2010-05-31 16:26 ` [lm-sensors] Fintek F71889ED is unsupported (hack patch Maarten Maathuis
  2010-06-10  8:24 ` Hans de Goede
@ 2010-06-10  8:29 ` Jean Delvare
  2 siblings, 0 replies; 4+ messages in thread
From: Jean Delvare @ 2010-06-10  8:29 UTC (permalink / raw)
  To: lm-sensors

Hans,

On Thu, 10 Jun 2010 10:24:12 +0200, Hans de Goede wrote:
> Well first fo all we will need a datasheet, yes really. The fintek
> chips are quite complex when it comes to there fan control parts
> and there then to be subtile differences between all the different
> versions, see all the special handling for various revisions already
> present in the driver.
> 
> Luckily Fintek usually provides datasheet to the public. But they tend
> to lag a bit between devices showing up in the market and actually
> publishing a datasheet. They don't want to put the sheet up till it
> is "final" (or so I think), where as products are already being sold
> in the market with the chip in them (presumably made with the use of
> non final datasheets).
> 
> So the thing to do is to keep an eye on:
> http://www.fintek.com.tw/eng/products.asp?BID=1&SID\x17
> 
> And when a datasheet shows up there drop me a mail and I'll extend
> the driver and then ask you to test it.

Hans, you may also try asking our Fintek contact directly. They have
always been very kind to me, providing datasheet previews without
signing a formal NDA, under my promise to not share the document (which
I have always honored of course.)

Meanwhile, I would appreciate if you could update wiki/Devices with the
information we have for now (chip exists and we received one support
request.)

-- 
Jean Delvare

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-06-10  8:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-28 21:25 [lm-sensors] Fintek F71889ED is unsupported (hack patch included) Maarten Maathuis
2010-05-31 16:26 ` [lm-sensors] Fintek F71889ED is unsupported (hack patch Maarten Maathuis
2010-06-10  8:24 ` Hans de Goede
2010-06-10  8:29 ` Jean Delvare

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.