Lines Matching refs:sport
60 #define UART_GET_UTCR0(sport) __raw_readl((sport)->port.membase + UTCR0) argument
61 #define UART_GET_UTCR1(sport) __raw_readl((sport)->port.membase + UTCR1) argument
62 #define UART_GET_UTCR2(sport) __raw_readl((sport)->port.membase + UTCR2) argument
63 #define UART_GET_UTCR3(sport) __raw_readl((sport)->port.membase + UTCR3) argument
64 #define UART_GET_UTSR0(sport) __raw_readl((sport)->port.membase + UTSR0) argument
65 #define UART_GET_UTSR1(sport) __raw_readl((sport)->port.membase + UTSR1) argument
66 #define UART_GET_CHAR(sport) __raw_readl((sport)->port.membase + UTDR) argument
68 #define UART_PUT_UTCR0(sport,v) __raw_writel((v),(sport)->port.membase + UTCR0) argument
69 #define UART_PUT_UTCR1(sport,v) __raw_writel((v),(sport)->port.membase + UTCR1) argument
70 #define UART_PUT_UTCR2(sport,v) __raw_writel((v),(sport)->port.membase + UTCR2) argument
71 #define UART_PUT_UTCR3(sport,v) __raw_writel((v),(sport)->port.membase + UTCR3) argument
72 #define UART_PUT_UTSR0(sport,v) __raw_writel((v),(sport)->port.membase + UTSR0) argument
73 #define UART_PUT_UTSR1(sport,v) __raw_writel((v),(sport)->port.membase + UTSR1) argument
74 #define UART_PUT_CHAR(sport,v) __raw_writel((v),(sport)->port.membase + UTDR) argument
98 static void sa1100_mctrl_check(struct sa1100_port *sport) in sa1100_mctrl_check() argument
102 status = sport->port.ops->get_mctrl(&sport->port); in sa1100_mctrl_check()
103 changed = status ^ sport->old_status; in sa1100_mctrl_check()
108 sport->old_status = status; in sa1100_mctrl_check()
111 sport->port.icount.rng++; in sa1100_mctrl_check()
113 sport->port.icount.dsr++; in sa1100_mctrl_check()
115 uart_handle_dcd_change(&sport->port, status & TIOCM_CAR); in sa1100_mctrl_check()
117 uart_handle_cts_change(&sport->port, status & TIOCM_CTS); in sa1100_mctrl_check()
119 wake_up_interruptible(&sport->port.state->port.delta_msr_wait); in sa1100_mctrl_check()
128 struct sa1100_port *sport = (struct sa1100_port *)data; in sa1100_timeout() local
131 if (sport->port.state) { in sa1100_timeout()
132 spin_lock_irqsave(&sport->port.lock, flags); in sa1100_timeout()
133 sa1100_mctrl_check(sport); in sa1100_timeout()
134 spin_unlock_irqrestore(&sport->port.lock, flags); in sa1100_timeout()
136 mod_timer(&sport->timer, jiffies + MCTRL_TIMEOUT); in sa1100_timeout()
145 struct sa1100_port *sport = in sa1100_stop_tx() local
149 utcr3 = UART_GET_UTCR3(sport); in sa1100_stop_tx()
150 UART_PUT_UTCR3(sport, utcr3 & ~UTCR3_TIE); in sa1100_stop_tx()
151 sport->port.read_status_mask &= ~UTSR0_TO_SM(UTSR0_TFS); in sa1100_stop_tx()
159 struct sa1100_port *sport = in sa1100_start_tx() local
163 utcr3 = UART_GET_UTCR3(sport); in sa1100_start_tx()
164 sport->port.read_status_mask |= UTSR0_TO_SM(UTSR0_TFS); in sa1100_start_tx()
165 UART_PUT_UTCR3(sport, utcr3 | UTCR3_TIE); in sa1100_start_tx()
173 struct sa1100_port *sport = in sa1100_stop_rx() local
177 utcr3 = UART_GET_UTCR3(sport); in sa1100_stop_rx()
178 UART_PUT_UTCR3(sport, utcr3 & ~UTCR3_RIE); in sa1100_stop_rx()
186 struct sa1100_port *sport = in sa1100_enable_ms() local
189 mod_timer(&sport->timer, jiffies); in sa1100_enable_ms()
193 sa1100_rx_chars(struct sa1100_port *sport) in sa1100_rx_chars() argument
197 status = UTSR1_TO_SM(UART_GET_UTSR1(sport)) | in sa1100_rx_chars()
198 UTSR0_TO_SM(UART_GET_UTSR0(sport)); in sa1100_rx_chars()
200 ch = UART_GET_CHAR(sport); in sa1100_rx_chars()
202 sport->port.icount.rx++; in sa1100_rx_chars()
212 sport->port.icount.parity++; in sa1100_rx_chars()
214 sport->port.icount.frame++; in sa1100_rx_chars()
216 sport->port.icount.overrun++; in sa1100_rx_chars()
218 status &= sport->port.read_status_mask; in sa1100_rx_chars()
226 sport->port.sysrq = 0; in sa1100_rx_chars()
230 if (uart_handle_sysrq_char(&sport->port, ch)) in sa1100_rx_chars()
233 uart_insert_char(&sport->port, status, UTSR1_TO_SM(UTSR1_ROR), ch, flg); in sa1100_rx_chars()
236 status = UTSR1_TO_SM(UART_GET_UTSR1(sport)) | in sa1100_rx_chars()
237 UTSR0_TO_SM(UART_GET_UTSR0(sport)); in sa1100_rx_chars()
240 spin_unlock(&sport->port.lock); in sa1100_rx_chars()
241 tty_flip_buffer_push(&sport->port.state->port); in sa1100_rx_chars()
242 spin_lock(&sport->port.lock); in sa1100_rx_chars()
245 static void sa1100_tx_chars(struct sa1100_port *sport) in sa1100_tx_chars() argument
247 struct circ_buf *xmit = &sport->port.state->xmit; in sa1100_tx_chars()
249 if (sport->port.x_char) { in sa1100_tx_chars()
250 UART_PUT_CHAR(sport, sport->port.x_char); in sa1100_tx_chars()
251 sport->port.icount.tx++; in sa1100_tx_chars()
252 sport->port.x_char = 0; in sa1100_tx_chars()
260 sa1100_mctrl_check(sport); in sa1100_tx_chars()
262 if (uart_circ_empty(xmit) || uart_tx_stopped(&sport->port)) { in sa1100_tx_chars()
263 sa1100_stop_tx(&sport->port); in sa1100_tx_chars()
271 while (UART_GET_UTSR1(sport) & UTSR1_TNF) { in sa1100_tx_chars()
272 UART_PUT_CHAR(sport, xmit->buf[xmit->tail]); in sa1100_tx_chars()
274 sport->port.icount.tx++; in sa1100_tx_chars()
280 uart_write_wakeup(&sport->port); in sa1100_tx_chars()
283 sa1100_stop_tx(&sport->port); in sa1100_tx_chars()
288 struct sa1100_port *sport = dev_id; in sa1100_int() local
291 spin_lock(&sport->port.lock); in sa1100_int()
292 status = UART_GET_UTSR0(sport); in sa1100_int()
293 status &= SM_TO_UTSR0(sport->port.read_status_mask) | ~UTSR0_TFS; in sa1100_int()
298 UART_PUT_UTSR0(sport, UTSR0_RID); in sa1100_int()
299 sa1100_rx_chars(sport); in sa1100_int()
304 UART_PUT_UTSR0(sport, status & (UTSR0_RBB | UTSR0_REB)); in sa1100_int()
307 sport->port.icount.brk++; in sa1100_int()
310 uart_handle_break(&sport->port); in sa1100_int()
313 sa1100_tx_chars(sport); in sa1100_int()
316 status = UART_GET_UTSR0(sport); in sa1100_int()
317 status &= SM_TO_UTSR0(sport->port.read_status_mask) | in sa1100_int()
320 spin_unlock(&sport->port.lock); in sa1100_int()
330 struct sa1100_port *sport = in sa1100_tx_empty() local
333 return UART_GET_UTSR1(sport) & UTSR1_TBY ? 0 : TIOCSER_TEMT; in sa1100_tx_empty()
350 struct sa1100_port *sport = in sa1100_break_ctl() local
355 spin_lock_irqsave(&sport->port.lock, flags); in sa1100_break_ctl()
356 utcr3 = UART_GET_UTCR3(sport); in sa1100_break_ctl()
361 UART_PUT_UTCR3(sport, utcr3); in sa1100_break_ctl()
362 spin_unlock_irqrestore(&sport->port.lock, flags); in sa1100_break_ctl()
367 struct sa1100_port *sport = in sa1100_startup() local
374 retval = request_irq(sport->port.irq, sa1100_int, 0, in sa1100_startup()
375 "sa11x0-uart", sport); in sa1100_startup()
382 UART_PUT_UTSR0(sport, -1); in sa1100_startup()
383 UART_PUT_UTCR3(sport, UTCR3_RXE | UTCR3_TXE | UTCR3_RIE); in sa1100_startup()
388 spin_lock_irq(&sport->port.lock); in sa1100_startup()
389 sa1100_enable_ms(&sport->port); in sa1100_startup()
390 spin_unlock_irq(&sport->port.lock); in sa1100_startup()
397 struct sa1100_port *sport = in sa1100_shutdown() local
403 del_timer_sync(&sport->timer); in sa1100_shutdown()
408 free_irq(sport->port.irq, sport); in sa1100_shutdown()
413 UART_PUT_UTCR3(sport, 0); in sa1100_shutdown()
420 struct sa1100_port *sport = in sa1100_set_termios() local
455 spin_lock_irqsave(&sport->port.lock, flags); in sa1100_set_termios()
457 sport->port.read_status_mask &= UTSR0_TO_SM(UTSR0_TFS); in sa1100_set_termios()
458 sport->port.read_status_mask |= UTSR1_TO_SM(UTSR1_ROR); in sa1100_set_termios()
460 sport->port.read_status_mask |= in sa1100_set_termios()
463 sport->port.read_status_mask |= in sa1100_set_termios()
469 sport->port.ignore_status_mask = 0; in sa1100_set_termios()
471 sport->port.ignore_status_mask |= in sa1100_set_termios()
474 sport->port.ignore_status_mask |= in sa1100_set_termios()
481 sport->port.ignore_status_mask |= in sa1100_set_termios()
485 del_timer_sync(&sport->timer); in sa1100_set_termios()
495 old_utcr3 = UART_GET_UTCR3(sport); in sa1100_set_termios()
496 UART_PUT_UTCR3(sport, old_utcr3 & ~(UTCR3_RIE | UTCR3_TIE)); in sa1100_set_termios()
498 while (UART_GET_UTSR1(sport) & UTSR1_TBY) in sa1100_set_termios()
502 UART_PUT_UTCR3(sport, 0); in sa1100_set_termios()
505 UART_PUT_UTCR0(sport, utcr0); in sa1100_set_termios()
509 UART_PUT_UTCR1(sport, ((quot & 0xf00) >> 8)); in sa1100_set_termios()
510 UART_PUT_UTCR2(sport, (quot & 0xff)); in sa1100_set_termios()
512 UART_PUT_UTSR0(sport, -1); in sa1100_set_termios()
514 UART_PUT_UTCR3(sport, old_utcr3); in sa1100_set_termios()
516 if (UART_ENABLE_MS(&sport->port, termios->c_cflag)) in sa1100_set_termios()
517 sa1100_enable_ms(&sport->port); in sa1100_set_termios()
519 spin_unlock_irqrestore(&sport->port.lock, flags); in sa1100_set_termios()
524 struct sa1100_port *sport = in sa1100_type() local
527 return sport->port.type == PORT_SA1100 ? "SA1100" : NULL; in sa1100_type()
535 struct sa1100_port *sport = in sa1100_release_port() local
538 release_mem_region(sport->port.mapbase, UART_PORT_SIZE); in sa1100_release_port()
546 struct sa1100_port *sport = in sa1100_request_port() local
549 return request_mem_region(sport->port.mapbase, UART_PORT_SIZE, in sa1100_request_port()
558 struct sa1100_port *sport = in sa1100_config_port() local
562 sa1100_request_port(&sport->port) == 0) in sa1100_config_port()
563 sport->port.type = PORT_SA1100; in sa1100_config_port()
574 struct sa1100_port *sport = in sa1100_verify_port() local
580 if (sport->port.irq != ser->irq) in sa1100_verify_port()
584 if (sport->port.uartclk / 16 != ser->baud_base) in sa1100_verify_port()
586 if ((void *)sport->port.mapbase != ser->iomem_base) in sa1100_verify_port()
588 if (sport->port.iobase != ser->port) in sa1100_verify_port()
708 struct sa1100_port *sport = in sa1100_console_putchar() local
711 while (!(UART_GET_UTSR1(sport) & UTSR1_TNF)) in sa1100_console_putchar()
713 UART_PUT_CHAR(sport, ch); in sa1100_console_putchar()
722 struct sa1100_port *sport = &sa1100_ports[co->index]; in sa1100_console_write() local
728 old_utcr3 = UART_GET_UTCR3(sport); in sa1100_console_write()
729 UART_PUT_UTCR3(sport, (old_utcr3 & ~(UTCR3_RIE | UTCR3_TIE)) | in sa1100_console_write()
732 uart_console_write(&sport->port, s, count, sa1100_console_putchar); in sa1100_console_write()
739 status = UART_GET_UTSR1(sport); in sa1100_console_write()
741 UART_PUT_UTCR3(sport, old_utcr3); in sa1100_console_write()
749 sa1100_console_get_options(struct sa1100_port *sport, int *baud, in sa1100_console_get_options() argument
754 utcr3 = UART_GET_UTCR3(sport) & (UTCR3_RXE | UTCR3_TXE); in sa1100_console_get_options()
759 utcr0 = UART_GET_UTCR0(sport); in sa1100_console_get_options()
774 quot = UART_GET_UTCR2(sport) | UART_GET_UTCR1(sport) << 8; in sa1100_console_get_options()
776 *baud = sport->port.uartclk / (16 * (quot + 1)); in sa1100_console_get_options()
783 struct sa1100_port *sport; in sa1100_console_setup() local
796 sport = &sa1100_ports[co->index]; in sa1100_console_setup()
801 sa1100_console_get_options(sport, &baud, &parity, &bits); in sa1100_console_setup()
803 return uart_set_options(&sport->port, co, baud, parity, bits, flow); in sa1100_console_setup()
842 struct sa1100_port *sport = platform_get_drvdata(dev); in sa1100_serial_suspend() local
844 if (sport) in sa1100_serial_suspend()
845 uart_suspend_port(&sa1100_reg, &sport->port); in sa1100_serial_suspend()
852 struct sa1100_port *sport = platform_get_drvdata(dev); in sa1100_serial_resume() local
854 if (sport) in sa1100_serial_resume()
855 uart_resume_port(&sa1100_reg, &sport->port); in sa1100_serial_resume()
886 struct sa1100_port *sport = platform_get_drvdata(pdev); in sa1100_serial_remove() local
888 if (sport) in sa1100_serial_remove()
889 uart_remove_one_port(&sa1100_reg, &sport->port); in sa1100_serial_remove()