|
@@ -1085,6 +1085,18 @@ pci_omegapci_setup(struct serial_private *priv,
|
|
|
return setup_port(priv, port, 2, idx * 8, 0);
|
|
|
}
|
|
|
|
|
|
+static int
|
|
|
+pci_brcm_trumanage_setup(struct serial_private *priv,
|
|
|
+ const struct pciserial_board *board,
|
|
|
+ struct uart_8250_port *port, int idx)
|
|
|
+{
|
|
|
+ int ret = pci_default_setup(priv, board, port, idx);
|
|
|
+
|
|
|
+ port->port.type = PORT_BRCM_TRUMANAGE;
|
|
|
+ port->port.flags = (port->port.flags | UPF_FIXED_PORT | UPF_FIXED_TYPE);
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
static int skip_tx_en_setup(struct serial_private *priv,
|
|
|
const struct pciserial_board *board,
|
|
|
struct uart_8250_port *port, int idx)
|
|
@@ -1301,9 +1313,10 @@ pci_wch_ch353_setup(struct serial_private *priv,
|
|
|
#define PCI_VENDOR_ID_AGESTAR 0x5372
|
|
|
#define PCI_DEVICE_ID_AGESTAR_9375 0x6872
|
|
|
#define PCI_VENDOR_ID_ASIX 0x9710
|
|
|
-#define PCI_DEVICE_ID_COMMTECH_4222PCIE 0x0019
|
|
|
#define PCI_DEVICE_ID_COMMTECH_4224PCIE 0x0020
|
|
|
#define PCI_DEVICE_ID_COMMTECH_4228PCIE 0x0021
|
|
|
+#define PCI_DEVICE_ID_COMMTECH_4222PCIE 0x0022
|
|
|
+#define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a
|
|
|
|
|
|
|
|
|
/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
|
|
@@ -1953,6 +1966,17 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
|
|
|
.subdevice = PCI_ANY_ID,
|
|
|
.setup = pci_xr17v35x_setup,
|
|
|
},
|
|
|
+ /*
|
|
|
+ * Broadcom TruManage (NetXtreme)
|
|
|
+ */
|
|
|
+ {
|
|
|
+ .vendor = PCI_VENDOR_ID_BROADCOM,
|
|
|
+ .device = PCI_DEVICE_ID_BROADCOM_TRUMANAGE,
|
|
|
+ .subvendor = PCI_ANY_ID,
|
|
|
+ .subdevice = PCI_ANY_ID,
|
|
|
+ .setup = pci_brcm_trumanage_setup,
|
|
|
+ },
|
|
|
+
|
|
|
/*
|
|
|
* Default "match everything" terminator entry
|
|
|
*/
|
|
@@ -2148,6 +2172,7 @@ enum pci_board_num_t {
|
|
|
pbn_ce4100_1_115200,
|
|
|
pbn_omegapci,
|
|
|
pbn_NETMOS9900_2s_115200,
|
|
|
+ pbn_brcm_trumanage,
|
|
|
};
|
|
|
|
|
|
/*
|
|
@@ -2246,7 +2271,7 @@ static struct pciserial_board pci_boards[] = {
|
|
|
|
|
|
[pbn_b0_8_1152000_200] = {
|
|
|
.flags = FL_BASE0,
|
|
|
- .num_ports = 2,
|
|
|
+ .num_ports = 8,
|
|
|
.base_baud = 1152000,
|
|
|
.uart_offset = 0x200,
|
|
|
},
|
|
@@ -2892,6 +2917,12 @@ static struct pciserial_board pci_boards[] = {
|
|
|
.num_ports = 2,
|
|
|
.base_baud = 115200,
|
|
|
},
|
|
|
+ [pbn_brcm_trumanage] = {
|
|
|
+ .flags = FL_BASE0,
|
|
|
+ .num_ports = 1,
|
|
|
+ .reg_shift = 2,
|
|
|
+ .base_baud = 115200,
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
static const struct pci_device_id blacklist[] = {
|
|
@@ -4470,6 +4501,13 @@ static struct pci_device_id serial_pci_tbl[] = {
|
|
|
PCI_ANY_ID, PCI_ANY_ID, 0, 0,
|
|
|
pbn_omegapci },
|
|
|
|
|
|
+ /*
|
|
|
+ * Broadcom TruManage
|
|
|
+ */
|
|
|
+ { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_BROADCOM_TRUMANAGE,
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
|
|
|
+ pbn_brcm_trumanage },
|
|
|
+
|
|
|
/*
|
|
|
* AgeStar as-prs2-009
|
|
|
*/
|