Lines Matching +full:pin +full:- +full:ctrl +full:- +full:enable
1 // SPDX-License-Identifier: GPL-2.0
46 #define CCR0_SSE BIT(24) /* SSn# Pin Function Enable */
47 #define CCR0_TEIE BIT(21) /* Transmit End Interrupt Enable */
48 #define CCR0_TIE BIT(20) /* Transmit Interrupt Enable */
49 #define CCR0_RIE BIT(16) /* Receive Interrupt Enable */
51 #define CCR0_DCME BIT(9) /* Data Compare Match Enable */
52 #define CCR0_MPIE BIT(8) /* Multiprocessor Interrupt Enable */
53 #define CCR0_TE BIT(4) /* Transmit Enable */
54 #define CCR0_RE BIT(0) /* Receive Enable */
58 #define CCR1_SHARPS BIT(20) /* Half -duplex Communication Select */
63 #define CCR1_PE BIT(8) /* Parity Enable */
66 #define CCR1_CTSPEN BIT(1) /* CTS External Pin Enable */
67 #define CCR1_CTSE BIT(0) /* CTS Enable */
90 #define SCxSR_ERRORS(port) (to_sci_port(port)->params->error_mask)
91 #define SCxSR_ERROR_CLEAR(port) (to_sci_port(port)->params->error_clear)
126 return readl(p->membase + offset); in rsci_serial_in()
131 writel(value, p->membase + offset); in rsci_serial_out()
147 unsigned int ctrl; in rsci_start_rx() local
149 ctrl = rsci_serial_in(port, CCR0); in rsci_start_rx()
150 ctrl |= CCR0_RIE; in rsci_start_rx()
151 rsci_serial_out(port, CCR0, ctrl); in rsci_start_rx()
164 if (termios->c_cflag & CREAD) in rsci_set_termios()
210 u32 ctrl; in rsci_start_tx() local
212 if (sp->chan_tx) in rsci_start_tx()
216 * TE (Transmit Enable) must be set after setting TIE in rsci_start_tx()
217 * (Transmit Interrupt Enable) or in the same instruction in rsci_start_tx()
220 ctrl = rsci_serial_in(port, CCR0); in rsci_start_tx()
221 ctrl |= CCR0_TIE | CCR0_TE; in rsci_start_tx()
222 rsci_serial_out(port, CCR0, ctrl); in rsci_start_tx()
227 u32 ctrl; in rsci_stop_tx() local
229 ctrl = rsci_serial_in(port, CCR0); in rsci_stop_tx()
230 ctrl &= ~CCR0_TIE; in rsci_stop_tx()
231 rsci_serial_out(port, CCR0, ctrl); in rsci_stop_tx()
236 u32 ctrl; in rsci_stop_rx() local
238 ctrl = rsci_serial_in(port, CCR0); in rsci_stop_rx()
239 ctrl &= ~CCR0_RIE; in rsci_stop_rx()
240 rsci_serial_out(port, CCR0, ctrl); in rsci_stop_rx()
245 return port->fifosize - rsci_txfill(port); in rsci_txroom()
251 struct tty_port *tport = &port->state->port; in rsci_transmit_chars()
252 u32 status, ctrl; in rsci_transmit_chars() local
257 ctrl = rsci_serial_in(port, CCR0); in rsci_transmit_chars()
258 if (kfifo_is_empty(&tport->xmit_fifo)) in rsci_transmit_chars()
259 ctrl &= ~CCR0_TIE; in rsci_transmit_chars()
261 ctrl |= CCR0_TIE; in rsci_transmit_chars()
262 rsci_serial_out(port, CCR0, ctrl); in rsci_transmit_chars()
271 if (port->x_char) { in rsci_transmit_chars()
272 c = port->x_char; in rsci_transmit_chars()
273 port->x_char = 0; in rsci_transmit_chars()
274 } else if (stopped || !kfifo_get(&tport->xmit_fifo, &c)) { in rsci_transmit_chars()
281 port->icount.tx++; in rsci_transmit_chars()
282 } while (--count > 0); in rsci_transmit_chars()
284 if (kfifo_len(&tport->xmit_fifo) < WAKEUP_CHARS) in rsci_transmit_chars()
287 if (kfifo_is_empty(&tport->xmit_fifo)) { in rsci_transmit_chars()
288 ctrl = rsci_serial_in(port, CCR0); in rsci_transmit_chars()
289 ctrl &= ~CCR0_TIE; in rsci_transmit_chars()
290 ctrl |= CCR0_TEIE; in rsci_transmit_chars()
291 rsci_serial_out(port, CCR0, ctrl); in rsci_transmit_chars()
297 struct tty_port *tport = &port->state->port; in rsci_receive_chars()
320 /* 9-bits data is not supported yet */ in rsci_receive_chars()
324 count--; in rsci_receive_chars()
325 i--; in rsci_receive_chars()
334 port->icount.frame++; in rsci_receive_chars()
337 port->icount.parity++; in rsci_receive_chars()
349 port->icount.rx += count; in rsci_receive_chars()
368 ret = readl_relaxed_poll_timeout_atomic(port->membase + CSR, status, in rsci_poll_put_char()
372 dev_err(port->dev, in rsci_poll_put_char()
381 static void rsci_prepare_console_write(struct uart_port *port, u32 ctrl) in rsci_prepare_console_write() argument
385 s->params->param_bits->rxtx_enable | CCR0_TIE | in rsci_prepare_console_write()
386 s->hscif_tot; in rsci_prepare_console_write()
475 OF_EARLYCON_DECLARE(rsci, "renesas,r9a09g077-rsci", rsci_early_console_setup);