Lines Matching refs:com_port

197 	ns16550_writeb(com_port, \
198 (unsigned char *)addr - (unsigned char *)com_port, value)
200 ns16550_readb(com_port, \
201 (unsigned char *)addr - (unsigned char *)com_port)
216 static void ns16550_setbrg(struct ns16550 *com_port, int baud_divisor) in ns16550_setbrg() argument
219 int lcr_val = serial_in(&com_port->lcr) & ~UART_LCR_BKSE; in ns16550_setbrg()
221 serial_out(UART_LCR_BKSE | lcr_val, &com_port->lcr); in ns16550_setbrg()
222 serial_out(baud_divisor & 0xff, &com_port->dll); in ns16550_setbrg()
223 serial_out((baud_divisor >> 8) & 0xff, &com_port->dlm); in ns16550_setbrg()
224 serial_out(lcr_val, &com_port->lcr); in ns16550_setbrg()
227 void ns16550_init(struct ns16550 *com_port, int baud_divisor) in ns16550_init() argument
236 if ((serial_in(&com_port->lsr) & (UART_LSR_TEMT | UART_LSR_THRE)) in ns16550_init()
239 ns16550_setbrg(com_port, baud_divisor); in ns16550_init()
242 const int dll = serial_in(&com_port->dll); in ns16550_init()
243 const int dlm = serial_in(&com_port->dlm); in ns16550_init()
245 ns16550_setbrg(com_port, divisor); in ns16550_init()
247 serial_out(0, &com_port->mdr1); in ns16550_init()
251 while (!(serial_in(&com_port->lsr) & UART_LSR_TEMT)) in ns16550_init()
254 serial_out(CONFIG_SYS_NS16550_IER, &com_port->ier); in ns16550_init()
256 serial_out(0x7, &com_port->mdr1); /* mode select reset TL16C750*/ in ns16550_init()
259 serial_out(UART_MCRVAL, &com_port->mcr); in ns16550_init()
260 serial_out(ns16550_getfcr(com_port), &com_port->fcr); in ns16550_init()
262 serial_out(UART_LCRVAL, &com_port->lcr); in ns16550_init()
264 ns16550_setbrg(com_port, baud_divisor); in ns16550_init()
268 serial_out(0, &com_port->mdr1); in ns16550_init()
271 serial_out(UART_REG_VAL_PWREMU_MGMT_UART_ENABLE, &com_port->regC); in ns16550_init()
276 void ns16550_reinit(struct ns16550 *com_port, int baud_divisor) in ns16550_reinit() argument
278 serial_out(CONFIG_SYS_NS16550_IER, &com_port->ier); in ns16550_reinit()
279 ns16550_setbrg(com_port, 0); in ns16550_reinit()
280 serial_out(UART_MCRVAL, &com_port->mcr); in ns16550_reinit()
281 serial_out(ns16550_getfcr(com_port), &com_port->fcr); in ns16550_reinit()
282 ns16550_setbrg(com_port, baud_divisor); in ns16550_reinit()
286 void ns16550_putc(struct ns16550 *com_port, char c) in ns16550_putc() argument
288 while ((serial_in(&com_port->lsr) & UART_LSR_THRE) == 0) in ns16550_putc()
290 serial_out(c, &com_port->thr); in ns16550_putc()
303 char ns16550_getc(struct ns16550 *com_port) in ns16550_getc() argument
305 while ((serial_in(&com_port->lsr) & UART_LSR_DR) == 0) { in ns16550_getc()
312 return serial_in(&com_port->rbr); in ns16550_getc()
315 int ns16550_tstc(struct ns16550 *com_port) in ns16550_tstc() argument
317 return (serial_in(&com_port->lsr) & UART_LSR_DR) != 0; in ns16550_tstc()
328 struct ns16550 *com_port = (struct ns16550 *)CONFIG_DEBUG_UART_BASE; in _debug_uart_init() local
337 baud_divisor = ns16550_calc_divisor(com_port, CONFIG_DEBUG_UART_CLOCK, in _debug_uart_init()
339 serial_dout(&com_port->ier, CONFIG_SYS_NS16550_IER); in _debug_uart_init()
340 serial_dout(&com_port->mcr, UART_MCRVAL); in _debug_uart_init()
341 serial_dout(&com_port->fcr, UART_FCR_DEFVAL); in _debug_uart_init()
343 serial_dout(&com_port->lcr, UART_LCR_BKSE | UART_LCRVAL); in _debug_uart_init()
344 serial_dout(&com_port->dll, baud_divisor & 0xff); in _debug_uart_init()
345 serial_dout(&com_port->dlm, (baud_divisor >> 8) & 0xff); in _debug_uart_init()
346 serial_dout(&com_port->lcr, UART_LCRVAL); in _debug_uart_init()
349 static inline int NS16550_read_baud_divisor(struct ns16550 *com_port) in NS16550_read_baud_divisor() argument
353 serial_dout(&com_port->lcr, UART_LCR_BKSE | UART_LCRVAL); in NS16550_read_baud_divisor()
354 ret = serial_din(&com_port->dll) & 0xff; in NS16550_read_baud_divisor()
355 ret |= (serial_din(&com_port->dlm) & 0xff) << 8; in NS16550_read_baud_divisor()
356 serial_dout(&com_port->lcr, UART_LCRVAL); in NS16550_read_baud_divisor()
363 struct ns16550 *com_port = (struct ns16550 *)CONFIG_DEBUG_UART_BASE; in _debug_uart_putc() local
365 while (!(serial_din(&com_port->lsr) & UART_LSR_THRE)) { in _debug_uart_putc()
367 if (!NS16550_read_baud_divisor(com_port)) in _debug_uart_putc()
371 serial_dout(&com_port->thr, ch); in _debug_uart_putc()
381 struct ns16550 *const com_port = dev_get_priv(dev); in ns16550_serial_putc() local
383 if (!(serial_in(&com_port->lsr) & UART_LSR_THRE)) in ns16550_serial_putc()
385 serial_out(ch, &com_port->thr); in ns16550_serial_putc()
401 struct ns16550 *const com_port = dev_get_priv(dev); in ns16550_serial_pending() local
404 return (serial_in(&com_port->lsr) & UART_LSR_DR) ? 1 : 0; in ns16550_serial_pending()
406 return (serial_in(&com_port->lsr) & UART_LSR_THRE) ? 0 : 1; in ns16550_serial_pending()
411 struct ns16550 *const com_port = dev_get_priv(dev); in ns16550_serial_getc() local
413 if (!(serial_in(&com_port->lsr) & UART_LSR_DR)) in ns16550_serial_getc()
416 return serial_in(&com_port->rbr); in ns16550_serial_getc()
421 struct ns16550 *const com_port = dev_get_priv(dev); in ns16550_serial_setbrg() local
422 struct ns16550_plat *plat = com_port->plat; in ns16550_serial_setbrg()
425 clock_divisor = ns16550_calc_divisor(com_port, plat->clock, baudrate); in ns16550_serial_setbrg()
427 ns16550_setbrg(com_port, clock_divisor); in ns16550_serial_setbrg()
434 struct ns16550 *const com_port = dev_get_priv(dev); in ns16550_serial_setconfig() local
461 serial_out(lcr_val, &com_port->lcr); in ns16550_serial_setconfig()
468 struct ns16550 *const com_port = dev_get_priv(dev); in ns16550_serial_getinfo() local
469 struct ns16550_plat *plat = com_port->plat; in ns16550_serial_getinfo()
503 struct ns16550 *const com_port = dev_get_priv(dev); in ns16550_serial_probe() local
523 com_port->plat = dev_get_plat(dev); in ns16550_serial_probe()
524 ns16550_init(com_port, -1); in ns16550_serial_probe()