Merge pull request #622 from richardg867/master
Hardware monitor voltage reading improvements
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -32,4 +32,4 @@ extern const device_t postcard_device;
|
||||
#endif
|
||||
|
||||
|
||||
#endif /*BUGGER_H*/
|
||||
#endif /*POSTCARD_H*/
|
||||
|
Reference in New Issue
Block a user