Lines Matching refs:vt8500_port

95 struct vt8500_port {  struct
124 struct vt8500_port *vt8500_port = container_of(port, in vt8500_stop_tx() local
125 struct vt8500_port, in vt8500_stop_tx()
128 vt8500_port->ier &= ~TX_FIFO_INTS; in vt8500_stop_tx()
129 vt8500_write(port, vt8500_port->ier, VT8500_URIER); in vt8500_stop_tx()
134 struct vt8500_port *vt8500_port = container_of(port, in vt8500_stop_rx() local
135 struct vt8500_port, in vt8500_stop_rx()
138 vt8500_port->ier &= ~RX_FIFO_INTS; in vt8500_stop_rx()
139 vt8500_write(port, vt8500_port->ier, VT8500_URIER); in vt8500_stop_rx()
144 struct vt8500_port *vt8500_port = container_of(port, in vt8500_enable_ms() local
145 struct vt8500_port, in vt8500_enable_ms()
148 vt8500_port->ier |= TCTS; in vt8500_enable_ms()
149 vt8500_write(port, vt8500_port->ier, VT8500_URIER); in vt8500_enable_ms()
208 struct vt8500_port *vt8500_port = container_of(port, in vt8500_start_tx() local
209 struct vt8500_port, in vt8500_start_tx()
212 vt8500_port->ier &= ~TX_FIFO_INTS; in vt8500_start_tx()
213 vt8500_write(port, vt8500_port->ier, VT8500_URIER); in vt8500_start_tx()
215 vt8500_port->ier |= TX_FIFO_INTS; in vt8500_start_tx()
216 vt8500_write(port, vt8500_port->ier, VT8500_URIER); in vt8500_start_tx()
281 struct vt8500_port *vt8500_port = in vt8500_set_baud_rate() local
282 container_of(port, struct vt8500_port, uart); in vt8500_set_baud_rate()
286 div = ((vt8500_port->clk_predivisor - 1) & 0xf) << 16; in vt8500_set_baud_rate()
305 struct vt8500_port *vt8500_port = in vt8500_startup() local
306 container_of(port, struct vt8500_port, uart); in vt8500_startup()
309 snprintf(vt8500_port->name, sizeof(vt8500_port->name), in vt8500_startup()
313 vt8500_port->name, port); in vt8500_startup()
324 struct vt8500_port *vt8500_port = in vt8500_shutdown() local
325 container_of(port, struct vt8500_port, uart); in vt8500_shutdown()
327 vt8500_port->ier = 0; in vt8500_shutdown()
330 vt8500_write(&vt8500_port->uart, 0, VT8500_URIER); in vt8500_shutdown()
331 vt8500_write(&vt8500_port->uart, 0x880, VT8500_URFCR); in vt8500_shutdown()
339 struct vt8500_port *vt8500_port = in vt8500_set_termios() local
340 container_of(port, struct vt8500_port, uart); in vt8500_set_termios()
354 lcr = vt8500_read(&vt8500_port->uart, VT8500_URLCR); in vt8500_set_termios()
382 if (vt8500_port->vt8500_uart_flags & VT8500_HAS_SWRTSCTS_SWITCH) in vt8500_set_termios()
386 vt8500_write(&vt8500_port->uart, lcr, VT8500_URLCR); in vt8500_set_termios()
396 vt8500_write(&vt8500_port->uart, 0x88c, VT8500_URFCR); in vt8500_set_termios()
397 while ((vt8500_read(&vt8500_port->uart, VT8500_URFCR) & 0xc) in vt8500_set_termios()
402 vt8500_port->ier = RX_FIFO_INTS | TX_FIFO_INTS; in vt8500_set_termios()
407 if (UART_ENABLE_MS(&vt8500_port->uart, termios->c_cflag)) in vt8500_set_termios()
408 vt8500_port->ier |= TCTS; in vt8500_set_termios()
410 vt8500_write(&vt8500_port->uart, 0x881, VT8500_URFCR); in vt8500_set_termios()
411 vt8500_write(&vt8500_port->uart, vt8500_port->ier, VT8500_URIER); in vt8500_set_termios()
418 struct vt8500_port *vt8500_port = in vt8500_type() local
419 container_of(port, struct vt8500_port, uart); in vt8500_type()
420 return vt8500_port->name; in vt8500_type()
447 static struct vt8500_port *vt8500_uart_ports[VT8500_MAX_PORTS];
475 struct vt8500_port *vt8500_port = vt8500_uart_ports[co->index]; in vt8500_console_write() local
480 ier = vt8500_read(&vt8500_port->uart, VT8500_URIER); in vt8500_console_write()
481 vt8500_write(&vt8500_port->uart, VT8500_URIER, 0); in vt8500_console_write()
483 uart_console_write(&vt8500_port->uart, s, count, in vt8500_console_write()
490 wait_for_xmitr(&vt8500_port->uart); in vt8500_console_write()
491 vt8500_write(&vt8500_port->uart, VT8500_URIER, ier); in vt8500_console_write()
496 struct vt8500_port *vt8500_port; in vt8500_console_setup() local
505 vt8500_port = vt8500_uart_ports[co->index]; in vt8500_console_setup()
507 if (!vt8500_port) in vt8500_console_setup()
513 return uart_set_options(&vt8500_port->uart, in vt8500_console_setup()
602 struct vt8500_port *vt8500_port; in vt8500_serial_probe() local
641 vt8500_port = devm_kzalloc(&pdev->dev, sizeof(struct vt8500_port), in vt8500_serial_probe()
643 if (!vt8500_port) in vt8500_serial_probe()
646 vt8500_port->uart.membase = devm_platform_get_and_ioremap_resource(pdev, 0, &mmres); in vt8500_serial_probe()
647 if (IS_ERR(vt8500_port->uart.membase)) in vt8500_serial_probe()
648 return PTR_ERR(vt8500_port->uart.membase); in vt8500_serial_probe()
650 vt8500_port->clk = of_clk_get(pdev->dev.of_node, 0); in vt8500_serial_probe()
651 if (IS_ERR(vt8500_port->clk)) { in vt8500_serial_probe()
656 ret = clk_prepare_enable(vt8500_port->clk); in vt8500_serial_probe()
662 vt8500_port->vt8500_uart_flags = *flags; in vt8500_serial_probe()
663 vt8500_port->clk_predivisor = DIV_ROUND_CLOSEST( in vt8500_serial_probe()
664 clk_get_rate(vt8500_port->clk), in vt8500_serial_probe()
667 vt8500_port->uart.type = PORT_VT8500; in vt8500_serial_probe()
668 vt8500_port->uart.iotype = UPIO_MEM; in vt8500_serial_probe()
669 vt8500_port->uart.mapbase = mmres->start; in vt8500_serial_probe()
670 vt8500_port->uart.irq = irq; in vt8500_serial_probe()
671 vt8500_port->uart.fifosize = 16; in vt8500_serial_probe()
672 vt8500_port->uart.ops = &vt8500_uart_pops; in vt8500_serial_probe()
673 vt8500_port->uart.line = port; in vt8500_serial_probe()
674 vt8500_port->uart.dev = &pdev->dev; in vt8500_serial_probe()
675 vt8500_port->uart.flags = UPF_IOREMAP | UPF_BOOT_AUTOCONF; in vt8500_serial_probe()
676 vt8500_port->uart.has_sysrq = IS_ENABLED(CONFIG_SERIAL_VT8500_CONSOLE); in vt8500_serial_probe()
679 vt8500_port->uart.uartclk = 16 * clk_get_rate(vt8500_port->clk) / in vt8500_serial_probe()
680 vt8500_port->clk_predivisor / in vt8500_serial_probe()
683 snprintf(vt8500_port->name, sizeof(vt8500_port->name), in vt8500_serial_probe()
686 vt8500_uart_ports[port] = vt8500_port; in vt8500_serial_probe()
688 uart_add_one_port(&vt8500_uart_driver, &vt8500_port->uart); in vt8500_serial_probe()
690 platform_set_drvdata(pdev, vt8500_port); in vt8500_serial_probe()