On Wed, Apr 15, 2015 at 09:56:16AM +0200, Soeren Grunewald wrote: > The Exar XR17V358 chip usually provides only 8 ports. But two chips can be > combined to act as a single 16 port chip. Therefor one chip is configured > as master the second as slave by connecting the mode pin to VCC (master) > or GND (slave). > > Then the master chip is reporting a different device-id depending on > whether a slave is detected or not. The UARTs 8-15 are addressed from > 0x2000-0x3fff. So the offset of 0x400 from UART to UART can be used to > address all 16 ports as before. > > Signed-off-by: Soeren Grunewald <soeren.grunewald@xxxxxxx> > --- > drivers/tty/serial/8250/8250_pci.c | 23 +++++++++++++++++++++-- > include/linux/pci_ids.h | 1 + > 2 files changed, 22 insertions(+), 2 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c > index 08da4d3..15ce922 100644 > --- a/drivers/tty/serial/8250/8250_pci.c > +++ b/drivers/tty/serial/8250/8250_pci.c > @@ -2520,6 +2520,13 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = { > .subdevice = PCI_ANY_ID, > .setup = pci_xr17v35x_setup, > }, > + { > + .vendor = PCI_VENDOR_ID_EXAR, > + .device = PCI_DEVICE_ID_EXAR_XR17V8358, > + .subvendor = PCI_ANY_ID, > + .subdevice = PCI_ANY_ID, > + .setup = pci_xr17v35x_setup, > + }, > /* > * Xircom cards > */ > @@ -2999,6 +3006,7 @@ enum pci_board_num_t { > pbn_exar_XR17V352, > pbn_exar_XR17V354, > pbn_exar_XR17V358, > + pbn_exar_XR17V8358, > pbn_exar_ibm_saturn, > pbn_pasemi_1682M, > pbn_ni8430_2, > @@ -3685,6 +3693,14 @@ static struct pciserial_board pci_boards[] = { > .reg_shift = 0, > .first_offset = 0, > }, > + [pbn_exar_XR17V8358] = { > + .flags = FL_BASE0, > + .num_ports = 16, > + .base_baud = 7812500, > + .uart_offset = 0x400, > + .reg_shift = 0, > + .first_offset = 0, > + }, > [pbn_exar_ibm_saturn] = { > .flags = FL_BASE0, > .num_ports = 1, > @@ -5080,7 +5096,7 @@ static struct pci_device_id serial_pci_tbl[] = { > 0, > 0, pbn_exar_XR17C158 }, > /* > - * Exar Corp. XR17V35[248] Dual/Quad/Octal PCIe UARTs > + * Exar Corp. XR17V[48]35[248] Dual/Quad/Octal/Hexa PCIe UARTs > */ > { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V352, > PCI_ANY_ID, PCI_ANY_ID, > @@ -5094,7 +5110,10 @@ static struct pci_device_id serial_pci_tbl[] = { > PCI_ANY_ID, PCI_ANY_ID, > 0, > 0, pbn_exar_XR17V358 }, > - > + { PCI_VENDOR_ID_EXAR, PCI_DEVICE_ID_EXAR_XR17V8358, > + PCI_ANY_ID, PCI_ANY_ID, > + 0, > + 0, pbn_exar_XR17V8358 }, > /* > * Topic TP560 Data/Fax/Voice 56k modem (reported by Evan Clarke) > */ > diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h > index e63c02a..695605e 100644 > --- a/include/linux/pci_ids.h > +++ b/include/linux/pci_ids.h > @@ -2020,6 +2020,7 @@ > #define PCI_DEVICE_ID_EXAR_XR17V352 0x0352 > #define PCI_DEVICE_ID_EXAR_XR17V354 0x0354 > #define PCI_DEVICE_ID_EXAR_XR17V358 0x0358 > +#define PCI_DEVICE_ID_EXAR_XR17V8358 0x8358 Please read the top of this file, this line does not need to be added here. Please fix this up and resend. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html