diff --git a/src/hwm.h b/src/hwm.h index c5d482fb7..23d9014a5 100644 --- a/src/hwm.h +++ b/src/hwm.h @@ -17,13 +17,13 @@ # define EMU_HWM_H -#define VDIV(v, r1, r2) (((v) * (r2)) / ((r1) + (r2))) +#define RESISTOR_DIVIDER(v, r1, r2) (((v) * (r2)) / ((r1) + (r2))) typedef struct _hwm_values_ { uint16_t fans[4]; - uint8_t temperatures[4]; - uint8_t voltages[8]; + uint8_t temperatures[4]; + uint16_t voltages[8]; } hwm_values_t; diff --git a/src/hwm_w83781d.c b/src/hwm_w83781d.c index 1f6b3ab26..5cb6bbef5 100644 --- a/src/hwm_w83781d.c +++ b/src/hwm_w83781d.c @@ -380,7 +380,7 @@ w83781d_reset(w83781d_t *dev, uint8_t initialization) /* WARNING: Array elements are register - 0x20. */ uint8_t i; for (i = 0; i <= 6; i++) - dev->regs[i] = dev->values->voltages[i]; + dev->regs[i] = (dev->values->voltages[i] / 16); dev->regs[0x07] = dev->values->temperatures[0]; for (i = 0; i <= 2; i++) dev->regs[0x08 + i] = W83781D_RPM_TO_REG(dev->values->fans[i], 2); diff --git a/src/machine/m_at_socket8.c b/src/machine/m_at_socket8.c index d6f590d7b..dcac383a6 100644 --- a/src/machine/m_at_socket8.c +++ b/src/machine/m_at_socket8.c @@ -178,19 +178,19 @@ machine_at_p2bls_init(const machine_t *model) 0, /* unused */ 27, /* CPU */ 0 - }, { /* voltages (divisors other than 16 = unclear how that number was achieved) */ - 2050 / 16, /* VCORE (2.05V by default) */ - 0, /* unused */ - 3300 / 16, /* +3.3V */ - 5000 / 27, /* +5V */ - VDIV(12000, 28, 10) / 16, /* +12V (with 28K/10K resistor divider suggested in the W83781D datasheet) */ - 12000 / 55, /* -12V */ - 5000 / 24, /* -5V */ - 0 + }, { /* voltages */ + 2050, /* VCORE (2.05V by default) */ + 0, /* unused */ + 3300, /* +3.3V */ + RESISTOR_DIVIDER(5000, 11, 16), /* +5V (divider values bruteforced) */ + RESISTOR_DIVIDER(12000, 28, 10), /* +12V (28K/10K divider suggested in the W83781D datasheet) */ + RESISTOR_DIVIDER(12000, 853, 347), /* -12V (divider values bruteforced) */ + RESISTOR_DIVIDER(5000, 1, 2), /* -5V (divider values bruteforced) */ + 0 } }; if (model->cpu[cpu_manufacturer].cpus[cpu_effective].cpu_type == CPU_PENTIUM2) - machine_hwm.voltages[0] = 2800 / 16; /* set higher VCORE (2.8V) for Klamath */ + machine_hwm.voltages[0] = 2800; /* set higher VCORE (2.8V) for Klamath */ hwm_set_values(machine_hwm); device_add(&as99127f_device); diff --git a/src/postcard.h b/src/postcard.h index 4bfc912f5..f8213c25c 100644 --- a/src/postcard.h +++ b/src/postcard.h @@ -32,4 +32,4 @@ extern const device_t postcard_device; #endif -#endif /*BUGGER_H*/ +#endif /*POSTCARD_H*/