Super I/O W83627DHG: Enable UART B by redirecting pins

Pins 78-85 are set to GPIO after power on or reset. To enable
UART B the pins must be redirected to it.

Look at W83627DHG databook version 1.4 page 185 Chip
(global) Control Register CR2C.

Change-Id: I12b094a60d9c5cb2447a553be4679a4605e19845
Signed-off-by: Wolfgang Kamp <wmkamp@datakamp.de>
Reviewed-on: http://review.coreboot.org/2626
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins)
This commit is contained in:
Wolfgang Kamp 2013-03-11 16:35:42 +01:00 committed by Stefan Reinauer
parent 8d629c14eb
commit 9ae1eb6961
1 changed files with 14 additions and 0 deletions

View File

@ -37,6 +37,17 @@ void pnp_exit_ext_func_mode(device_t dev)
outb(0xaa, dev->path.pnp.port); outb(0xaa, dev->path.pnp.port);
} }
static void w83627dhg_enable_UR2(device_t dev)
{
u8 reg8;
pnp_enter_ext_func_mode(dev);
reg8 = pnp_read_config(dev, 0x2c);
reg8 |= (0x3);
pnp_write_config(dev, 0x2c, reg8); // Set pins 78-85-> UART B
pnp_exit_ext_func_mode(dev);
}
static void w83627dhg_init(device_t dev) static void w83627dhg_init(device_t dev)
{ {
struct superio_winbond_w83627dhg_config *conf = dev->chip_info; struct superio_winbond_w83627dhg_config *conf = dev->chip_info;
@ -45,6 +56,9 @@ static void w83627dhg_init(device_t dev)
return; return;
switch(dev->path.pnp.device) { switch(dev->path.pnp.device) {
case W83627DHG_SP2:
w83627dhg_enable_UR2(dev);
break;
case W83627DHG_KBC: case W83627DHG_KBC:
pc_keyboard_init(&conf->keyboard); pc_keyboard_init(&conf->keyboard);
break; break;