Lines Matching refs:pcidev

232 	int (*register_gpio)(struct pci_dev *pcidev, struct uart_8250_port *port);
246 int (*setup)(struct exar8250 *priv, struct pci_dev *pcidev,
248 void (*exit)(struct pci_dev *pcidev);
498 static int default_setup(struct exar8250 *priv, struct pci_dev *pcidev, in default_setup() argument
506 err = serial8250_pci_setup_port(pcidev, port, 0, offset, board->reg_shift); in default_setup()
536 pci_fastcom335_setup(struct exar8250 *priv, struct pci_dev *pcidev, in pci_fastcom335_setup() argument
546 err = default_setup(priv, pcidev, idx, offset, port); in pci_fastcom335_setup()
564 switch (pcidev->device) { in pci_fastcom335_setup()
668 struct pci_dev *pcidev, in cti_get_port_type_xr17c15x_xr17v25x() argument
671 switch (pcidev->subsystem_device) { in cti_get_port_type_xr17c15x_xr17v25x()
728 dev_err(&pcidev->dev, "unknown/unsupported device\n"); in cti_get_port_type_xr17c15x_xr17v25x()
744 struct pci_dev *pcidev, in cti_get_port_type_fpga() argument
747 switch (pcidev->device) { in cti_get_port_type_fpga()
753 dev_err(&pcidev->dev, "unknown/unsupported device\n"); in cti_get_port_type_fpga()
770 struct pci_dev *pcidev, in cti_get_port_type_xr17v35x() argument
791 dev_warn(&pcidev->dev, "failed to get port %d type from EEPROM\n", port_num); in cti_get_port_type_xr17v35x()
811 static void cti_board_init_osc_freq(struct exar8250 *priv, struct pci_dev *pcidev, u8 eeprom_offset) in cti_board_init_osc_freq() argument
817 dev_warn(&pcidev->dev, "failed to read OSC freq from EEPROM, using default\n"); in cti_board_init_osc_freq()
825 struct pci_dev *pcidev, in cti_port_setup_common() argument
834 ret = serial8250_pci_setup_port(pcidev, port, 0, offset, 0); in cti_port_setup_common()
845 static int cti_board_init_fpga(struct exar8250 *priv, struct pci_dev *pcidev) in cti_board_init_fpga() argument
854 ret = pci_read_config_word(pcidev, CTI_FPGA_CFG_INT_EN_REG, &cfg_val); in cti_board_init_fpga()
859 ret = pci_write_config_word(pcidev, CTI_FPGA_CFG_INT_EN_REG, cfg_val); in cti_board_init_fpga()
870 struct pci_dev *pcidev, in cti_port_setup_fpga() argument
879 ret = cti_board_init_fpga(priv, pcidev); in cti_port_setup_fpga()
884 port_type = cti_get_port_type_fpga(priv, pcidev, idx); in cti_port_setup_fpga()
899 return cti_port_setup_common(priv, pcidev, idx, offset, port); in cti_port_setup_fpga()
902 static void cti_board_init_xr17v35x(struct exar8250 *priv, struct pci_dev *pcidev) in cti_board_init_xr17v35x() argument
909 struct pci_dev *pcidev, in cti_port_setup_xr17v35x() argument
918 cti_board_init_xr17v35x(priv, pcidev); in cti_port_setup_xr17v35x()
920 port_type = cti_get_port_type_xr17v35x(priv, pcidev, idx); in cti_port_setup_xr17v35x()
945 ret = cti_port_setup_common(priv, pcidev, idx, offset, port); in cti_port_setup_xr17v35x()
957 static void cti_board_init_xr17v25x(struct exar8250 *priv, struct pci_dev *pcidev) in cti_board_init_xr17v25x() argument
959 cti_board_init_osc_freq(priv, pcidev, CTI_EE_OFF_XR17V25X_OSC_FREQ); in cti_board_init_xr17v25x()
962 switch (pcidev->subsystem_device) { in cti_board_init_xr17v25x()
974 struct pci_dev *pcidev, in cti_port_setup_xr17v25x() argument
983 cti_board_init_xr17v25x(priv, pcidev); in cti_port_setup_xr17v25x()
985 port_type = cti_get_port_type_xr17c15x_xr17v25x(priv, pcidev, idx); in cti_port_setup_xr17v25x()
996 switch (pcidev->subsystem_device) { in cti_port_setup_xr17v25x()
1020 ret = cti_port_setup_common(priv, pcidev, idx, offset, port); in cti_port_setup_xr17v25x()
1032 static void cti_board_init_xr17c15x(struct exar8250 *priv, struct pci_dev *pcidev) in cti_board_init_xr17c15x() argument
1034 cti_board_init_osc_freq(priv, pcidev, CTI_EE_OFF_XR17C15X_OSC_FREQ); in cti_board_init_xr17c15x()
1037 switch (pcidev->subsystem_device) { in cti_board_init_xr17c15x()
1052 struct pci_dev *pcidev, in cti_port_setup_xr17c15x() argument
1060 cti_board_init_xr17c15x(priv, pcidev); in cti_port_setup_xr17c15x()
1062 port_type = cti_get_port_type_xr17c15x_xr17v25x(priv, pcidev, idx); in cti_port_setup_xr17c15x()
1068 switch (pcidev->subsystem_device) { in cti_port_setup_xr17c15x()
1092 return cti_port_setup_common(priv, pcidev, idx, offset, port); in cti_port_setup_xr17c15x()
1096 pci_xr17c154_setup(struct exar8250 *priv, struct pci_dev *pcidev, in pci_xr17c154_setup() argument
1103 return default_setup(priv, pcidev, idx, offset, port); in pci_xr17c154_setup()
1106 static void setup_gpio(struct pci_dev *pcidev, u8 __iomem *p) in setup_gpio() argument
1115 if ((pcidev->vendor == PCI_VENDOR_ID_EXAR) && in setup_gpio()
1116 (pcidev->subsystem_vendor != PCI_VENDOR_ID_SEALEVEL)) { in setup_gpio()
1138 static struct platform_device *__xr17v35x_register_gpio(struct pci_dev *pcidev, in __xr17v35x_register_gpio() argument
1147 pdev->dev.parent = &pcidev->dev; in __xr17v35x_register_gpio()
1148 device_set_node(&pdev->dev, dev_fwnode(&pcidev->dev)); in __xr17v35x_register_gpio()
1175 static int xr17v35x_register_gpio(struct pci_dev *pcidev, struct uart_8250_port *port) in xr17v35x_register_gpio() argument
1177 if (pcidev->vendor == PCI_VENDOR_ID_EXAR) in xr17v35x_register_gpio()
1179 __xr17v35x_register_gpio(pcidev, &exar_gpio_node); in xr17v35x_register_gpio()
1287 static int iot2040_register_gpio(struct pci_dev *pcidev, in iot2040_register_gpio() argument
1298 __xr17v35x_register_gpio(pcidev, &iot2040_gpio_node); in iot2040_register_gpio()
1337 pci_xr17v35x_setup(struct exar8250 *priv, struct pci_dev *pcidev, in pci_xr17v35x_setup() argument
1350 if (pcidev->subsystem_vendor == PCI_VENDOR_ID_SEALEVEL) in pci_xr17v35x_setup()
1360 ret = default_setup(priv, pcidev, idx, offset, port); in pci_xr17v35x_setup()
1373 setup_gpio(pcidev, p); in pci_xr17v35x_setup()
1375 ret = platform->register_gpio(pcidev, port); in pci_xr17v35x_setup()
1381 static void pci_xr17v35x_exit(struct pci_dev *pcidev) in pci_xr17v35x_exit() argument
1384 struct exar8250 *priv = pci_get_drvdata(pcidev); in pci_xr17v35x_exit()
1416 static unsigned int exar_get_nr_ports(struct exar8250_board *board, struct pci_dev *pcidev) in exar_get_nr_ports() argument
1418 if (pcidev->vendor == PCI_VENDOR_ID_ACCESSIO) in exar_get_nr_ports()
1419 return BIT(((pcidev->device & 0x38) >> 3) - 1); in exar_get_nr_ports()
1426 if (pcidev->vendor == PCI_VENDOR_ID_EXAR) in exar_get_nr_ports()
1427 return pcidev->device & 0x0f; in exar_get_nr_ports()
1430 if (pcidev->vendor == PCI_VENDOR_ID_CONNECT_TECH) { in exar_get_nr_ports()
1431 switch (pcidev->device) { in exar_get_nr_ports()
1446 exar_pci_probe(struct pci_dev *pcidev, const struct pci_device_id *ent) in exar_pci_probe() argument
1458 rc = pcim_enable_device(pcidev); in exar_pci_probe()
1462 maxnr = pci_resource_len(pcidev, bar) >> (board->reg_shift + 3); in exar_pci_probe()
1464 nr_ports = exar_get_nr_ports(board, pcidev); in exar_pci_probe()
1466 return dev_err_probe(&pcidev->dev, -ENODEV, "failed to get number of ports\n"); in exar_pci_probe()
1468 priv = devm_kzalloc(&pcidev->dev, struct_size(priv, line, nr_ports), GFP_KERNEL); in exar_pci_probe()
1473 priv->virt = pcim_iomap(pcidev, bar, 0); in exar_pci_probe()
1477 pci_set_master(pcidev); in exar_pci_probe()
1479 rc = pci_alloc_irq_vectors(pcidev, 1, 1, PCI_IRQ_ALL_TYPES); in exar_pci_probe()
1485 uart.port.irq = pci_irq_vector(pcidev, 0); in exar_pci_probe()
1486 uart.port.dev = &pcidev->dev; in exar_pci_probe()
1491 rc = devm_request_irq(&pcidev->dev, uart.port.irq, exar_misc_handler, in exar_pci_probe()
1499 rc = board->setup(priv, pcidev, &uart, i); in exar_pci_probe()
1501 dev_err_probe(&pcidev->dev, rc, "Failed to setup port %u\n", i); in exar_pci_probe()
1505 dev_dbg(&pcidev->dev, "Setup PCI port: port %lx, irq %d, type %d\n", in exar_pci_probe()
1510 dev_err_probe(&pcidev->dev, priv->line[i], in exar_pci_probe()
1517 pci_set_drvdata(pcidev, priv); in exar_pci_probe()
1521 static void exar_pci_remove(struct pci_dev *pcidev) in exar_pci_remove() argument
1523 struct exar8250 *priv = pci_get_drvdata(pcidev); in exar_pci_remove()
1531 priv->board->exit(pcidev); in exar_pci_remove()