Lines Matching +full:up +full:- +full:counter
1 // SPDX-License-Identifier: GPL-2.0+
3 * (C) Copyright 2004-2007 Freescale Semiconductor, Inc.
4 * TsiChung Liew, Tsi-Chung.Liew@freescale.com.
29 u32 counter; in mcf_serial_init_common() local
34 writeb(UART_UCR_RESET_RX, &uart->ucr); in mcf_serial_init_common()
35 writeb(UART_UCR_RESET_TX, &uart->ucr); in mcf_serial_init_common()
36 writeb(UART_UCR_RESET_ERROR, &uart->ucr); in mcf_serial_init_common()
37 writeb(UART_UCR_RESET_MR, &uart->ucr); in mcf_serial_init_common()
40 writeb(0, &uart->uimr); in mcf_serial_init_common()
43 writeb(UART_UCSR_RCS_SYS_CLK | UART_UCSR_TCS_SYS_CLK, &uart->ucsr); in mcf_serial_init_common()
45 writeb(UART_UMR_BC_8 | UART_UMR_PM_NONE, &uart->umr); in mcf_serial_init_common()
46 writeb(UART_UMR_SB_STOP_BITS_1, &uart->umr); in mcf_serial_init_common()
48 /* Setting up BaudRate */ in mcf_serial_init_common()
49 counter = (u32) ((gd->bus_clk / 32) + (baudrate / 2)); in mcf_serial_init_common()
50 counter = counter / baudrate; in mcf_serial_init_common()
52 /* write to CTUR: divide counter upper byte */ in mcf_serial_init_common()
53 writeb((u8)((counter & 0xff00) >> 8), &uart->ubg1); in mcf_serial_init_common()
54 /* write to CTLR: divide counter lower byte */ in mcf_serial_init_common()
55 writeb((u8)(counter & 0x00ff), &uart->ubg2); in mcf_serial_init_common()
57 writeb(UART_UCR_RX_ENABLED | UART_UCR_TX_ENABLED, &uart->ucr); in mcf_serial_init_common()
64 u32 counter; in mcf_serial_setbrg_common() local
66 /* Setting up BaudRate */ in mcf_serial_setbrg_common()
67 counter = (u32) ((gd->bus_clk / 32) + (baudrate / 2)); in mcf_serial_setbrg_common()
68 counter = counter / baudrate; in mcf_serial_setbrg_common()
70 /* write to CTUR: divide counter upper byte */ in mcf_serial_setbrg_common()
71 writeb(((counter & 0xff00) >> 8), &uart->ubg1); in mcf_serial_setbrg_common()
72 /* write to CTLR: divide counter lower byte */ in mcf_serial_setbrg_common()
73 writeb((counter & 0x00ff), &uart->ubg2); in mcf_serial_setbrg_common()
75 writeb(UART_UCR_RESET_RX, &uart->ucr); in mcf_serial_setbrg_common()
76 writeb(UART_UCR_RESET_TX, &uart->ucr); in mcf_serial_setbrg_common()
78 writeb(UART_UCR_RX_ENABLED | UART_UCR_TX_ENABLED, &uart->ucr); in mcf_serial_setbrg_common()
91 return mcf_serial_init_common(uart_base, port_idx, gd->baudrate); in mcf_serial_init()
102 while (!(readb(&uart->usr) & UART_USR_TXRDY)) in mcf_serial_putc()
105 writeb(c, &uart->utb); in mcf_serial_putc()
113 while (!(readb(&uart->usr) & UART_USR_RXRDY)) in mcf_serial_getc()
116 return readb(&uart->urb); in mcf_serial_getc()
123 mcf_serial_setbrg_common(uart, gd->baudrate); in mcf_serial_setbrg()
130 return readb(&uart->usr) & UART_USR_RXRDY; in mcf_serial_tstc()
160 struct coldfire_serial_platdata *plat = dev->platdata; in coldfire_serial_probe()
162 return mcf_serial_init_common((uart_t *)plat->base, in coldfire_serial_probe()
163 plat->port, plat->baudrate); in coldfire_serial_probe()
168 struct coldfire_serial_platdata *plat = dev->platdata; in coldfire_serial_putc()
169 uart_t *uart = (uart_t *)plat->base; in coldfire_serial_putc()
172 if (!(readb(&uart->usr) & UART_USR_TXRDY)) in coldfire_serial_putc()
173 return -EAGAIN; in coldfire_serial_putc()
175 writeb(ch, &uart->utb); in coldfire_serial_putc()
182 struct coldfire_serial_platdata *plat = dev->platdata; in coldfire_serial_getc()
183 uart_t *uart = (uart_t *)(plat->base); in coldfire_serial_getc()
186 if (!(readb(&uart->usr) & UART_USR_RXRDY)) in coldfire_serial_getc()
187 return -EAGAIN; in coldfire_serial_getc()
189 return readb(&uart->urb); in coldfire_serial_getc()
194 struct coldfire_serial_platdata *plat = dev->platdata; in coldfire_serial_setbrg()
195 uart_t *uart = (uart_t *)(plat->base); in coldfire_serial_setbrg()
204 struct coldfire_serial_platdata *plat = dev->platdata; in coldfire_serial_pending()
205 uart_t *uart = (uart_t *)(plat->base); in coldfire_serial_pending()
208 return readb(&uart->usr) & UART_USR_RXRDY ? 1 : 0; in coldfire_serial_pending()
210 return readb(&uart->usr) & UART_USR_TXRDY ? 0 : 1; in coldfire_serial_pending()