summaryrefslogtreecommitdiff
path: root/src/superio/nsc/pc8374/pc8374_early_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/superio/nsc/pc8374/pc8374_early_init.c')
-rw-r--r--src/superio/nsc/pc8374/pc8374_early_init.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/superio/nsc/pc8374/pc8374_early_init.c b/src/superio/nsc/pc8374/pc8374_early_init.c
index ac73b26602..29b57e43a9 100644
--- a/src/superio/nsc/pc8374/pc8374_early_init.c
+++ b/src/superio/nsc/pc8374/pc8374_early_init.c
@@ -22,30 +22,31 @@
#include <arch/romcc_io.h>
#include "pc8374.h"
-/* things that Must Be Done to get this chip working */
-/* Straight from the data book */
-static void pc8374_enable(unsigned iobase, u8 *init)
+static void pc8374_enable(u16 iobase, u8 *init)
{
u8 val, count;
+
outb(0x29, iobase);
- val = inb(iobase+1);
+ val = inb(iobase + 1);
val |= 0x91;
- outb(val, iobase+1);
- for(count = 0; count < 255; count++)
- if (inb(iobase+1) == 0x91)
+ outb(val, iobase + 1);
+
+ for (count = 0; count < 255; count++)
+ if (inb(iobase + 1) == 0x91)
break;
- for(;*init; init++) {
+
+ for (; *init; init++) {
outb(*init, iobase);
- val = inb(iobase+1);
+ val = inb(iobase + 1);
init++;
val &= *init;
init++;
val |= *init;
- outb(val, iobase+1);
+ outb(val, iobase + 1);
}
}
-static void pc8374_enable_dev(device_t dev, unsigned iobase)
+static void pc8374_enable_dev(device_t dev, u16 iobase)
{
pnp_set_logical_device(dev);
pnp_set_enable(dev, 0);