Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:44

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /*
0004  *  This file contains the hardware specific portions of the TTY driver
0005  *  for the serial ports on the mcf5272
0006  */
0007 
0008 /*
0009  *  COPYRIGHT (c) 1989-2000.
0010  *  On-Line Applications Research Corporation (OAR).
0011  *
0012  * Redistribution and use in source and binary forms, with or without
0013  * modification, are permitted provided that the following conditions
0014  * are met:
0015  * 1. Redistributions of source code must retain the above copyright
0016  *    notice, this list of conditions and the following disclaimer.
0017  * 2. Redistributions in binary form must reproduce the above copyright
0018  *    notice, this list of conditions and the following disclaimer in the
0019  *    documentation and/or other materials provided with the distribution.
0020  *
0021  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0022  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0023  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0024  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0025  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0026  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0027  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0028  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0029  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0030  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0031  * POSSIBILITY OF SUCH DAMAGE.
0032  */
0033 
0034 #include <bsp.h>
0035 #include <bsp/console-polled.h>
0036 #include <rtems/libio.h>
0037 #include <mcf5272/mcf5272.h>
0038 
0039 volatile int g_cnt = 0;
0040 
0041 /*
0042  *  console_initialize_hardware
0043  *
0044  *  This routine initializes the console hardware.
0045  *
0046  */
0047 
0048 void console_initialize_hardware(void)
0049 {
0050 }
0051 
0052 
0053 /*
0054  *  console_outbyte_polled
0055  *
0056  *  This routine transmits a character using polling.
0057  */
0058 
0059 void console_outbyte_polled(
0060   int  port,
0061   char ch
0062 )
0063 {
0064     uart_regs_t *uart;
0065     int i;
0066     if (port == 0) {
0067         uart = g_uart0_regs;
0068     } else {
0069         uart = g_uart1_regs;
0070     }
0071 
0072     /* wait for the fifo to make room */
0073 /*    while ((uart->usr & MCF5272_USR_TXRDY) == 0) { */
0074     while ((uart->ucsr & MCF5272_USR_TXRDY) == 0) {
0075         continue;
0076     }
0077 
0078     uart->udata = ch;
0079     for (i = 0; i < 1000; i++) g_cnt++;
0080 }
0081 
0082 /*
0083  *  console_inbyte_nonblocking
0084  *
0085  *  This routine polls for a character.
0086  */
0087 
0088 int console_inbyte_nonblocking(
0089   int port
0090 )
0091 {
0092     uart_regs_t *uart;
0093     unsigned char c;
0094 
0095     if (port == 0) {
0096         uart = g_uart0_regs;
0097     } else {
0098         uart = g_uart1_regs;
0099     }
0100 
0101 /*    if (uart->usr & MCF5272_USR_RXRDY) { */
0102     if (uart->ucsr & MCF5272_USR_RXRDY) {
0103         c = (char)uart->udata;
0104         return c;
0105     } else {
0106         return -1;
0107     }
0108 }
0109 
0110 #include <rtems/bspIo.h>
0111 
0112 static void mcf5272_output_char(char c) { console_outbyte_polled( 0, c ); }
0113 
0114 BSP_output_char_function_type           BSP_output_char = mcf5272_output_char;
0115 BSP_polling_getchar_function_type       BSP_poll_char = NULL;
0116