Lines Matching defs:uport
100 #define to_sport(uport) container_of(uport, struct sbd_port, port)
232 static unsigned int sbd_tx_empty(struct uart_port *uport)
234 struct sbd_port *sport = to_sport(uport);
239 static unsigned int sbd_get_mctrl(struct uart_port *uport)
241 struct sbd_port *sport = to_sport(uport);
245 status >>= (uport->line) % 2;
253 static void sbd_set_mctrl(struct uart_port *uport, unsigned int mctrl)
255 struct sbd_port *sport = to_sport(uport);
266 clr <<= (uport->line) % 2;
267 set <<= (uport->line) % 2;
281 static void sbd_stop_tx(struct uart_port *uport)
283 struct sbd_port *sport = to_sport(uport);
289 static void sbd_start_tx(struct uart_port *uport)
291 struct sbd_port *sport = to_sport(uport);
295 mask = read_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2));
297 write_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2), mask);
304 static void sbd_stop_rx(struct uart_port *uport)
306 struct sbd_port *sport = to_sport(uport);
308 write_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2), 0);
311 static void sbd_enable_ms(struct uart_port *uport)
313 struct sbd_port *sport = to_sport(uport);
319 static void sbd_break_ctl(struct uart_port *uport, int break_state)
321 struct sbd_port *sport = to_sport(uport);
332 struct uart_port *uport = &sport->port;
347 icount = &uport->icount;
355 if (uart_handle_break(uport))
364 status &= uport->read_status_mask;
373 if (uart_handle_sysrq_char(uport, ch))
376 uart_insert_char(uport, status, M_DUART_OVRUN_ERR, ch, flag);
379 tty_flip_buffer_push(&uport->state->port);
384 struct uart_port *uport = &sport->port;
412 mask = read_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2));
414 write_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2), mask);
420 struct uart_port *uport = &sport->port;
423 delta = read_sbdshr(sport, R_DUART_INCHREG((uport->line) % 2));
424 delta >>= (uport->line) % 2;
427 uart_handle_cts_change(uport, !(delta & M_DUART_IN_PIN0_VAL));
430 uport->icount.dsr++;
434 wake_up_interruptible(&uport->state->port.delta_msr_wait);
440 struct uart_port *uport = &sport->port;
447 R_DUART_ISRREG((uport->line) % 2));
449 R_DUART_IMRREG((uport->line) % 2));
468 static int sbd_startup(struct uart_port *uport)
470 struct sbd_port *sport = to_sport(uport);
484 read_sbdshr(sport, R_DUART_INCHREG((uport->line) % 2));
496 write_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2),
502 static void sbd_shutdown(struct uart_port *uport)
504 struct sbd_port *sport = to_sport(uport);
514 struct uart_port *uport = &sport->port;
528 write_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2), 0);
533 static void sbd_set_termios(struct uart_port *uport, struct ktermios *termios,
536 struct sbd_port *sport = to_sport(uport);
578 baud = uart_get_baud_rate(uport, termios, old_termios, 1200, 5000000);
584 uart_update_timeout(uport, termios->c_cflag, baud);
586 uport->read_status_mask = M_DUART_OVRUN_ERR;
588 uport->read_status_mask |= M_DUART_FRM_ERR |
591 uport->read_status_mask |= M_DUART_RCVD_BRK;
593 uport->ignore_status_mask = 0;
595 uport->ignore_status_mask |= M_DUART_FRM_ERR |
598 uport->ignore_status_mask |= M_DUART_RCVD_BRK;
600 uport->ignore_status_mask |= M_DUART_OVRUN_ERR;
613 spin_lock(&uport->lock);
635 spin_unlock(&uport->lock);
639 static const char *sbd_type(struct uart_port *uport)
644 static void sbd_release_port(struct uart_port *uport)
646 struct sbd_port *sport = to_sport(uport);
651 iounmap(uport->membase);
652 uport->membase = NULL;
656 release_mem_region(uport->mapbase, DUART_CHANREG_SPACING);
659 static int sbd_map_port(struct uart_port *uport)
662 struct sbd_port *sport = to_sport(uport);
665 if (!uport->membase)
666 uport->membase = ioremap(uport->mapbase,
668 if (!uport->membase) {
678 iounmap(uport->membase);
679 uport->membase = NULL;
686 static int sbd_request_port(struct uart_port *uport)
689 struct sbd_duart *duart = to_sport(uport)->duart;
692 if (!request_mem_region(uport->mapbase, DUART_CHANREG_SPACING,
707 ret = sbd_map_port(uport);
715 release_mem_region(uport->mapbase, DUART_CHANREG_SPACING);
721 static void sbd_config_port(struct uart_port *uport, int flags)
723 struct sbd_port *sport = to_sport(uport);
726 if (sbd_request_port(uport))
729 uport->type = PORT_SB1250_DUART;
735 static int sbd_verify_port(struct uart_port *uport, struct serial_struct *ser)
741 if (ser->irq != uport->irq)
743 if (ser->baud_base != uport->uartclk / 16)
799 struct uart_port *uport = &sport->port;
803 uport->irq = SBD_INT(line);
804 uport->uartclk = 100000000 / 20 * 16;
805 uport->fifosize = 16;
806 uport->iotype = UPIO_MEM;
807 uport->flags = UPF_BOOT_AUTOCONF;
808 uport->ops = &sbd_ops;
809 uport->line = line;
810 uport->mapbase = SBD_CHANREGS(line);
811 uport->has_sysrq = IS_ENABLED(CONFIG_SERIAL_SB1250_DUART_CONSOLE);
823 static void sbd_console_putchar(struct uart_port *uport, unsigned char ch)
825 struct sbd_port *sport = to_sport(uport);
837 struct uart_port *uport = &sport->port;
842 spin_lock_irqsave(&uport->lock, flags);
843 mask = read_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2));
844 write_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2),
847 spin_unlock_irqrestore(&uport->lock, flags);
852 spin_lock_irqsave(&uport->lock, flags);
856 write_sbdshr(sport, R_DUART_IMRREG((uport->line) % 2), mask);
857 spin_unlock_irqrestore(&uport->lock, flags);
865 struct uart_port *uport = &sport->port;
875 ret = sbd_map_port(uport);
883 return uart_set_options(uport, co, baud, parity, bits, flow);
937 struct uart_port *uport = &sport->port;
940 uart_add_one_port(&sbd_reg, uport);
954 struct uart_port *uport = &sport->port;
957 uart_remove_one_port(&sbd_reg, uport);