superio: fix and extend pnp_info of wpcd376i
The implementation of wpcd376i in coreboot is based on the superiotool output which apparently was incorrect. This patch refines the implementation to match the datasheet. Change-Id: I0108e912dc4f603276074f0999c6d3146c3b13f9 Signed-off-by: Stefan Tauner <stefan.tauner@gmx.at> Reviewed-on: https://review.coreboot.org/27857 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
parent
2fdbe0caf7
commit
4cc0126188
|
@ -30,16 +30,6 @@ static void init(struct device *dev)
|
|||
return;
|
||||
|
||||
switch (dev->path.pnp.device) {
|
||||
|
||||
case WPCD376I_FDC:
|
||||
case WPCD376I_LPT:
|
||||
case WPCD376I_IR:
|
||||
case WPCD376I_SP1:
|
||||
case WPCD376I_SWC:
|
||||
case WPCD376I_KBCM:
|
||||
case WPCD376I_GPIO:
|
||||
break;
|
||||
|
||||
case WPCD376I_KBCK:
|
||||
pc_keyboard_init(NO_AUX_DEVICE);
|
||||
break;
|
||||
|
@ -55,14 +45,33 @@ static struct device_operations ops = {
|
|||
};
|
||||
|
||||
static struct pnp_info pnp_dev_info[] = {
|
||||
{ NULL, WPCD376I_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x07fa, },
|
||||
{ NULL, WPCD376I_LPT, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x04f8, },
|
||||
{ NULL, WPCD376I_IR, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_DRQ1,
|
||||
{ NULL, WPCD376I_FDC,
|
||||
PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_MSC0 | PNP_MSC1 | PNP_MSC8,
|
||||
0x07f8, },
|
||||
{ NULL, WPCD376I_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
|
||||
{ NULL, WPCD376I_KBCM, PNP_IRQ0, },
|
||||
{ NULL, WPCD376I_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x07f8, 0x07f8, },
|
||||
{ NULL, WPCD376I_GPIO, PNP_IO0 | PNP_IRQ0, 0xfff8, },
|
||||
{ NULL, WPCD376I_LPT,
|
||||
PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_MSC0 | PNP_MSC8,
|
||||
0x03f8, },
|
||||
{ NULL, WPCD376I_SP1,
|
||||
PNP_IO0 | PNP_IRQ0 | PNP_MSC0,
|
||||
0x07f8, },
|
||||
{ NULL, WPCD376I_SWC,
|
||||
PNP_IO0 | PNP_IO1 | PNP_IRQ0,
|
||||
0xfff0, 0xfff0, },
|
||||
{ NULL, WPCD376I_KBCM,
|
||||
PNP_IRQ0, },
|
||||
{ NULL, WPCD376I_KBCK,
|
||||
PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_MSC0,
|
||||
0x07f8, 0x07f8, },
|
||||
{ NULL, WPCD376I_GPIO,
|
||||
PNP_IO0 | PNP_IRQ0 | PNP_MSC0 | PNP_MSC1 | PNP_MSC2 | PNP_MSC3 |
|
||||
PNP_MSC8,
|
||||
0xffe0, },
|
||||
{ NULL, WPCD376I_ECIR,
|
||||
PNP_IO0 | PNP_IO1 | PNP_IRQ0,
|
||||
0xfff0, 0xfff0, },
|
||||
{ NULL, WPCD376I_IR,
|
||||
PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_DRQ1 | PNP_MSC0,
|
||||
0xfff8, },
|
||||
};
|
||||
|
||||
static void enable_dev(struct device *dev)
|
||||
|
|
|
@ -21,14 +21,16 @@
|
|||
#include <arch/io.h>
|
||||
|
||||
/* Logical Device Numbers (LDN). */
|
||||
#define WPCD376I_FDC 0 /* Floppy */
|
||||
#define WPCD376I_LPT 1 /* Parallel port */
|
||||
#define WPCD376I_IR 2 /* Infrared port */
|
||||
#define WPCD376I_SP1 3 /* UART1 */
|
||||
#define WPCD376I_SWC 4 /* System wake-up control */
|
||||
#define WPCD376I_KBCM 5 /* PS/2 mouse */
|
||||
#define WPCD376I_KBCK 6 /* PS/2 keyboard */
|
||||
#define WPCD376I_GPIO 7 /* General Purpose I/O */
|
||||
#define WPCD376I_FDC 0x00 /* Floppy */
|
||||
#define WPCD376I_LPT 0x01 /* Parallel port */
|
||||
/* 0x02 Undefined */
|
||||
#define WPCD376I_SP1 0x03 /* UART1 */
|
||||
#define WPCD376I_SWC 0x04 /* System wake-up control */
|
||||
#define WPCD376I_KBCM 0x05 /* PS/2 mouse */
|
||||
#define WPCD376I_KBCK 0x06 /* PS/2 keyboard */
|
||||
#define WPCD376I_GPIO 0x07 /* General Purpose I/O */
|
||||
#define WPCD376I_ECIR 0x15 /* Enhanced Consumer Infrared Functions (ECIR) */
|
||||
#define WPCD376I_IR 0x16 /* UART3 & Infrared port */
|
||||
|
||||
void wpcd376i_enable_serial(pnp_devfn_t dev, u16 iobase);
|
||||
|
||||
|
|
Loading…
Reference in New Issue