Lines Matching refs:up

105 #define MA35_ISR_WK_IF		BIT(6)  /* UART Wake-up Interrupt Flag */
189 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
191 __stop_tx(up);
194 static void transmit_chars(struct uart_ma35d1_port *up)
199 if (uart_tx_stopped(&up->port)) {
200 ma35d1serial_stop_tx(&up->port);
204 serial_in(up, MA35_FSR_REG));
205 uart_port_tx_limited(&up->port, ch, count,
206 !(serial_in(up, MA35_FSR_REG) & MA35_FSR_TX_FULL),
207 serial_out(up, MA35_THR_REG, ch),
213 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
216 ier = serial_in(up, MA35_IER_REG);
217 serial_out(up, MA35_IER_REG, ier & ~MA35_IER_THRE_IEN);
218 transmit_chars(up);
219 serial_out(up, MA35_IER_REG, ier | MA35_IER_THRE_IEN);
224 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
227 ier = serial_in(up, MA35_IER_REG);
229 serial_out(up, MA35_IER_REG, ier);
232 static void receive_chars(struct uart_ma35d1_port *up)
238 fsr = serial_in(up, MA35_FSR_REG);
241 up->port.icount.rx++;
246 up->port.icount.brk++;
247 if (uart_handle_break(&up->port))
251 up->port.icount.frame++;
253 up->port.icount.parity++;
255 up->port.icount.overrun++;
257 serial_out(up, MA35_FSR_REG,
268 ch = serial_in(up, MA35_RBR_REG);
269 if (uart_handle_sysrq_char(&up->port, ch))
272 uart_port_lock(&up->port);
273 uart_insert_char(&up->port, fsr, MA35_FSR_RX_OVER_IF, ch, flag);
274 uart_port_unlock(&up->port);
276 fsr = serial_in(up, MA35_FSR_REG);
279 uart_port_lock(&up->port);
280 tty_flip_buffer_push(&up->port.state->port);
281 uart_port_unlock(&up->port);
287 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
290 isr = serial_in(up, MA35_ISR_REG);
291 fsr = serial_in(up, MA35_FSR_REG);
297 receive_chars(up);
299 transmit_chars(up);
301 serial_out(up, MA35_FSR_REG, MA35_FSR_TX_OVER_IF);
308 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
311 fsr = serial_in(up, MA35_FSR_REG);
320 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
324 status = serial_in(up, MA35_MSR_REG);
332 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
335 mcr = serial_in(up, MA35_MCR_REG);
343 if (up->mcr & UART_MCR_AFE) {
344 ier = serial_in(up, MA35_IER_REG);
346 serial_out(up, MA35_IER_REG, ier);
347 up->port.flags |= UPF_HARD_FLOW;
349 ier = serial_in(up, MA35_IER_REG);
351 serial_out(up, MA35_IER_REG, ier);
352 up->port.flags &= ~UPF_HARD_FLOW;
355 msr = serial_in(up, MA35_MSR_REG);
357 serial_out(up, MA35_MSR_REG, msr);
358 serial_out(up, MA35_MCR_REG, mcr);
363 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
367 uart_port_lock_irqsave(&up->port, &flags);
368 lcr = serial_in(up, MA35_LCR_REG);
373 serial_out(up, MA35_LCR_REG, lcr);
374 uart_port_unlock_irqrestore(&up->port, flags);
379 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
384 serial_out(up, MA35_FCR_REG, MA35_FCR_TFR | MA35_FCR_RFR);
387 serial_out(up, MA35_ISR_REG, MA35_ISR_ALL);
392 dev_err(up->port.dev, "request irq failed.\n");
396 fcr = serial_in(up, MA35_FCR_REG);
398 serial_out(up, MA35_FCR_REG, fcr);
399 serial_out(up, MA35_LCR_REG, MA35_LCR_WLS_8BITS);
400 serial_out(up, MA35_TOR_REG, MA35_UART_RX_TOUT);
401 serial_out(up, MA35_IER_REG, MA35_IER_CONFIG);
407 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
409 serial_out(up, MA35_IER_REG, 0);
417 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
444 uart_port_lock_irqsave(&up->port, &flags);
446 up->port.read_status_mask = MA35_FSR_RX_OVER_IF;
448 up->port.read_status_mask |= MA35_FSR_FEF | MA35_FSR_PEF;
450 up->port.read_status_mask |= MA35_FSR_BIF;
453 up->port.ignore_status_mask = 0;
455 up->port.ignore_status_mask |= MA35_FSR_FEF | MA35_FSR_PEF;
457 up->port.ignore_status_mask |= MA35_FSR_BIF;
463 up->port.ignore_status_mask |= MA35_FSR_RX_OVER_IF;
466 up->mcr |= UART_MCR_AFE;
468 up->mcr &= ~UART_MCR_AFE;
472 ma35d1serial_set_mctrl(&up->port, up->port.mctrl);
474 serial_out(up, MA35_BAUD_REG, MA35_BAUD_MODE2 | FIELD_PREP(MA35_BAUD_MASK, quot));
476 serial_out(up, MA35_LCR_REG, lcr);
478 uart_port_unlock_irqrestore(&up->port, flags);
530 static void wait_for_xmitr(struct uart_ma35d1_port *up)
536 up, MA35_FSR_REG);
541 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
543 wait_for_xmitr(up);
544 serial_out(up, MA35_THR_REG, ch);
555 struct uart_ma35d1_port *up;
566 up = &ma35d1serial_ports[co->index];
568 if (up->port.sysrq)
571 locked = uart_port_trylock_irqsave(&up->port, &flags);
573 uart_port_lock_irqsave(&up->port, &flags);
578 ier = serial_in(up, MA35_IER_REG);
579 serial_out(up, MA35_IER_REG, 0);
581 uart_console_write(&up->port, s, count, ma35d1serial_console_putchar);
583 wait_for_xmitr(up);
584 serial_out(up, MA35_IER_REG, ier);
587 uart_port_unlock_irqrestore(&up->port, flags);
688 struct uart_ma35d1_port *up;
698 up = &ma35d1serial_ports[ret];
699 up->port.line = ret;
704 up->port.iobase = res_mem->start;
705 up->port.membase = ioremap(up->port.iobase, MA35_UART_REG_SIZE);
706 if (!up->port.membase)
709 up->port.ops = &ma35d1serial_ops;
711 spin_lock_init(&up->port.lock);
713 up->clk = of_clk_get(pdev->dev.of_node, 0);
714 if (IS_ERR(up->clk)) {
715 ret = PTR_ERR(up->clk);
720 ret = clk_prepare_enable(up->clk);
724 if (up->port.line != 0)
725 up->port.uartclk = clk_get_rate(up->clk);
731 up->port.irq = ret;
732 up->port.dev = &pdev->dev;
733 up->port.flags = UPF_BOOT_AUTOCONF;
735 platform_set_drvdata(pdev, up);
737 ret = uart_add_one_port(&ma35d1serial_reg, &up->port);
744 free_irq(up->port.irq, &up->port);
747 clk_disable_unprepare(up->clk);
750 iounmap(up->port.membase);
760 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
763 clk_disable_unprepare(up->clk);
769 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
771 uart_suspend_port(&ma35d1serial_reg, &up->port);
772 if (up->port.line == 0) {
773 up->console_baud_rate = serial_in(up, MA35_BAUD_REG);
774 up->console_line = serial_in(up, MA35_LCR_REG);
775 up->console_int = serial_in(up, MA35_IER_REG);
783 struct uart_ma35d1_port *up = to_ma35d1_uart_port(port);
785 if (up->port.line == 0) {
786 serial_out(up, MA35_BAUD_REG, up->console_baud_rate);
787 serial_out(up, MA35_LCR_REG, up->console_line);
788 serial_out(up, MA35_IER_REG, up->console_int);
790 uart_resume_port(&ma35d1serial_reg, &up->port);