This reverts commit eb76a455cd
and applies minor fixes to make it build again.
PARALLEL_MP was working prior to board removal and no
relevant SMI handlers were implemented. So NO_SMM choice
is now selected.
Change-Id: Ia1cd02278240d1b5d006fb2a7730d3d86390f85b
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69339
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
64 lines
1.7 KiB
C
64 lines
1.7 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
#include <device/device.h>
|
|
#include <device/pnp.h>
|
|
#include <superio/conf_mode.h>
|
|
#include <pc80/keyboard.h>
|
|
|
|
#include "lpc47m10x.h"
|
|
|
|
/**
|
|
* Initialize the specified Super I/O device.
|
|
*
|
|
* Devices other than COM ports and the keyboard controller are ignored.
|
|
* For COM ports, we configure the baud rate.
|
|
*
|
|
* @param dev Pointer to structure describing a Super I/O device.
|
|
*/
|
|
static void lpc47m10x_init(struct device *dev)
|
|
{
|
|
if (!dev->enabled)
|
|
return;
|
|
|
|
switch (dev->path.pnp.device) {
|
|
case LPC47M10X2_KBC:
|
|
pc_keyboard_init(NO_AUX_DEVICE);
|
|
break;
|
|
}
|
|
}
|
|
|
|
static struct device_operations ops = {
|
|
.read_resources = pnp_read_resources,
|
|
.set_resources = pnp_set_resources,
|
|
.enable_resources = pnp_enable_resources,
|
|
.enable = pnp_alt_enable,
|
|
.init = lpc47m10x_init,
|
|
.ops_pnp_mode = &pnp_conf_mode_55_aa,
|
|
};
|
|
|
|
static struct pnp_info pnp_dev_info[] = {
|
|
{ NULL, LPC47M10X2_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x07f8, },
|
|
{ NULL, LPC47M10X2_PP, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x07f8, },
|
|
{ NULL, LPC47M10X2_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
|
|
{ NULL, LPC47M10X2_SP2, PNP_IO0 | PNP_IRQ0, 0x07f8, },
|
|
{ NULL, LPC47M10X2_KBC, PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_IRQ1,
|
|
0x07ff, 0x07ff, },
|
|
{ NULL, LPC47M10X2_PME, PNP_IO0, 0x0f80, },
|
|
};
|
|
|
|
/**
|
|
* Create device structures and allocate resources to devices specified in the
|
|
* pnp_dev_info array (above).
|
|
*
|
|
* @param dev Pointer to structure describing a Super I/O device.
|
|
*/
|
|
static void enable_dev(struct device *dev)
|
|
{
|
|
pnp_enable_devices(dev, &ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
|
|
}
|
|
|
|
struct chip_operations superio_smsc_lpc47m10x_ops = {
|
|
CHIP_NAME("SMSC LPC47M10x Super I/O")
|
|
.enable_dev = enable_dev
|
|
};
|