X60: use pnp_write_config() instead of custom function
authorSven Schnelle <svens@stackframe.org>
Tue, 5 Apr 2011 13:00:33 +0000 (13:00 +0000)
committerSven Schnelle <svens@stackframe.org>
Tue, 5 Apr 2011 13:00:33 +0000 (13:00 +0000)
Signed-off-by: Sven Schnelle <svens@stackframe.org>
Acked-by: Sven Schnelle <svens@stackframe.org>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6481 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/mainboard/lenovo/x60/romstage.c

index bdc2200b55b425e47658a0a591ed5b4bb7012136..85b2241df6a795175c355bd5e165eb114a7224af 100644 (file)
@@ -101,25 +101,20 @@ static void ich7_enable_lpc(void)
        pci_write_config16(PCI_DEV(0, 0x1f, 0), 0x8e, 0x001c);
 }
 
-static void pnp_write_register(device_t dev, int reg, int val)
-{
-       unsigned int port = dev >> 8;
-       outb(reg, port);
-       outb(val, port+1);
-}
-
 static void early_superio_config(void)
 {
-       device_t dev;
+       int timeout = 100000;
+       device_t dev = PNP_DEV(0x2e, 3);
+
+       pnp_write_config(dev, 0x29, 0x06);
 
-       dev=PNP_DEV(0x2e, 0x00);
-       pnp_write_register(dev, 0x29, 0x06);
+       while(!(pnp_read_config(dev, 0x29) & 0x08) && timeout--)
+               udelay(1000);
 
        /* Enable COM1 */
-       pnp_write_register(dev, 0x07, 0x03);
-       pnp_write_register(dev, 0x60, 0x03);
-       pnp_write_register(dev, 0x61, 0xf8);
-       pnp_write_register(dev, 0x30, 0x01);
+       pnp_set_logical_device(dev);
+       pnp_set_iobase(dev, PNP_IDX_IO0, 0x3f8);
+       pnp_set_enable(dev, 1);
 }
 
 static void rcba_config(void)