Lines Matching +full:uart +full:- +full:16550 +full:- +full:compatible

1 // SPDX-License-Identifier: GPL-2.0
3 * Probe for 8250/16550-type ISAPNP serial ports.
9 * Ported to the Linux PnP Layer - (C) Adam Belay.
44 * Native driver (ali-ircc) is broken so at least
45 * it can be used with irtty-sir.
53 /* Boca Complete Ofc Communicator 14.4 Data-FAX */
60 /* EuroViVa CommCenter-33.6 SP PnP */
70 /* Creative Modem Blaster Flash56 DI5601-1 */
74 /* E-Tech */
75 /* E-Tech CyberBULLET PC56RVP */
78 /* Fujitsu 33600 PnP-I2 R Plug & Play */
80 /* Fujitsu FMV-FX431 Plug & Play */
82 /* Fujitsu 33600 PnP-I4 R Plug & Play */
84 /* Fujitsu Fax Voice 33600 PNP-I5 R Plug & Play */
92 /* Hayes Optima 288 V.34-V.FC + FAX + Voice Plug & Play */
203 /* Generic 16550A-compatible COM port */
209 /* Dial-Up Networking Serial Cable between 2 PCs */
211 /* Dial-Up Networking Parallel Cable between 2 PCs */
347 /* Fujitsu P-series tablet PC device */
354 * LG C1 EXPRESS DUAL (C1-PB11A3) touch screen (actually a FUJ02E6
413 * - dev->name or dev->bus->name must contain "modem" substring;
414 * - device must have only one IO region (8 byte long) with base address
424 (dev->card && check_name(dev->card->name)))) in serial_pnp_guess_board()
425 return -ENODEV; in serial_pnp_guess_board()
430 return -ENODEV; in serial_pnp_guess_board()
436 struct uart_8250_port uart, *port; in serial_pnp_probe() local
437 int ret, line, flags = dev_id->driver_data; in serial_pnp_probe()
445 memset(&uart, 0, sizeof(uart)); in serial_pnp_probe()
447 uart.port.irq = pnp_irq(dev, 0); in serial_pnp_probe()
449 uart.port.iobase = pnp_port_start(dev, 2); in serial_pnp_probe()
450 uart.port.iotype = UPIO_PORT; in serial_pnp_probe()
452 uart.port.iobase = pnp_port_start(dev, 0); in serial_pnp_probe()
453 uart.port.iotype = UPIO_PORT; in serial_pnp_probe()
455 uart.port.mapbase = pnp_mem_start(dev, 0); in serial_pnp_probe()
456 uart.port.iotype = UPIO_MEM; in serial_pnp_probe()
457 uart.port.flags = UPF_IOREMAP; in serial_pnp_probe()
459 return -ENODEV; in serial_pnp_probe()
461 dev_dbg(&dev->dev, in serial_pnp_probe()
463 uart.port.iobase, (unsigned long long)uart.port.mapbase, in serial_pnp_probe()
464 uart.port.irq, uart.port.iotype); in serial_pnp_probe()
467 uart.port.flags |= UPF_FIXED_PORT | UPF_FIXED_TYPE; in serial_pnp_probe()
468 uart.port.type = PORT_8250_CIR; in serial_pnp_probe()
471 uart.port.flags |= UPF_SKIP_TEST | UPF_BOOT_AUTOCONF; in serial_pnp_probe()
473 uart.port.flags |= UPF_SHARE_IRQ; in serial_pnp_probe()
474 uart.port.uartclk = 1843200; in serial_pnp_probe()
475 device_property_read_u32(&dev->dev, "clock-frequency", &uart.port.uartclk); in serial_pnp_probe()
476 uart.port.dev = &dev->dev; in serial_pnp_probe()
478 line = serial8250_register_8250_port(&uart); in serial_pnp_probe()
480 return -ENODEV; in serial_pnp_probe()
483 if (uart_console(&port->port)) in serial_pnp_probe()
484 dev->capabilities |= PNP_CONSOLE; in serial_pnp_probe()
494 dev->capabilities &= ~PNP_CONSOLE; in serial_pnp_remove()
496 serial8250_unregister_port(line - 1); in serial_pnp_remove()
504 return -ENODEV; in serial_pnp_suspend()
505 serial8250_suspend_port(line - 1); in serial_pnp_suspend()
514 return -ENODEV; in serial_pnp_resume()
515 serial8250_resume_port(line - 1); in serial_pnp_resume()