Superio commits.

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@380 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
Ronald G. Minnich 2007-06-27 20:09:47 +00:00
commit 84448165f9
6 changed files with 125 additions and 127 deletions

View file

@ -1,12 +0,0 @@
#ifndef SUPERIO_WINBOND_W83627HF_CHIP_H
#define SUPERIO_WINBOND_W83627HF_CHIP_H
#include <keyboard.h>
#include <uart8250.h>
struct superio_winbond_w83627hf_config {
int com1_baud, com2_baud;
struct pc_keyboard keyboard;
};
#endif /* SUPERIO_WINBOND_W83627HF_CHIP_H */

View file

@ -0,0 +1,73 @@
/*
* This file is part of the LinuxBIOS project.
* Copyright 2007 Ronald G. Minnich <rminnich@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
{
/* to override any of these, just put the over-ride in mainboard dts */
floppydev = "0x0";
floppyenable = "0";
floppyio = "0x3f0";
floppyirq = "0x60";
floppydrq = "0x02";
ppdev = "2";
ppenable = "0";
ppio = "0x378";
ppirq = "7";
com1dev = "2";
com1enable = "0";
com1io = "0x3f8";
com1irq = "4";
com2dev = "3";
com2enable = "0";
com2io = "0x2f8";
com2irq = "3";
kbdev = "5";
kbenable = "0";
kbio = "0x60";
kbio2 = "0x62";
kbirq = "1";
kbirq2 = "12";
cirdev = "6";
cirenable = "0";
gamedev = "7";
gameenable = "0";
gameio = "0x220";
gameio2 = "0x400";
gameirq = "9";
gpio2dev = "8";
gpio2enable = "0";
gpio3dev = "9";
gpio3enable = "0";
acpidev = "0xa";
acpienable = "0";
hwmdev = "0xb";
hwmenable = "0";
hwmio = "0x290";
hwmirq = "5";
};

View file

@ -1,9 +1,24 @@
/* Copyright 2000 AG Electronics Ltd.
/*
* This file is part of the LinuxBIOS project.
*
* Copyright 2000 AG Electronics Ltd.
* Copyright 2003-2004 Linux Networx
* Copyright 2004 Tyan
* By LYH change from PC87360
* Copyright 2007 coresystems GmbH
* This code is distributed without warranty under the GPL v2 (see COPYING)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <io.h>
@ -15,7 +30,7 @@
#include <uart8250.h>
#include <keyboard.h>
// #include <pc80/mc146818rtc.h>
#include "chip.h"
#include <statictree.h>
#include "w83627hf.h"
@ -101,6 +116,7 @@ static void w83627hf_init(struct device * dev)
{
struct superio_winbond_w83627hf_config *conf;
struct resource *res0, *res1;
struct pc_keyboard keyboard;
#if 1
printk(BIOS_ERR, "dummy init XXXX\n");
@ -125,7 +141,7 @@ static void w83627hf_init(struct device * dev)
case W83627HF_KBC:
res0 = find_resource(dev, PNP_IDX_IO0);
res1 = find_resource(dev, PNP_IDX_IO1);
init_pc_keyboard(res0->base, res1->base, &conf->keyboard);
init_pc_keyboard(res0->base, res1->base, &keyboard);
break;
case W83627HF_HWM:
res0 = find_resource(dev, PNP_IDX_IO0);

View file

@ -12,83 +12,4 @@
#define W83627HF_GPIO3 9
#define W83627HF_ACPI 10
#define W83627HF_HWM 11 /* Hardware Monitor */
//#define W83627HF_GPIO_DEV PNP_DEV(0x2e, W83627HF_GPIO)
//#define W83627HF_XBUS_DEV PNP_DEV(0x2e, W83627HF_XBUS)
#define W83627HF_GPSEL 0xf0
#define W83627HF_GPCFG1 0xf1
#define W83627HF_GPEVR 0xf2
#define W83627HF_GPCFG2 0xf3
#define W83627HF_EXTCFG 0xf4
#define W83627HF_IOEXT1A 0xf5
#define W83627HF_IOEXT1B 0xf6
#define W83627HF_IOEXT2A 0xf7
#define W83627HF_IOEXT2B 0xf8
#define W83627HF_GPDO_0 0x00
#define W83627HF_GPDI_0 0x01
#define W83627HF_GPDO_1 0x02
#define W83627HF_GPDI_1 0x03
#define W83627HF_GPEVEN_1 0x04
#define W83627HF_GPEVST_1 0x05
#define W83627HF_GPDO_2 0x06
#define W83627HF_GPDI_2 0x07
#define W83627HF_GPDO_3 0x08
#define W83627HF_GPDI_3 0x09
#define W83627HF_GPDO_4 0x0a
#define W83627HF_GPDI_4 0x0b
#define W83627HF_GPEVEN_4 0x0c
#define W83627HF_GPEVST_4 0x0d
#define W83627HF_GPDO_5 0x0e
#define W83627HF_GPDI_5 0x0f
#define W83627HF_GPDO_6 0x10
#define W83627HF_GPDO_7A 0x11
#define W83627HF_GPDO_7B 0x12
#define W83627HF_GPDO_7C 0x13
#define W83627HF_GPDO_7D 0x14
#define W83627HF_GPDI_7A 0x15
#define W83627HF_GPDI_7B 0x16
#define W83627HF_GPDI_7C 0x17
#define W83627HF_GPDI_7D 0x18
#define W83627HF_XIOCNF 0xf0
#define W83627HF_XIOBA1H 0xf1
#define W83627HF_XIOBA1L 0xf2
#define W83627HF_XIOSIZE1 0xf3
#define W83627HF_XIOBA2H 0xf4
#define W83627HF_XIOBA2L 0xf5
#define W83627HF_XIOSIZE2 0xf6
#define W83627HF_XMEMCNF1 0xf7
#define W83627HF_XMEMCNF2 0xf8
#define W83627HF_XMEMBAH 0xf9
#define W83627HF_XMEMBAL 0xfa
#define W83627HF_XMEMSIZE 0xfb
#define W83627HF_XIRQMAP1 0xfc
#define W83627HF_XIRQMAP2 0xfd
#define W83627HF_XBIMM 0xfe
#define W83627HF_XBBSL 0xff
#define W83627HF_XBCNF 0x00
#define W83627HF_XZCNF0 0x01
#define W83627HF_XZCNF1 0x02
#define W83627HF_XIRQC0 0x04
#define W83627HF_XIRQC1 0x05
#define W83627HF_XIRQC2 0x06
#define W83627HF_XIMA0 0x08
#define W83627HF_XIMA1 0x09
#define W83627HF_XIMA2 0x0a
#define W83627HF_XIMA3 0x0b
#define W83627HF_XIMD 0x0c
#define W83627HF_XZCNF2 0x0d
#define W83627HF_XZCNF3 0x0e
#define W83627HF_XZM0 0x0f
#define W83627HF_XZM1 0x10
#define W83627HF_XZM2 0x11
#define W83627HF_XZM3 0x12
#define W83627HF_HAP0 0x13
#define W83627HF_HAP1 0x14
#define W83627HF_XSCNF 0x15
#define W83627HF_XWBCNF 0x16
#endif /* SUPERIO_WINBOND_W83627HF_W83627HF_H */

View file

@ -1,14 +0,0 @@
#include "w83627hf.h"
static void w83627hf_disable_dev(struct device *dev)
{
pnp_set_logical_device(dev);
pnp_set_enable(dev, 0);
}
static void w83627hf_enable_dev(struct device *dev, unsigned iobase)
{
pnp_set_logical_device(dev);
pnp_set_enable(dev, 0);
pnp_set_iobase(dev, PNP_IDX_IO0, iobase);
pnp_set_enable(dev, 1);
}

View file

@ -1,22 +1,36 @@
/*
* This file is part of the LinuxBIOS project.
*
* Copyright 2000 AG Electronics Ltd.
* Copyright 2003-2004 Linux Networx
* Copyright 2004 Tyan
* By LYH change from PC87360
* Copyright 2007 coresystems GmbH
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <io.h>
#include <device/pnp.h>
#include "w83627hf.h"
static inline void pnp_enter_ext_func_mode(struct device *dev)
void w83627hf_enable_serial(u8 dev, u8 serial, u16 iobase)
{
unsigned port = dev>>8;
outb(0x87, port);
outb(0x87, port);
}
static void pnp_exit_ext_func_mode(struct device *dev)
{
unsigned port = dev>>8;
outb(0xaa, port);
}
static void w83627hf_enable_serial(struct device *dev, unsigned iobase)
{
pnp_enter_ext_func_mode(dev);
pnp_set_logical_device(dev);
pnp_set_enable(dev, 0);
pnp_set_iobase(dev, PNP_IDX_IO0, iobase);
pnp_set_enable(dev, 1);
pnp_exit_ext_func_mode(dev);
rawpnp_enter_ext_func_mode(dev);
rawpnp_set_logical_device(dev,serial);
rawpnp_set_enable(dev, 0);
rawpnp_set_iobase(dev, PNP_IDX_IO0, iobase);
rawpnp_set_enable(dev, 1);
rawpnp_exit_ext_func_mode(dev);
}