Commit c88eec7c authored by Raphael Zimmerer's avatar Raphael Zimmerer Committed by Linus Torvalds

[PATCH] Support for Exar XR17C158 Octal UART

Here's a minimal patch to support the Exar Corp.  XR17C158 Octal UART Chip
(PCI).
Signed-off-by: default avatarRaphael Zimmerer <killekulla@rdrz.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 1c0e4705
...@@ -1068,6 +1068,9 @@ enum pci_board_num_t { ...@@ -1068,6 +1068,9 @@ enum pci_board_num_t {
pbn_computone_6, pbn_computone_6,
pbn_computone_8, pbn_computone_8,
pbn_sbsxrsio, pbn_sbsxrsio,
pbn_exar_XR17C152,
pbn_exar_XR17C154,
pbn_exar_XR17C158,
}; };
/* /*
...@@ -1488,7 +1491,30 @@ static struct pci_board pci_boards[] __devinitdata = { ...@@ -1488,7 +1491,30 @@ static struct pci_board pci_boards[] __devinitdata = {
.base_baud = 460800, .base_baud = 460800,
.uart_offset = 256, .uart_offset = 256,
.reg_shift = 4, .reg_shift = 4,
} },
/*
* Exar Corp. XR17C15[248] Dual/Quad/Octal UART
* Only basic 16550A support.
* XR17C15[24] are not tested, but they should work.
*/
[pbn_exar_XR17C152] = {
.flags = FL_BASE0,
.num_ports = 2,
.base_baud = 921600,
.uart_offset = 0x200,
},
[pbn_exar_XR17C154] = {
.flags = FL_BASE0,
.num_ports = 4,
.base_baud = 921600,
.uart_offset = 0x200,
},
[pbn_exar_XR17C158] = {
.flags = FL_BASE0,
.num_ports = 8,
.base_baud = 921600,
.uart_offset = 0x200,
},
}; };
/* /*
...@@ -2147,6 +2173,22 @@ static struct pci_device_id serial_pci_tbl[] = { ...@@ -2147,6 +2173,22 @@ static struct pci_device_id serial_pci_tbl[] = {
PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_b3_8_115200 }, pbn_b3_8_115200 },
/*
* Exar Corp. XR17C15[248] Dual/Quad/Octal UART
*/
{ PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C152,
PCI_ANY_ID, PCI_ANY_ID,
0,
0, pbn_exar_XR17C152 },
{ PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C154,
PCI_ANY_ID, PCI_ANY_ID,
0,
0, pbn_exar_XR17C154 },
{ PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17C158,
PCI_ANY_ID, PCI_ANY_ID,
0,
0, pbn_exar_XR17C158 },
/* /*
* These entries match devices with class COMMUNICATION_SERIAL, * These entries match devices with class COMMUNICATION_SERIAL,
* COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL
......
...@@ -1799,6 +1799,11 @@ ...@@ -1799,6 +1799,11 @@
#define PCI_DEVICE_ID_CCD_B00C 0xb00c #define PCI_DEVICE_ID_CCD_B00C 0xb00c
#define PCI_DEVICE_ID_CCD_B100 0xb100 #define PCI_DEVICE_ID_CCD_B100 0xb100
#define PCI_VENDOR_ID_EXAR 0x13a8
#define PCI_DEVICE_ID_EXAR_XR17C152 0x0152
#define PCI_DEVICE_ID_EXAR_XR17C154 0x0154
#define PCI_DEVICE_ID_EXAR_XR17C158 0x0158
#define PCI_VENDOR_ID_MICROGATE 0x13c0 #define PCI_VENDOR_ID_MICROGATE 0x13c0
#define PCI_DEVICE_ID_MICROGATE_USC 0x0010 #define PCI_DEVICE_ID_MICROGATE_USC 0x0010
#define PCI_DEVICE_ID_MICROGATE_SCC 0x0020 #define PCI_DEVICE_ID_MICROGATE_SCC 0x0020
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment