serial: 8250_pci: Add support for 12 port Exar boards
The Exar XR17V358 can also be combined with a XR17V354 chip to act as a single 12 port chip. This works the same way as the combining two XR17V358 chips. But the reported device id then is 0x4358. Signed-off-by: Soeren Grunewald <soeren.grunewald@desy.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
6cf600aba1
commit
be32c0cf04
@@ -1998,6 +1998,7 @@ pci_wch_ch38x_setup(struct serial_private *priv,
|
|||||||
#define PCIE_DEVICE_ID_WCH_CH382_2S1P 0x3250
|
#define PCIE_DEVICE_ID_WCH_CH382_2S1P 0x3250
|
||||||
#define PCIE_DEVICE_ID_WCH_CH384_4S 0x3470
|
#define PCIE_DEVICE_ID_WCH_CH384_4S 0x3470
|
||||||
|
|
||||||
|
#define PCI_DEVICE_ID_EXAR_XR17V4358 0x4358
|
||||||
#define PCI_DEVICE_ID_EXAR_XR17V8358 0x8358
|
#define PCI_DEVICE_ID_EXAR_XR17V8358 0x8358
|
||||||
|
|
||||||
/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
|
/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
|
||||||
@@ -2522,6 +2523,13 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
|
|||||||
.subdevice = PCI_ANY_ID,
|
.subdevice = PCI_ANY_ID,
|
||||||
.setup = pci_xr17v35x_setup,
|
.setup = pci_xr17v35x_setup,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.vendor = PCI_VENDOR_ID_EXAR,
|
||||||
|
.device = PCI_DEVICE_ID_EXAR_XR17V4358,
|
||||||
|
.subvendor = PCI_ANY_ID,
|
||||||
|
.subdevice = PCI_ANY_ID,
|
||||||
|
.setup = pci_xr17v35x_setup,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.vendor = PCI_VENDOR_ID_EXAR,
|
.vendor = PCI_VENDOR_ID_EXAR,
|
||||||
.device = PCI_DEVICE_ID_EXAR_XR17V8358,
|
.device = PCI_DEVICE_ID_EXAR_XR17V8358,
|
||||||
@@ -3008,6 +3016,7 @@ enum pci_board_num_t {
|
|||||||
pbn_exar_XR17V352,
|
pbn_exar_XR17V352,
|
||||||
pbn_exar_XR17V354,
|
pbn_exar_XR17V354,
|
||||||
pbn_exar_XR17V358,
|
pbn_exar_XR17V358,
|
||||||
|
pbn_exar_XR17V4358,
|
||||||
pbn_exar_XR17V8358,
|
pbn_exar_XR17V8358,
|
||||||
pbn_exar_ibm_saturn,
|
pbn_exar_ibm_saturn,
|
||||||
pbn_pasemi_1682M,
|
pbn_pasemi_1682M,
|
||||||
@@ -3695,6 +3704,14 @@ static struct pciserial_board pci_boards[] = {
|
|||||||
.reg_shift = 0,
|
.reg_shift = 0,
|
||||||
.first_offset = 0,
|
.first_offset = 0,
|
||||||
},
|
},
|
||||||
|
[pbn_exar_XR17V4358] = {
|
||||||
|
.flags = FL_BASE0,
|
||||||
|
.num_ports = 12,
|
||||||
|
.base_baud = 7812500,
|
||||||
|
.uart_offset = 0x400,
|
||||||
|
.reg_shift = 0,
|
||||||
|
.first_offset = 0,
|
||||||
|
},
|
||||||
[pbn_exar_XR17V8358] = {
|
[pbn_exar_XR17V8358] = {
|
||||||
.flags = FL_BASE0,
|
.flags = FL_BASE0,
|
||||||
.num_ports = 16,
|
.num_ports = 16,
|
||||||
@@ -5112,6 +5129,10 @@ static struct pci_device_id serial_pci_tbl[] = {
|
|||||||
PCI_ANY_ID, PCI_ANY_ID,
|
PCI_ANY_ID, PCI_ANY_ID,
|
||||||
0,
|
0,
|
||||||
0, pbn_exar_XR17V358 },
|
0, pbn_exar_XR17V358 },
|
||||||
|
{ PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V4358,
|
||||||
|
PCI_ANY_ID, PCI_ANY_ID,
|
||||||
|
0,
|
||||||
|
0, pbn_exar_XR17V4358 },
|
||||||
{ PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V8358,
|
{ PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V8358,
|
||||||
PCI_ANY_ID, PCI_ANY_ID,
|
PCI_ANY_ID, PCI_ANY_ID,
|
||||||
0,
|
0,
|
||||||
|
Reference in New Issue
Block a user