From: Andrey Panin Add support for SIIG Quartet Serial card. This card has Oxford Semiconducor 16954 quad UART which is clocked by 10x faster (18.432 MHz) quartz. Cc: Signed-off-by: Andrew Morton --- drivers/serial/8250_pci.c | 14 ++++++++++++++ include/linux/pci_ids.h | 2 ++ 2 files changed, 16 insertions(+) diff -puN drivers/serial/8250_pci.c~serial-add-siig-quartet-support drivers/serial/8250_pci.c --- 25/drivers/serial/8250_pci.c~serial-add-siig-quartet-support Tue Jun 28 15:56:24 2005 +++ 25-akpm/drivers/serial/8250_pci.c Tue Jun 28 15:56:24 2005 @@ -389,6 +389,9 @@ static void __devexit sbs_exit(struct pc * - 10x cards have control registers in IO and/or memory space; * - 20x cards have control registers in standard PCI configuration space. * + * There are also Quartet Serial cards which use Oxford Semiconductor + * 16954 quad UART PCI chip clocked by 18.432 MHz quartz. + * * Note: some SIIG cards are probed by the parport_serial object. */ @@ -1027,6 +1030,8 @@ enum pci_board_num_t { pbn_b0_2_1130000, pbn_b0_4_921600, + pbn_b0_4_1152000, + pbn_b0_bt_1_115200, pbn_b0_bt_2_115200, pbn_b0_bt_8_115200, @@ -1165,6 +1170,12 @@ static struct pci_board pci_boards[] __d .base_baud = 921600, .uart_offset = 8, }, + [pbn_b0_4_1152000] = { + .flags = FL_BASE0, + .num_ports = 4, + .base_baud = 1152000, + .uart_offset = 8, + }, [pbn_b0_bt_1_115200] = { .flags = FL_BASE0|FL_BASE_BARS, @@ -1985,6 +1996,9 @@ static struct pci_device_id serial_pci_t PCI_VENDOR_ID_SPECIALIX, PCI_SUBDEVICE_ID_SPECIALIX_SPEED4, 0, 0, pbn_b0_4_921600 }, { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954, + PCI_SUBVENDOR_ID_SIIG, PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL, 0, 0, + pbn_b0_4_1152000 }, + { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b0_4_115200 }, { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI952, diff -puN include/linux/pci_ids.h~serial-add-siig-quartet-support include/linux/pci_ids.h --- 25/include/linux/pci_ids.h~serial-add-siig-quartet-support Tue Jun 28 15:56:24 2005 +++ 25-akpm/include/linux/pci_ids.h Tue Jun 28 15:56:24 2005 @@ -1871,6 +1871,7 @@ #define PCI_DEVICE_ID_CBOARDS_DAS1602_16 0x0001 #define PCI_VENDOR_ID_SIIG 0x131f +#define PCI_SUBVENDOR_ID_SIIG 0x131f #define PCI_DEVICE_ID_SIIG_1S_10x_550 0x1000 #define PCI_DEVICE_ID_SIIG_1S_10x_650 0x1001 #define PCI_DEVICE_ID_SIIG_1S_10x_850 0x1002 @@ -1908,6 +1909,7 @@ #define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060 #define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061 #define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062 +#define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 #define PCI_VENDOR_ID_RADISYS 0x1331 #define PCI_DEVICE_ID_RADISYS_ENP2611 0x0030 _