tkernel_2/driver/tef_em1d/console/src/ns16450sys.h | bare source | permlink (0.01 seconds) |
1: /* 2: *---------------------------------------------------------------------- 3: * T-Kernel 2.0 Software Package 4: * 5: * Copyright 2011 by Ken Sakamura. 6: * This software is distributed under the latest version of T-License 2.x. 7: *---------------------------------------------------------------------- 8: * 9: * Released by T-Engine Forum(http://www.t-engine.org/) at 2011/05/17. 10: * Modified by T-Engine Forum at 2013/03/01. 11: * Modified by TRON Forum(http://www.tron.org/) at 2015/06/01. 12: * 13: *---------------------------------------------------------------------- 14: */ 15: 16: /* 17: * ns16450sys.h Console/Low-level serial I/O driver 18: * 19: * Serial line low level driver (for NS16450) 20: * EM1-D512 system-dependent definition 21: */ 22: 23: /* 24: * "UART" clock 25: */ 26: #define UART_CLK (229376000) /* Hz */ 27: 28: /* 29: * I/O input and output macro 30: */ 31: #define OutB(ix, dt) out_b((ix), (dt)) 32: #define InB(ix) in_b((ix)) 33: 34: /* 35: * Post-interrupt processing 36: */ 37: Inline void end_inthdr(SC_DEFS *scdefs) 38: { 39: /* Unnecessary to execute anything */ 40: } 41: 42: /* 43: * Release an interrupt handler 44: */ 45: Inline void delete_inthdr(SC_DEFS *scdefs, void *sio_inthdr) 46: { 47: ER err; 48: 49: /* Release an interrupt handler */ 50: err = tk_def_int(scdefs->c.intvec, NULL); 51: if (err >= E_OK) { 52: /* Disable interrupt */ 53: DisableInt(scdefs->c.intvec); 54: } 55: } 56: 57: /* 58: * Register the interrupt handler 59: */ 60: Inline ER regist_inthdr(SC_DEFS *scdefs, void *sio_inthdr) 61: { 62: T_DINT dint; 63: ER err; 64: 65: /* Register the interrupt handler */ 66: dint.intatr = TA_HLNG; 67: dint.inthdr = sio_inthdr; 68: err = tk_def_int(scdefs->c.intvec, &dint); 69: if (err >= E_OK) { 70: /* Enable interrupt */ 71: SetIntMode(scdefs->c.intvec, IM_ENA); 72: EnableInt(scdefs->c.intvec); 73: } 74: return err; 75: } 76: 77: /* 78: * Suspend/Resume 79: */ 80: Inline void sio_susres(LINE_INFO *li, W resume) 81: { 82: /* Execute nothing */ 83: } 84: