superio/ite: pass the chip-specific ops struct to pnp_enable_devices

Pass the address of the chip-specific ops struct instead of the one of the
generic pnp_ops struct to the PNP device enable function.
This allows the removal of the LDN-specific ops overrides which is also done in
this patch.

Change-Id: I5f03a4064778c419f4b9c50e70db1296addf6c9e
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/23006
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Felix Held 2017-12-27 22:11:30 +01:00
parent 3a59174cf0
commit c40275bce0
10 changed files with 95 additions and 96 deletions

View File

@ -60,20 +60,21 @@ static struct device_operations ops = {
};
static struct pnp_info pnp_dev_info[] = {
{ &ops, IT8623E_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ff8, },
{ &ops, IT8623E_SP1, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ &ops, IT8623E_SP2, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ &ops, IT8623E_PP, PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_DRQ0, 0x0ff8, 0x0ff8, },
{ &ops, IT8623E_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0ff0, 0x0ff0, },
{ &ops, IT8623E_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0fff, 0x0fff, },
{ &ops, IT8623E_KBCM, PNP_IRQ0, },
{ &ops, IT8623E_GPIO, PNP_IO0 | PNP_IO1 | PNP_IO2 | PNP_IRQ0, 0x0fff, 0x0fe0, 0x0fff, },
{ NULL, IT8623E_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ff8, },
{ NULL, IT8623E_SP1, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8623E_SP2, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8623E_PP, PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_DRQ0,
0x0ff8, 0x0ff8, },
{ NULL, IT8623E_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0ff0, 0x0ff0, },
{ NULL, IT8623E_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0fff, 0x0fff, },
{ NULL, IT8623E_KBCM, PNP_IRQ0, },
{ NULL, IT8623E_GPIO, PNP_IO0 | PNP_IO1 | PNP_IO2 | PNP_IRQ0,
0x0fff, 0x0fe0, 0x0fff, },
};
static void enable_dev(struct device *dev)
{
pnp_enable_devices(dev, &ops,
ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
pnp_enable_devices(dev, &ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
}
struct chip_operations superio_ite_it8623e_ops = {

View File

@ -51,15 +51,15 @@ static struct device_operations ops = {
/* TODO: FDC, PP, KBCM. */
static struct pnp_info pnp_dev_info[] = {
{ &ops, IT8671F_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ &ops, IT8671F_SP2, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_DRQ1, 0x07f8, },
{ &ops, IT8671F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x07f8, 0x07f8, },
{ NULL, IT8671F_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ NULL, IT8671F_SP2, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_DRQ1,
0x07f8, },
{ NULL, IT8671F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x07f8, 0x07f8, },
};
static void enable_dev(struct device *dev)
{
pnp_enable_devices(dev, &pnp_ops,
ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
pnp_enable_devices(dev, &ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
}
struct chip_operations superio_ite_it8671f_ops = {

View File

@ -62,23 +62,23 @@ static struct device_operations ops = {
};
static struct pnp_info pnp_dev_info[] = {
{ &ops, IT8712F_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ff8, },
{ &ops, IT8712F_SP1, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ &ops, IT8712F_SP2, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ &ops, IT8712F_PP, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ffc, },
{ &ops, IT8712F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0ff8, 0x0ff8, },
{ &ops, IT8712F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0fff, 0x0fff, },
{ &ops, IT8712F_KBCM, PNP_IRQ0, },
{ &ops, IT8712F_GPIO, PNP_IO0 | PNP_IO1 | PNP_IO2 | PNP_IRQ0, 0x0fff, 0x0ff8, 0x0ff8, },
{ &ops, IT8712F_MIDI, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ &ops, IT8712F_GAME, PNP_IO0, 0x0fff, },
{ &ops, IT8712F_IR, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8712F_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ff8, },
{ NULL, IT8712F_SP1, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8712F_SP2, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8712F_PP, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ffc, },
{ NULL, IT8712F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0ff8, 0x0ff8, },
{ NULL, IT8712F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0fff, 0x0fff, },
{ NULL, IT8712F_KBCM, PNP_IRQ0, },
{ NULL, IT8712F_GPIO, PNP_IO0 | PNP_IO1 | PNP_IO2 | PNP_IRQ0,
0x0fff, 0x0ff8, 0x0ff8, },
{ NULL, IT8712F_MIDI, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8712F_GAME, PNP_IO0, 0x0fff, },
{ NULL, IT8712F_IR, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
};
static void enable_dev(struct device *dev)
{
pnp_enable_devices(dev, &pnp_ops,
ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
pnp_enable_devices(dev, &ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
}
struct chip_operations superio_ite_it8712f_ops = {

View File

@ -75,17 +75,17 @@ static struct device_operations ops = {
};
static struct pnp_info pnp_dev_info[] = {
{ &ops, IT8716F_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x07f8, },
{ &ops, IT8716F_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ &ops, IT8716F_SP2, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ &ops, IT8716F_PP, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x07f8, },
{ &ops, IT8716F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x07f8, 0x07f8, },
{ &ops, IT8716F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x07ff, 0x07ff, },
{ &ops, IT8716F_KBCM, PNP_IRQ0, },
{ &ops, IT8716F_GPIO, PNP_IO1 | PNP_IO2, 0, 0x07f8, 0x07f8, },
{ &ops, IT8716F_MIDI, PNP_IO0 | PNP_IRQ0, 0x07fe, },
{ &ops, IT8716F_GAME, PNP_IO0, 0x07ff, },
{ &ops, IT8716F_IR, },
{ NULL, IT8716F_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x07f8, },
{ NULL, IT8716F_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ NULL, IT8716F_SP2, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ NULL, IT8716F_PP, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x07f8, },
{ NULL, IT8716F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x07f8, 0x07f8, },
{ NULL, IT8716F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x07ff, 0x07ff, },
{ NULL, IT8716F_KBCM, PNP_IRQ0, },
{ NULL, IT8716F_GPIO, PNP_IO1 | PNP_IO2, 0, 0x07f8, 0x07f8, },
{ NULL, IT8716F_MIDI, PNP_IO0 | PNP_IRQ0, 0x07fe, },
{ NULL, IT8716F_GAME, PNP_IO0, 0x07ff, },
{ NULL, IT8716F_IR, },
};
static void enable_dev(struct device *dev)

View File

@ -65,25 +65,24 @@ static struct device_operations ops = {
/* TODO: IR. */
static struct pnp_info pnp_dev_info[] = {
{ &ops, IT8718F_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0
{ NULL, IT8718F_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0
| PNP_MSC0 | PNP_MSC1, 0x0ff8, },
{ &ops, IT8718F_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ &ops, IT8718F_SP2, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ &ops, IT8718F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0
{ NULL, IT8718F_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ NULL, IT8718F_SP2, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ NULL, IT8718F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0
| PNP_MSC0 | PNP_MSC1 | PNP_MSC2 | PNP_MSC3
| PNP_MSC4 | PNP_MSC5 | PNP_MSC6,
0x0ff8, 0x0ff8, },
{ &ops, IT8718F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0
{ NULL, IT8718F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0
| PNP_MSC0, 0x07f8, 0x07f8, },
{ &ops, IT8718F_KBCM, PNP_IRQ0 | PNP_MSC0, },
{ &ops, IT8718F_PP, PNP_IO0 | PNP_IO1 | PNP_IRQ0
{ NULL, IT8718F_KBCM, PNP_IRQ0 | PNP_MSC0, },
{ NULL, IT8718F_PP, PNP_IO0 | PNP_IO1 | PNP_IRQ0
| PNP_DRQ0 | PNP_MSC0, 0x0ff8, 0x0ff8, },
};
static void enable_dev(struct device *dev)
{
pnp_enable_devices(dev, &pnp_ops,
ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
pnp_enable_devices(dev, &ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
}
struct chip_operations superio_ite_it8718f_ops = {

View File

@ -82,41 +82,40 @@ static struct device_operations ops = {
};
static struct pnp_info pnp_dev_info[] = {
{ &ops, IT8720F_FDC,
{ NULL, IT8720F_FDC,
PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_MSC0 | PNP_MSC1,
0x0ff8, },
{ &ops, IT8720F_SP1,
{ NULL, IT8720F_SP1,
PNP_IO0 | PNP_IRQ0 | PNP_MSC0 | PNP_MSC1,
0x0ff8, },
{ &ops, IT8720F_SP2,
{ NULL, IT8720F_SP2,
PNP_IO0 | PNP_IRQ0 | PNP_MSC0 | PNP_MSC1,
0x0ff8, },
{ &ops, IT8720F_PP,
{ NULL, IT8720F_PP,
PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_DRQ0 | PNP_MSC0,
0x0ff8, 0x0ffc, },
{ &ops, IT8720F_EC,
{ NULL, IT8720F_EC,
PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_MSC0 | PNP_MSC1 | PNP_MSC2 |
PNP_MSC3 | PNP_MSC4 | PNP_MSC5 | PNP_MSC6,
0x0ff8, 0x0ffc, },
{ &ops, IT8720F_KBCK,
{ NULL, IT8720F_KBCK,
PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_MSC0,
0x0fff, 0x0fff, },
{ &ops, IT8720F_KBCM,
{ NULL, IT8720F_KBCM,
PNP_IRQ0 | PNP_MSC0, },
{ &ops, IT8720F_GPIO,
{ NULL, IT8720F_GPIO,
PNP_IO0 | PNP_IO1 | PNP_IO2 | PNP_MSC0 | PNP_MSC1 | PNP_MSC2 |
PNP_MSC3 | PNP_MSC4 | PNP_MSC5 | PNP_MSC6 | PNP_MSC7 |
PNP_MSC8 | PNP_MSC9 | PNP_MSCA | PNP_MSCB | PNP_MSCD | PNP_MSCE,
0x0ff8, 0x0ff8, 0x0ff8, },
{ &ops, IT8720F_CIR,
{ NULL, IT8720F_CIR,
PNP_IO0 | PNP_IRQ0 | PNP_MSC0,
0x0ff8, },
};
static void enable_dev(struct device *dev)
{
pnp_enable_devices(dev, &pnp_ops,
ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
pnp_enable_devices(dev, &ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
}
struct chip_operations superio_ite_it8720f_ops = {

View File

@ -56,14 +56,15 @@ static struct device_operations ops = {
/* TODO: FDC, PP, EC, KBCM, IR. */
static struct pnp_info pnp_dev_info[] = {
{ &ops, IT8721F_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ &ops, IT8721F_SP2, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_DRQ1, 0x07f8, },
{ &ops, IT8721F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x07f8, 0x07f8, },
{ NULL, IT8721F_SP1, PNP_IO0 | PNP_IRQ0, 0x07f8, },
{ NULL, IT8721F_SP2, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_DRQ1,
0x07f8, },
{ NULL, IT8721F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x07f8, 0x07f8, },
};
static void enable_dev(struct device *dev)
{
pnp_enable_devices(dev, &pnp_ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
pnp_enable_devices(dev, &ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
}
struct chip_operations superio_ite_it8721f_ops = {

View File

@ -59,15 +59,16 @@ static struct device_operations ops = {
};
static struct pnp_info pnp_dev_info[] = {
{ &ops, IT8728F_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ff8, },
{ &ops, IT8728F_SP1, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ &ops, IT8728F_SP2, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ &ops, IT8728F_PP, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ffc, },
{ &ops, IT8728F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0ff8, 0x0ff8, },
{ &ops, IT8728F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0fff, 0x0fff, },
{ &ops, IT8728F_KBCM, PNP_IRQ0, },
{ &ops, IT8728F_GPIO, PNP_IO0 | PNP_IO1 | PNP_IO2 | PNP_IRQ0, 0x0fff, 0x0ff8, 0x0ff8, },
{ &ops, IT8728F_IR, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8728F_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ff8, },
{ NULL, IT8728F_SP1, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8728F_SP2, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8728F_PP, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, 0x0ffc, },
{ NULL, IT8728F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0ff8, 0x0ff8, },
{ NULL, IT8728F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, 0x0fff, 0x0fff, },
{ NULL, IT8728F_KBCM, PNP_IRQ0, },
{ NULL, IT8728F_GPIO, PNP_IO0 | PNP_IO1 | PNP_IO2 | PNP_IRQ0,
0x0fff, 0x0ff8, 0x0ff8, },
{ NULL, IT8728F_IR, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
};
static void enable_dev(struct device *dev)

View File

@ -267,29 +267,28 @@ static struct device_operations ops = {
static struct pnp_info pnp_dev_info[] = {
/* Floppy Disk Controller */
{ &ops, IT8772F_FDC, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8772F_FDC, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
/* Serial Port 1 */
{ &ops, IT8772F_SP1, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8772F_SP1, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
/* Environmental Controller */
{ &ops, IT8772F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0 |
{ NULL, IT8772F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0 |
PNP_MSC4 | PNP_MSCA,
0x0ff8, 0x0ffc, },
/* KBC Keyboard */
{ &ops, IT8772F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0,
{ NULL, IT8772F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0,
0x0fff, 0x0fff, },
/* KBC Mouse */
{ &ops, IT8772F_KBCM, PNP_IRQ0, },
{ NULL, IT8772F_KBCM, PNP_IRQ0, },
/* 27 GPIOs */
{ &ops, IT8772F_GPIO, PNP_IO0 | PNP_IO1,
{ NULL, IT8772F_GPIO, PNP_IO0 | PNP_IO1,
0x0fff, 0x0ff8, },
/* Infrared */
{ &ops, IT8772F_IR, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
{ NULL, IT8772F_IR, PNP_IO0 | PNP_IRQ0, 0x0ff8, },
};
static void enable_dev(struct device *dev)
{
pnp_enable_devices(dev, &pnp_ops,
ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
pnp_enable_devices(dev, &ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
}
struct chip_operations superio_ite_it8772f_ops = {

View File

@ -58,48 +58,47 @@ static struct device_operations ops = {
static struct pnp_info pnp_dev_info[] = {
/* Floppy Disk Controller */
{ &ops, IT8783EF_FDC, PNP_IO0 | PNP_IRQ0 | PNP_MSC0 | PNP_MSC1,
{ NULL, IT8783EF_FDC, PNP_IO0 | PNP_IRQ0 | PNP_MSC0 | PNP_MSC1,
0x0ff8, },
/* Serial Port 1 */
{ &ops, IT8783EF_SP1, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
{ NULL, IT8783EF_SP1, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
/* Serial Port 2 */
{ &ops, IT8783EF_SP2, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
{ NULL, IT8783EF_SP2, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
/* Printer Port */
{ &ops, IT8783EF_PP, PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_DRQ0 |
{ NULL, IT8783EF_PP, PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_DRQ0 |
PNP_MSC0,
0x0ffc, 0x0ffc, },
/* Environmental Controller */
{ &ops, IT8783EF_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_MSC0 |
{ NULL, IT8783EF_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_MSC0 |
PNP_MSC1 | PNP_MSC2 | PNP_MSC3 | PNP_MSC4 |
PNP_MSC5 | PNP_MSC6 | PNP_MSC7,
0x0ff8, 0x0ff8, },
/* KBC Keyboard */
{ &ops, IT8783EF_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_MSC0,
{ NULL, IT8783EF_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0 | PNP_MSC0,
0x0fff, 0x0fff, },
/* KBC Mouse */
{ &ops, IT8783EF_KBCM, PNP_IRQ0 | PNP_MSC0, },
{ NULL, IT8783EF_KBCM, PNP_IRQ0 | PNP_MSC0, },
/* GPIO */
{ &ops, IT8783EF_GPIO, PNP_IO0 | PNP_IO1 | PNP_IO2 | PNP_IRQ0 |
{ NULL, IT8783EF_GPIO, PNP_IO0 | PNP_IO1 | PNP_IO2 | PNP_IRQ0 |
PNP_MSC0 | PNP_MSC1 | PNP_MSC2 | PNP_MSC3 |
PNP_MSC4 | PNP_MSC5 | PNP_MSC6 | PNP_MSC7 |
PNP_MSC8 | PNP_MSC9 | PNP_MSCA | PNP_MSCB,
0x0ffc, 0x0fff, 0x0ff8, },
/* Serial Port 3 */
{ &ops, IT8783EF_SP3, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
{ NULL, IT8783EF_SP3, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
/* Serial Port 4 */
{ &ops, IT8783EF_SP4, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
{ NULL, IT8783EF_SP4, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
/* Serial Port 5 */
{ &ops, IT8783EF_SP5, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
{ NULL, IT8783EF_SP5, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
/* Serial Port 6 */
{ &ops, IT8783EF_SP6, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
{ NULL, IT8783EF_SP6, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
/* Consumer Infrared */
{ &ops, IT8783EF_CIR, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
{ NULL, IT8783EF_CIR, PNP_IO0 | PNP_IRQ0 | PNP_MSC0, 0x0ff8, },
};
static void enable_dev(struct device *dev)
{
pnp_enable_devices(dev, &pnp_ops,
ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
pnp_enable_devices(dev, &ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
}
struct chip_operations superio_ite_it8783ef_ops = {