![]() |
|
|||
File indexing completed on 2025-05-11 08:22:49
0001 /* 0002 * Console driver for for KIT637_V6 (CSB637) 0003 * 0004 * This driver uses the shared console driver in 0005 * ...../libbsp/shared/console.c 0006 * 0007 * Copyright (c) 2003 by Cogent Computer Systems 0008 * Written by Jay Monkman <jtm@lopingdog.com> 0009 * 0010 * Modified by Fernando Nicodemos <fgnicodemos@terra.com.br> 0011 * from NCB - Sistemas Embarcados Ltda. (Brazil) 0012 * 0013 * The license and distribution terms for this file may be 0014 * found in the file LICENSE in this distribution or at 0015 * http://www.rtems.org/license/LICENSE. 0016 * 0017 * Modified and FrameBuffer Console Device Support added by 0018 * Joel Sherrill, 2009. 0019 */ 0020 0021 #include <bsp.h> 0022 #include <rtems/libio.h> 0023 #include <termios.h> 0024 #include <rtems/bspIo.h> 0025 0026 #include <at91rm9200.h> 0027 #include <at91rm9200_dbgu.h> 0028 #include <libchip/serial.h> 0029 #include <libchip/sersupp.h> 0030 #include <bspopts.h> 0031 0032 extern const console_fns dbgu_fns; 0033 0034 #if ENABLE_LCD 0035 extern const console_fns fbcons_fns; 0036 #define LCD_DEV 1 0037 #else 0038 #define LCD_DEV 0 0039 #endif 0040 0041 #if (ENABLE_UMON && ENABLE_UMON_CONSOLE) 0042 extern const console_fns umoncons_fns; 0043 #define UMON_CONS_DEV 1 0044 #else 0045 #define UMON_CONS_DEV 0 0046 #endif 0047 0048 #if ENABLE_USART0 || ENABLE_USART1 || ENABLE_USART2 || ENABLE_USART3 0049 extern const console_fns usart_polling_fns; 0050 #endif 0051 0052 #if ENABLE_USART0 0053 #define USART0_DEV 1 0054 #else 0055 #define USART0_DEV 0 0056 #endif 0057 0058 #if ENABLE_USART1 0059 #define USART1_DEV 1 0060 #else 0061 #define USART1_DEV 0 0062 #endif 0063 0064 #if ENABLE_USART2 0065 #define USART2_DEV 1 0066 #else 0067 #define USART2_DEV 0 0068 #endif 0069 0070 #if ENABLE_USART3 0071 #define USART3_DEV 1 0072 #else 0073 #define USART3_DEV 0 0074 #endif 0075 0076 #define NUM_DEVS \ 0077 (1 + LCD_DEV + UMON_CONS_DEV + \ 0078 USART0_DEV + USART1_DEV + USART2_DEV + USART3_DEV) 0079 0080 /* These are used by code in console.c */ 0081 unsigned long Console_Configuration_Count = NUM_DEVS; 0082 0083 /* 0084 * There's one item in array for each UART. 0085 * 0086 * Some of these fields are marked "NOT USED". They are not used 0087 * by console.c, but may be used by drivers in libchip 0088 * 0089 * when we add other types of UARTS we will need to move this 0090 * structure to a generic uart.c file with only this in it 0091 */ 0092 console_tbl Console_Configuration_Ports[] = { 0093 { 0094 "/dev/com0", /* sDeviceName */ 0095 SERIAL_CUSTOM, /* deviceType */ 0096 &dbgu_fns, /* pDeviceFns */ 0097 NULL, /* deviceProbe */ 0098 NULL, /* pDeviceFlow */ 0099 0, /* ulMargin - NOT USED */ 0100 0, /* ulHysteresis - NOT USED */ 0101 NULL, /* pDeviceParams */ 0102 DBGU_BASE, /* ulCtrlPort1 - Pointer to DBGU regs */ 0103 0, /* ulCtrlPort2 - NOT USED */ 0104 0, /* ulDataPort - NOT USED */ 0105 NULL, /* getRegister - NOT USED */ 0106 NULL, /* setRegister - NOT USED */ 0107 NULL, /* getData - NOT USED */ 0108 NULL, /* setData - NOT USED */ 0109 0, /* ulClock - NOT USED */ 0110 0 /* ulIntVector - NOT USED */ 0111 }, 0112 #if ENABLE_LCD 0113 { 0114 "/dev/fbcons", /* sDeviceName */ 0115 SERIAL_CUSTOM, /* deviceType */ 0116 &fbcons_fns, /* pDeviceFns */ 0117 NULL, /* deviceProbe */ 0118 NULL, /* pDeviceFlow */ 0119 0, /* ulMargin - NOT USED */ 0120 0, /* ulHysteresis - NOT USED */ 0121 NULL, /* pDeviceParams */ 0122 0, /* ulCtrlPort1 - Pointer to DBGU regs */ 0123 0, /* ulCtrlPort2 - NOT USED */ 0124 0, /* ulDataPort - NOT USED */ 0125 NULL, /* getRegister - NOT USED */ 0126 NULL, /* setRegister - NOT USED */ 0127 NULL, /* getData - NOT USED */ 0128 NULL, /* setData - NOT USED */ 0129 0, /* ulClock - NOT USED */ 0130 0 /* ulIntVector - NOT USED */ 0131 }, 0132 #endif 0133 #if (ENABLE_UMON && ENABLE_UMON_CONSOLE) 0134 { 0135 "/dev/umon", /* sDeviceName */ 0136 SERIAL_CUSTOM, /* deviceType */ 0137 &umoncons_fns, /* pDeviceFns */ 0138 NULL, /* deviceProbe */ 0139 NULL, /* pDeviceFlow */ 0140 0, /* ulMargin - NOT USED */ 0141 0, /* ulHysteresis - NOT USED */ 0142 NULL, /* pDeviceParams */ 0143 0, /* ulCtrlPort1 - Pointer to UMON regs */ 0144 0, /* ulCtrlPort2 - NOT USED */ 0145 0, /* ulDataPort - NOT USED */ 0146 NULL, /* getRegister - NOT USED */ 0147 NULL, /* setRegister - NOT USED */ 0148 NULL, /* getData - NOT USED */ 0149 NULL, /* setData - NOT USED */ 0150 0, /* ulClock - NOT USED */ 0151 0 /* ulIntVector - NOT USED */ 0152 }, 0153 #endif 0154 #if ENABLE_USART0 0155 { 0156 "/dev/com1", /* sDeviceName */ 0157 SERIAL_CUSTOM, /* deviceType */ 0158 &usart_polling_fns,/* pDeviceFns */ 0159 NULL, /* deviceProbe */ 0160 NULL, /* pDeviceFlow */ 0161 0, /* ulMargin - NOT USED */ 0162 0, /* ulHysteresis - NOT USED */ 0163 NULL, /* pDeviceParams */ 0164 USART0_BASE, /* ulCtrlPort1 - Pointer to USART 0 regs */ 0165 0, /* ulCtrlPort2 - NOT USED */ 0166 0, /* ulDataPort - NOT USED */ 0167 NULL, /* getRegister - NOT USED */ 0168 NULL, /* setRegister - NOT USED */ 0169 NULL, /* getData - NOT USED */ 0170 NULL, /* setData - NOT USED */ 0171 0, /* ulClock - NOT USED */ 0172 0 /* ulIntVector - NOT USED */ 0173 }, 0174 #endif 0175 #if ENABLE_USART1 0176 { 0177 "/dev/com2", /* sDeviceName */ 0178 SERIAL_CUSTOM, /* deviceType */ 0179 &usart_polling_fns,/* pDeviceFns */ 0180 NULL, /* deviceProbe */ 0181 NULL, /* pDeviceFlow */ 0182 0, /* ulMargin - NOT USED */ 0183 0, /* ulHysteresis - NOT USED */ 0184 NULL, /* pDeviceParams */ 0185 USART1_BASE, /* ulCtrlPort1 - Pointer to USART 1 regs */ 0186 0, /* ulCtrlPort2 - NOT USED */ 0187 0, /* ulDataPort - NOT USED */ 0188 NULL, /* getRegister - NOT USED */ 0189 NULL, /* setRegister - NOT USED */ 0190 NULL, /* getData - NOT USED */ 0191 NULL, /* setData - NOT USED */ 0192 0, /* ulClock - NOT USED */ 0193 0 /* ulIntVector - NOT USED */ 0194 }, 0195 #endif 0196 #if ENABLE_USART2 0197 { 0198 "/dev/com3", /* sDeviceName */ 0199 SERIAL_CUSTOM, /* deviceType */ 0200 &usart_polling_fns,/* pDeviceFns */ 0201 NULL, /* deviceProbe */ 0202 NULL, /* pDeviceFlow */ 0203 0, /* ulMargin - NOT USED */ 0204 0, /* ulHysteresis - NOT USED */ 0205 NULL, /* pDeviceParams */ 0206 USART2_BASE, /* ulCtrlPort1 - Pointer to USART 2 regs */ 0207 0, /* ulCtrlPort2 - NOT USED */ 0208 0, /* ulDataPort - NOT USED */ 0209 NULL, /* getRegister - NOT USED */ 0210 NULL, /* setRegister - NOT USED */ 0211 NULL, /* getData - NOT USED */ 0212 NULL, /* setData - NOT USED */ 0213 0, /* ulClock - NOT USED */ 0214 0 /* ulIntVector - NOT USED */ 0215 }, 0216 #endif 0217 #if ENABLE_USART3 0218 { 0219 "/dev/com4", /* sDeviceName */ 0220 SERIAL_CUSTOM, /* deviceType */ 0221 &usart_polling_fns,/* pDeviceFns */ 0222 NULL, /* deviceProbe */ 0223 NULL, /* pDeviceFlow */ 0224 0, /* ulMargin - NOT USED */ 0225 0, /* ulHysteresis - NOT USED */ 0226 NULL, /* pDeviceParams */ 0227 USART3_BASE, /* ulCtrlPort1 - Pointer to USART 3 regs */ 0228 0, /* ulCtrlPort2 - NOT USED */ 0229 0, /* ulDataPort - NOT USED */ 0230 NULL, /* getRegister - NOT USED */ 0231 NULL, /* setRegister - NOT USED */ 0232 NULL, /* getData - NOT USED */ 0233 NULL, /* setData - NOT USED */ 0234 0, /* ulClock - NOT USED */ 0235 0 /* ulIntVector - NOT USED */ 0236 } 0237 #endif 0238 }; 0239 0240 console_tbl *BSP_get_uart_from_minor(int minor) 0241 { 0242 return Console_Port_Tbl[minor]; 0243 }
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |