diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ct69000.c | 21 | ||||
-rw-r--r-- | drivers/i8042.c | 19 |
2 files changed, 40 insertions, 0 deletions
diff --git a/drivers/ct69000.c b/drivers/ct69000.c index 7bcf19f5d..29d82e4c4 100644 --- a/drivers/ct69000.c +++ b/drivers/ct69000.c @@ -272,6 +272,9 @@ struct ctfb_chips_properties { static const struct ctfb_chips_properties chips[] = { {PCI_DEVICE_ID_CT_69000, 0x200000, 1, 4, -2, 3, 257, 100, 220}, +#ifdef CONFIG_USE_CPCIDVI + {PCI_DEVICE_ID_CT_69030, 0x400000, 1, 4, -2, 3, 257, 100, 220}, +#endif {PCI_DEVICE_ID_CT_65555, 0x100000, 16, 4, 0, 1, 255, 48, 220}, /* NOT TESTED */ {0, 0, 0, 0, 0, 0, 0, 0, 0} /* Terminator */ }; @@ -957,6 +960,9 @@ SetDrawingEngine (int bits_per_pixel) */ static struct pci_device_id supported[] = { {PCI_VENDOR_ID_CT, PCI_DEVICE_ID_CT_69000}, +#ifdef CONFIG_USE_CPCIDVI + {PCI_VENDOR_ID_CT, PCI_DEVICE_ID_CT_69030}, +#endif {} }; @@ -1121,7 +1127,22 @@ video_hw_init (void) pGD->cprBase = pci_mem_base; /* Dummy */ /* set up Hardware */ +#ifdef CONFIG_USE_CPCIDVI + if (device_id == PCI_DEVICE_ID_CT_69030) { + ctWrite (CT_MSR_W_O, 0x0b); + ctWrite (0x3cd, 0x13); + ctWrite_i (CT_FP_O, 0x02, 0x00); + ctWrite_i (CT_FP_O, 0x05, 0x00); + ctWrite_i (CT_FP_O, 0x06, 0x00); + ctWrite (0x3c2, 0x0b); + ctWrite_i (CT_FP_O, 0x02, 0x10); + ctWrite_i (CT_FP_O, 0x01, 0x09); + } else { + ctWrite (CT_MSR_W_O, 0x01); + } +#else ctWrite (CT_MSR_W_O, 0x01); +#endif /* set the extended Registers */ ctLoadRegs (CT_XR_O, xreg); diff --git a/drivers/i8042.c b/drivers/i8042.c index e21978dc2..5f273a267 100644 --- a/drivers/i8042.c +++ b/drivers/i8042.c @@ -29,6 +29,14 @@ #ifdef CONFIG_I8042_KBD +#ifdef CONFIG_USE_CPCIDVI +extern u8 gt_cpcidvi_in8(u32 offset); +extern void gt_cpcidvi_out8(u32 offset, u8 data); + +#define in8(a) gt_cpcidvi_in8(a) +#define out8(a, b) gt_cpcidvi_out8(a,b) +#endif + #include <i8042.h> /* defines */ @@ -318,6 +326,13 @@ int i8042_kbd_init (void) int keymap, try; char *penv; +#ifdef CONFIG_USE_CPCIDVI + if ((penv = getenv ("console")) != NULL) { + if (strncmp (penv, "serial", 7) == 0) { + return -1; + } + } +#endif /* Init keyboard device (default US layout) */ keymap = KBD_US; if ((penv = getenv ("keymap")) != NULL) @@ -633,7 +648,11 @@ static int kbd_reset (void) if (kbd_input_empty() == 0) return -1; +#ifdef CONFIG_USE_CPCIDVI + out8 (I8042_COMMAND_REG, 0x60); +#else out8 (I8042_DATA_REG, 0x60); +#endif if (kbd_input_empty() == 0) return -1; |