Make the ITE IT8712F support in v3 a bit more complete and fix the

incorrect and incomplete pnp_dev_info[] as we did in v2.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Corey Osgood <corey.osgood@gmail.com>



git-svn-id: svn://coreboot.org/repository/coreboot-v3@924 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
Uwe Hermann 2008-10-14 10:13:24 +00:00
commit eb08c3a21d
4 changed files with 63 additions and 28 deletions

View file

@ -1,8 +1,8 @@
/*
*
* This file is part of the coreboot project.
*
* Copyright (C) 2008 Ronald G. Minnich <rminnich@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@ -16,10 +16,18 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
{
device_operations = "it8712f_ops";
/* Floppy */
floppydev = "0";
floppyenable = "0";
floppyio = "0x3f0";
floppyirq = "6";
floppydrq = "2";
/* COM1 */
com1dev = "1";
com1enable = "0";
@ -32,11 +40,48 @@
com2io = "0x2f8";
com2irq = "3";
/* Keyboard */
/* Parallel port */
ppdev = "3";
ppenable = "0";
ppio = "0x378";
ppirq = "7";
/* Environment controller */
ecdev = "4";
ecenable = "0";
ecio = "0x290";
ecirq = "9";
/* PS/2 keyboard */
kbdev = "5";
kbenable = "0";
kbio = "0x60";
kbio2 = "0x64";
kbirq = "1";
kbirq2 = "2";
/* PS/2 mouse */
mousedev = "6";
mouseenable = "0";
mouseirq = "12";
/* GPIO */
gpiodev = "7";
gpioenable = "0";
/* MIDI port */
mididev = "8";
midienable = "0";
midiio = "0x300";
midiirq = "10";
/* Game port */
gamedev = "9";
gameenable = "0";
gameio = "0x201";
/* Consumer IR */
cirdev = "10";
cirenable = "0";
cirio = "0x310";
cirirq = "11";
};

View file

@ -19,7 +19,6 @@
*/
/* Datasheet: http://www.ite.com.tw/product_info/PC/Brief-IT8712_2.asp */
/* Status: Com1 is tested and works. */
#define IT8712F_FDC 0x00 /* Floppy */
#define IT8712F_SP1 0x01 /* Com1 */

View file

@ -3,6 +3,7 @@
*
* Copyright (C) 2006 Uwe Hermann <uwe@hermann-uwe.de>
* Copyright (C) 2008 Ronald G. Minnich <rminnich@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or

View file

@ -62,8 +62,6 @@ static void it8712f_init(struct device * dev)
conf = dev->device_configuration;
switch (dev->path.pnp.device) {
case IT8712F_FDC: /* TODO. */
break;
case IT8712F_SP1:
res0 = find_resource(dev, PNP_IDX_IO0);
#warning no init_uart8250 yet
@ -73,10 +71,6 @@ static void it8712f_init(struct device * dev)
res0 = find_resource(dev, PNP_IDX_IO0);
// init_uart8250(res0->base, &conf->com2);
break;
case IT8712F_PP: /* TODO. */
break;
case IT8712F_EC: /* TODO. */
break;
case IT8712F_KBCK:
res0 = find_resource(dev, PNP_IDX_IO0);
res1 = find_resource(dev, PNP_IDX_IO1);
@ -84,14 +78,6 @@ static void it8712f_init(struct device * dev)
// set_kbc_ps2_mode();
// init_pc_keyboard(res0->base, res1->base, &conf->keyboard);
break;
case IT8712F_KBCM: /* TODO. */
break;
case IT8712F_MIDI: /* TODO. */
break;
case IT8712F_GAME: /* TODO. */
break;
case IT8712F_IR: /* TODO. */
break;
}
}
@ -127,19 +113,23 @@ struct device_operations it8712f_ops = {
.phase6_init = it8712f_init,
};
/* TODO: FDC, MIDI, GAME, IR. */
static struct pnp_info pnp_dev_info[] = {
{&it8712f_ops, IT8712F_SP1, PNP_IO0 | PNP_IRQ0, {0x7f8, 0}, },
{&it8712f_ops, IT8712F_SP2, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0 | PNP_DRQ1, {0x7f8, 0}, },
{&it8712f_ops, IT8712F_PP, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, {0x07f8, 0},},
{&it8712f_ops, IT8712F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, {0x7f8, 0}, {0x7f8, 0x4},},
{&it8712f_ops, IT8712F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, {0x7f8, 0}, {0x7f8, 0x4}, },
{&it8712f_ops, IT8712F_KBCM, PNP_IRQ0, },
{&it8712f_ops, IT8712F_GPIO, },
{&it8712f_ops, IT8712F_FDC, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, {0xff8, 0},},
{&it8712f_ops, IT8712F_SP1, PNP_IO0 | PNP_IRQ0, {0xff8, 0},},
{&it8712f_ops, IT8712F_SP2, PNP_IO0 | PNP_IRQ0, {0xff8, 0},},
{&it8712f_ops, IT8712F_PP, PNP_IO0 | PNP_IRQ0 | PNP_DRQ0, {0xffc, 0},},
{&it8712f_ops, IT8712F_EC, PNP_IO0 | PNP_IO1 | PNP_IRQ0, {0xff8, 0}, {0xff8, 4},},
{&it8712f_ops, IT8712F_KBCK, PNP_IO0 | PNP_IO1 | PNP_IRQ0, {0xfff, 0}, {0xfff, 4},},
{&it8712f_ops, IT8712F_KBCM, PNP_IRQ0,},
{&it8712f_ops, IT8712F_GPIO,},
{&it8712f_ops, IT8712F_MIDI, PNP_IO0 | PNP_IRQ0, {0xff8, 0},},
{&it8712f_ops, IT8712F_GAME, PNP_IO0, {0xfff, 0},},
{&it8712f_ops, IT8712F_IR, PNP_IO0 | PNP_IRQ0, {0xff8, 0},},
};
static void it8712f_setup_scan_bus(struct device *dev)
{
pnp_enable_devices(dev, &it8712f_ops, ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
pnp_enable_devices(dev, &it8712f_ops,
ARRAY_SIZE(pnp_dev_info), pnp_dev_info);
}