Lines Matching refs:sport
45 #define UART_GET_UTCR0(sport) __raw_readl((sport)->port.membase + UTCR0)
46 #define UART_GET_UTCR1(sport) __raw_readl((sport)->port.membase + UTCR1)
47 #define UART_GET_UTCR2(sport) __raw_readl((sport)->port.membase + UTCR2)
48 #define UART_GET_UTCR3(sport) __raw_readl((sport)->port.membase + UTCR3)
49 #define UART_GET_UTSR0(sport) __raw_readl((sport)->port.membase + UTSR0)
50 #define UART_GET_UTSR1(sport) __raw_readl((sport)->port.membase + UTSR1)
51 #define UART_GET_CHAR(sport) __raw_readl((sport)->port.membase + UTDR)
53 #define UART_PUT_UTCR0(sport,v) __raw_writel((v),(sport)->port.membase + UTCR0)
54 #define UART_PUT_UTCR1(sport,v) __raw_writel((v),(sport)->port.membase + UTCR1)
55 #define UART_PUT_UTCR2(sport,v) __raw_writel((v),(sport)->port.membase + UTCR2)
56 #define UART_PUT_UTCR3(sport,v) __raw_writel((v),(sport)->port.membase + UTCR3)
57 #define UART_PUT_UTSR0(sport,v) __raw_writel((v),(sport)->port.membase + UTSR0)
58 #define UART_PUT_UTSR1(sport,v) __raw_writel((v),(sport)->port.membase + UTSR1)
59 #define UART_PUT_CHAR(sport,v) __raw_writel((v),(sport)->port.membase + UTDR)
84 static void sa1100_mctrl_check(struct sa1100_port *sport)
88 status = sport->port.ops->get_mctrl(&sport->port);
89 changed = status ^ sport->old_status;
94 sport->old_status = status;
97 sport->port.icount.rng++;
99 sport->port.icount.dsr++;
101 uart_handle_dcd_change(&sport->port, status & TIOCM_CAR);
103 uart_handle_cts_change(&sport->port, status & TIOCM_CTS);
105 wake_up_interruptible(&sport->port.state->port.delta_msr_wait);
114 struct sa1100_port *sport = from_timer(sport, t, timer);
117 if (sport->port.state) {
118 spin_lock_irqsave(&sport->port.lock, flags);
119 sa1100_mctrl_check(sport);
120 spin_unlock_irqrestore(&sport->port.lock, flags);
122 mod_timer(&sport->timer, jiffies + MCTRL_TIMEOUT);
131 struct sa1100_port *sport =
135 utcr3 = UART_GET_UTCR3(sport);
136 UART_PUT_UTCR3(sport, utcr3 & ~UTCR3_TIE);
137 sport->port.read_status_mask &= ~UTSR0_TO_SM(UTSR0_TFS);
145 struct sa1100_port *sport =
149 utcr3 = UART_GET_UTCR3(sport);
150 sport->port.read_status_mask |= UTSR0_TO_SM(UTSR0_TFS);
151 UART_PUT_UTCR3(sport, utcr3 | UTCR3_TIE);
159 struct sa1100_port *sport =
163 utcr3 = UART_GET_UTCR3(sport);
164 UART_PUT_UTCR3(sport, utcr3 & ~UTCR3_RIE);
172 struct sa1100_port *sport =
175 mod_timer(&sport->timer, jiffies);
177 mctrl_gpio_enable_ms(sport->gpios);
181 sa1100_rx_chars(struct sa1100_port *sport)
185 status = UTSR1_TO_SM(UART_GET_UTSR1(sport)) |
186 UTSR0_TO_SM(UART_GET_UTSR0(sport));
188 ch = UART_GET_CHAR(sport);
190 sport->port.icount.rx++;
200 sport->port.icount.parity++;
202 sport->port.icount.frame++;
204 sport->port.icount.overrun++;
206 status &= sport->port.read_status_mask;
213 sport->port.sysrq = 0;
216 if (uart_handle_sysrq_char(&sport->port, ch))
219 uart_insert_char(&sport->port, status, UTSR1_TO_SM(UTSR1_ROR), ch, flg);
222 status = UTSR1_TO_SM(UART_GET_UTSR1(sport)) |
223 UTSR0_TO_SM(UART_GET_UTSR0(sport));
226 spin_unlock(&sport->port.lock);
227 tty_flip_buffer_push(&sport->port.state->port);
228 spin_lock(&sport->port.lock);
231 static void sa1100_tx_chars(struct sa1100_port *sport)
233 struct circ_buf *xmit = &sport->port.state->xmit;
235 if (sport->port.x_char) {
236 UART_PUT_CHAR(sport, sport->port.x_char);
237 sport->port.icount.tx++;
238 sport->port.x_char = 0;
246 sa1100_mctrl_check(sport);
248 if (uart_circ_empty(xmit) || uart_tx_stopped(&sport->port)) {
249 sa1100_stop_tx(&sport->port);
257 while (UART_GET_UTSR1(sport) & UTSR1_TNF) {
258 UART_PUT_CHAR(sport, xmit->buf[xmit->tail]);
260 sport->port.icount.tx++;
266 uart_write_wakeup(&sport->port);
269 sa1100_stop_tx(&sport->port);
274 struct sa1100_port *sport = dev_id;
277 spin_lock(&sport->port.lock);
278 status = UART_GET_UTSR0(sport);
279 status &= SM_TO_UTSR0(sport->port.read_status_mask) | ~UTSR0_TFS;
284 UART_PUT_UTSR0(sport, UTSR0_RID);
285 sa1100_rx_chars(sport);
290 UART_PUT_UTSR0(sport, status & (UTSR0_RBB | UTSR0_REB));
293 sport->port.icount.brk++;
296 uart_handle_break(&sport->port);
299 sa1100_tx_chars(sport);
302 status = UART_GET_UTSR0(sport);
303 status &= SM_TO_UTSR0(sport->port.read_status_mask) |
306 spin_unlock(&sport->port.lock);
316 struct sa1100_port *sport =
319 return UART_GET_UTSR1(sport) & UTSR1_TBY ? 0 : TIOCSER_TEMT;
324 struct sa1100_port *sport =
328 mctrl_gpio_get(sport->gpios, &ret);
335 struct sa1100_port *sport =
338 mctrl_gpio_set(sport->gpios, mctrl);
346 struct sa1100_port *sport =
351 spin_lock_irqsave(&sport->port.lock, flags);
352 utcr3 = UART_GET_UTCR3(sport);
357 UART_PUT_UTCR3(sport, utcr3);
358 spin_unlock_irqrestore(&sport->port.lock, flags);
363 struct sa1100_port *sport =
370 retval = request_irq(sport->port.irq, sa1100_int, 0,
371 "sa11x0-uart", sport);
378 UART_PUT_UTSR0(sport, -1);
379 UART_PUT_UTCR3(sport, UTCR3_RXE | UTCR3_TXE | UTCR3_RIE);
384 spin_lock_irq(&sport->port.lock);
385 sa1100_enable_ms(&sport->port);
386 spin_unlock_irq(&sport->port.lock);
393 struct sa1100_port *sport =
399 del_timer_sync(&sport->timer);
404 free_irq(sport->port.irq, sport);
409 UART_PUT_UTCR3(sport, 0);
416 struct sa1100_port *sport =
451 del_timer_sync(&sport->timer);
453 spin_lock_irqsave(&sport->port.lock, flags);
455 sport->port.read_status_mask &= UTSR0_TO_SM(UTSR0_TFS);
456 sport->port.read_status_mask |= UTSR1_TO_SM(UTSR1_ROR);
458 sport->port.read_status_mask |=
461 sport->port.read_status_mask |=
467 sport->port.ignore_status_mask = 0;
469 sport->port.ignore_status_mask |=
472 sport->port.ignore_status_mask |=
479 sport->port.ignore_status_mask |=
491 old_utcr3 = UART_GET_UTCR3(sport);
492 UART_PUT_UTCR3(sport, old_utcr3 & ~(UTCR3_RIE | UTCR3_TIE));
494 while (UART_GET_UTSR1(sport) & UTSR1_TBY)
498 UART_PUT_UTCR3(sport, 0);
501 UART_PUT_UTCR0(sport, utcr0);
505 UART_PUT_UTCR1(sport, ((quot & 0xf00) >> 8));
506 UART_PUT_UTCR2(sport, (quot & 0xff));
508 UART_PUT_UTSR0(sport, -1);
510 UART_PUT_UTCR3(sport, old_utcr3);
512 if (UART_ENABLE_MS(&sport->port, termios->c_cflag))
513 sa1100_enable_ms(&sport->port);
515 spin_unlock_irqrestore(&sport->port.lock, flags);
520 struct sa1100_port *sport =
523 return sport->port.type == PORT_SA1100 ? "SA1100" : NULL;
531 struct sa1100_port *sport =
534 release_mem_region(sport->port.mapbase, UART_PORT_SIZE);
542 struct sa1100_port *sport =
545 return request_mem_region(sport->port.mapbase, UART_PORT_SIZE,
554 struct sa1100_port *sport =
558 sa1100_request_port(&sport->port) == 0)
559 sport->port.type = PORT_SA1100;
570 struct sa1100_port *sport =
576 if (sport->port.irq != ser->irq)
580 if (sport->port.uartclk / 16 != ser->baud_base)
582 if ((void *)sport->port.mapbase != ser->iomem_base)
584 if (sport->port.iobase != ser->port)
702 struct sa1100_port *sport =
705 while (!(UART_GET_UTSR1(sport) & UTSR1_TNF))
707 UART_PUT_CHAR(sport, ch);
716 struct sa1100_port *sport = &sa1100_ports[co->index];
722 old_utcr3 = UART_GET_UTCR3(sport);
723 UART_PUT_UTCR3(sport, (old_utcr3 & ~(UTCR3_RIE | UTCR3_TIE)) |
726 uart_console_write(&sport->port, s, count, sa1100_console_putchar);
733 status = UART_GET_UTSR1(sport);
735 UART_PUT_UTCR3(sport, old_utcr3);
743 sa1100_console_get_options(struct sa1100_port *sport, int *baud,
748 utcr3 = UART_GET_UTCR3(sport) & (UTCR3_RXE | UTCR3_TXE);
753 utcr0 = UART_GET_UTCR0(sport);
768 quot = UART_GET_UTCR2(sport) | UART_GET_UTCR1(sport) << 8;
770 *baud = sport->port.uartclk / (16 * (quot + 1));
777 struct sa1100_port *sport;
790 sport = &sa1100_ports[co->index];
795 sa1100_console_get_options(sport, &baud, &parity, &bits);
797 return uart_set_options(&sport->port, co, baud, parity, bits, flow);
836 struct sa1100_port *sport = platform_get_drvdata(dev);
838 if (sport)
839 uart_suspend_port(&sa1100_reg, &sport->port);
846 struct sa1100_port *sport = platform_get_drvdata(dev);
848 if (sport)
849 uart_resume_port(&sa1100_reg, &sport->port);
854 static int sa1100_serial_add_one_port(struct sa1100_port *sport, struct platform_device *dev)
856 sport->port.dev = &dev->dev;
857 sport->port.has_sysrq = IS_ENABLED(CONFIG_SERIAL_SA1100_CONSOLE);
862 sport->gpios = mctrl_gpio_init_noauto(sport->port.dev, 0);
863 if (IS_ERR(sport->gpios)) {
864 int err = PTR_ERR(sport->gpios);
866 dev_err(sport->port.dev, "failed to get mctrl gpios: %d\n",
872 sport->gpios = NULL;
875 platform_set_drvdata(dev, sport);
877 return uart_add_one_port(&sa1100_reg, &sport->port);
902 struct sa1100_port *sport = platform_get_drvdata(pdev);
904 if (sport)
905 uart_remove_one_port(&sa1100_reg, &sport->port);