superio/winbond/*: Unify w*_set_clksel_48()

This function is identical throughout all Winbond superios in
the tree, so move it into superio/winbond/common/early_init.c,
renamed from early_serial.c because it now does more than just
early serial.

Change all affected mainboards to use the unified function.

Change-Id: If05e0db93375641917e538d83aacd1b50fbd033b
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/21331
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Keith Hui
2017-09-01 19:55:49 -04:00
committed by Kyösti Mälkki
parent 402276574b
commit aaa16fede7
15 changed files with 26 additions and 14 deletions

View File

@@ -14,7 +14,7 @@
##
## include generic winbond pre-ram stage driver
romstage-$(CONFIG_SUPERIO_WINBOND_COMMON_ROMSTAGE) += common/early_serial.c
romstage-$(CONFIG_SUPERIO_WINBOND_COMMON_ROMSTAGE) += common/early_init.c
subdirs-y += w83627dhg
subdirs-y += w83627ehg

View File

@@ -15,7 +15,7 @@
*/
/*
* A generic romstage (pre-ram) driver for Winbond variant Super I/O chips.
* A generic romstage (pre-ram) driver for various Winbond Super I/O chips.
*
* The following is derived directly from the vendor Winbond's data-sheets:
*
@@ -79,3 +79,14 @@ void winbond_set_pinmux(pnp_devfn_t dev, uint8_t offset, uint8_t mask, uint8_t s
pnp_write_config(dev, offset, byte);
pnp_exit_conf_state(dev);
}
void winbond_set_clksel_48(pnp_devfn_t dev)
{
u8 reg8;
pnp_enter_conf_state(dev);
reg8 = pnp_read_config(dev, 0x24);
reg8 |= (1 << 6); /* Set the clock input to 48MHz. */
pnp_write_config(dev, 0x24, reg8);
pnp_exit_conf_state(dev);
}

View File

@@ -22,6 +22,7 @@
void winbond_enable_serial(pnp_devfn_t dev, uint16_t iobase);
void winbond_set_pinmux(pnp_devfn_t dev, uint8_t offset, uint8_t mask, uint8_t state);
void winbond_set_clksel_48(pnp_devfn_t dev);
void pnp_enter_conf_state(pnp_devfn_t dev);
void pnp_exit_conf_state(pnp_devfn_t dev);