summaryrefslogtreecommitdiff
path: root/src/superio/NSC/pc97307/superio.c
diff options
context:
space:
mode:
authorGreg Watson <jarrah@users.sourceforge.net>2003-06-09 21:59:27 +0000
committerGreg Watson <jarrah@users.sourceforge.net>2003-06-09 21:59:27 +0000
commitf655bf7f3e0c608f4b9cae1ee76e2be5477f4df6 (patch)
tree0338f216152ede4b53c77123a11822d6bd8ac1fc /src/superio/NSC/pc97307/superio.c
parent032211593248d4d9a569ecfd269a2433ea5b1c7c (diff)
downloadcoreboot-f655bf7f3e0c608f4b9cae1ee76e2be5477f4df6.tar.xz
Moved from freebios
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@863 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/superio/NSC/pc97307/superio.c')
-rw-r--r--src/superio/NSC/pc97307/superio.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/superio/NSC/pc97307/superio.c b/src/superio/NSC/pc97307/superio.c
new file mode 100644
index 0000000000..0a04806a8b
--- /dev/null
+++ b/src/superio/NSC/pc97307/superio.c
@@ -0,0 +1,47 @@
+/* $Id$ */
+/* Copyright 2000 AG Electronics Ltd. */
+/* This code is distributed without warranty under the GPL v2 (see COPYING) */
+
+#include <ppc.h>
+#include <ppcreg.h>
+#include <types.h>
+#include <pci.h>
+#include <arch/io.h>
+
+#ifndef PNP_INDEX_REG
+#define PNP_INDEX_REG 0x15C
+#endif
+#ifndef PNP_DATA_REG
+#define PNP_DATA_REG 0x15D
+#endif
+#ifndef SIO_COM1
+#define SIO_COM1_BASE 0x3F8
+#endif
+#ifndef SIO_COM2
+#define SIO_COM2_BASE 0x2F8
+#endif
+
+void pnp_output(char address, char data)
+{
+ outb(address, PNP_INDEX_REG);
+ outb(data, PNP_DATA_REG);
+}
+
+void sio_enable(void)
+{
+ /* Enable Super IO Chip */
+ pnp_output(0x07, 6); /* LD 6 = UART1 */
+ pnp_output(0x30, 0); /* Dectivate */
+ pnp_output(0x60, SIO_COM1_BASE >> 8); /* IO Base */
+ pnp_output(0x61, SIO_COM1_BASE & 0xFF); /* IO Base */
+ pnp_output(0x30, 1); /* Activate */
+}
+
+struct superio_control superio_NSC_pc97307_control = {
+ pre_pci_init: (void *)0,
+ init: (void *)0,
+ finishup: (void *)0,
+ defaultport: SIO_COM1_BASE,
+ name: "NSC 87307"
+};
+