Mercurial > flash_v2
annotate packages/io/serial/current/src/arm/edb7xxx_serial.c @ 62:7a6ac9edc838 ecos-sw-2000-01-24
Merge from eCos master repository on 2000-01-24-19:43:49-GMT
| author | jlarmour |
|---|---|
| date | Mon, 24 Jan 2000 21:43:17 +0000 |
| parents | f10165814f1e |
| children | c38311975d4f |
| rev | line source |
|---|---|
|
54
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
1 //========================================================================== |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
2 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
3 // io/serial/arm/edb7xxx_serial.c |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
4 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
5 // Cirrus Logic EDB7XXX Serial I/O Interface Module (interrupt driven) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
6 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
7 //========================================================================== |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
8 //####COPYRIGHTBEGIN#### |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
9 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
10 // ------------------------------------------- |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
11 // The contents of this file are subject to the Cygnus eCos Public License |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
12 // Version 1.0 (the "License"); you may not use this file except in |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
13 // compliance with the License. You may obtain a copy of the License at |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
14 // http://sourceware.cygnus.com/ecos |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
15 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
16 // Software distributed under the License is distributed on an "AS IS" |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
18 // License for the specific language governing rights and limitations under |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
19 // the License. |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
20 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
21 // The Original Code is eCos - Embedded Cygnus Operating System, released |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
22 // September 30, 1998. |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
23 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
24 // The Initial Developer of the Original Code is Cygnus. Portions created |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
25 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
26 // ------------------------------------------- |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
27 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
28 //####COPYRIGHTEND#### |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
29 //========================================================================== |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
30 //#####DESCRIPTIONBEGIN#### |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
31 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
32 // Author(s): gthomas |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
33 // Contributors: gthomas |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
34 // Date: 1999-02-04 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
35 // Purpose: EDB7XXX Serial I/O module (interrupt driven version) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
36 // Description: |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
37 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
38 //####DESCRIPTIONEND#### |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
39 // |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
40 //========================================================================== |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
41 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
42 #include <pkgconf/system.h> |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
43 #include <pkgconf/io_serial.h> |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
44 #include <pkgconf/io.h> |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
45 #include <cyg/io/io.h> |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
46 #include <cyg/hal/hal_intr.h> |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
47 #include <cyg/io/devtab.h> |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
48 #include <cyg/io/serial.h> |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
49 #include <cyg/infra/diag.h> |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
50 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
51 #ifdef CYGPKG_IO_SERIAL_ARM_EDB7XXX |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
52 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
53 #include "edb7xxx_serial.h" |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
54 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
55 typedef struct edb7xxx_serial_info { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
56 CYG_ADDRWORD data, // Pointer to data register |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
57 control, // Pointer to baud rate/line control register |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
58 stat, // Pointer to system flags for this port |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
59 syscon; // Pointer to system control for this port |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
60 CYG_WORD tx_int_num, // Transmit interrupt number |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
61 rx_int_num, // Receive interrupt number |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
62 ms_int_num; // Modem Status Change interrupt number |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
63 cyg_interrupt serial_tx_interrupt, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
64 serial_rx_interrupt, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
65 serial_ms_interrupt; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
66 cyg_handle_t serial_tx_interrupt_handle, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
67 serial_rx_interrupt_handle, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
68 serial_ms_interrupt_handle; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
69 bool tx_enabled; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
70 } edb7xxx_serial_info; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
71 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
72 static bool edb7xxx_serial_init(struct cyg_devtab_entry *tab); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
73 static bool edb7xxx_serial_putc(serial_channel *chan, unsigned char c); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
74 static Cyg_ErrNo edb7xxx_serial_lookup(struct cyg_devtab_entry **tab, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
75 struct cyg_devtab_entry *sub_tab, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
76 const char *name); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
77 static unsigned char edb7xxx_serial_getc(serial_channel *chan); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
78 static bool edb7xxx_serial_set_config(serial_channel *chan, cyg_serial_info_t *config); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
79 static void edb7xxx_serial_start_xmit(serial_channel *chan); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
80 static void edb7xxx_serial_stop_xmit(serial_channel *chan); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
81 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
82 static cyg_uint32 edb7xxx_serial_tx_ISR(cyg_vector_t vector, cyg_addrword_t data); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
83 static void edb7xxx_serial_tx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
84 static cyg_uint32 edb7xxx_serial_rx_ISR(cyg_vector_t vector, cyg_addrword_t data); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
85 static void edb7xxx_serial_rx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
86 static cyg_uint32 edb7xxx_serial_ms_ISR(cyg_vector_t vector, cyg_addrword_t data); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
87 static void edb7xxx_serial_ms_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
88 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
89 static SERIAL_FUNS(edb7xxx_serial_funs, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
90 edb7xxx_serial_putc, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
91 edb7xxx_serial_getc, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
92 edb7xxx_serial_set_config, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
93 edb7xxx_serial_start_xmit, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
94 edb7xxx_serial_stop_xmit |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
95 ); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
96 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
97 #ifdef CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL1 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
98 static edb7xxx_serial_info edb7xxx_serial_info1 = {UARTDR1, // Data register |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
99 UBLCR1, // Port control |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
100 SYSFLG1, // Status |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
101 SYSCON1, // System config |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
102 CYGNUM_HAL_INTERRUPT_UTXINT1, // Tx interrupt |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
103 CYGNUM_HAL_INTERRUPT_URXINT1, // Rx interrupt |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
104 0 /*CYGNUM_HAL_INTERRUPT_UMSINT*/}; // Modem control |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
105 #if CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BUFSIZE > 0 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
106 static unsigned char edb7xxx_serial_out_buf1[CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BUFSIZE]; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
107 static unsigned char edb7xxx_serial_in_buf1[CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BUFSIZE]; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
108 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
109 static SERIAL_CHANNEL_USING_INTERRUPTS(edb7xxx_serial_channel1, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
110 edb7xxx_serial_funs, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
111 edb7xxx_serial_info1, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
112 CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BAUD), |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
113 CYG_SERIAL_STOP_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
114 CYG_SERIAL_PARITY_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
115 CYG_SERIAL_WORD_LENGTH_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
116 CYG_SERIAL_FLAGS_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
117 &edb7xxx_serial_out_buf1[0], sizeof(edb7xxx_serial_out_buf1), |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
118 &edb7xxx_serial_in_buf1[0], sizeof(edb7xxx_serial_in_buf1) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
119 ); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
120 #else |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
121 static SERIAL_CHANNEL(edb7xxx_serial_channel1, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
122 edb7xxx_serial_funs, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
123 edb7xxx_serial_info1, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
124 CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BAUD), |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
125 CYG_SERIAL_STOP_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
126 CYG_SERIAL_PARITY_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
127 CYG_SERIAL_WORD_LENGTH_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
128 CYG_SERIAL_FLAGS_DEFAULT |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
129 ); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
130 #endif |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
131 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
132 DEVTAB_ENTRY(edb7xxx_serial_io1, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
133 CYGDAT_IO_SERIAL_ARM_EDB7XXX_SERIAL1_NAME, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
134 0, // Does not depend on a lower level interface |
|
62
7a6ac9edc838
Merge from eCos master repository on 2000-01-24-19:43:49-GMT
jlarmour
parents:
54
diff
changeset
|
135 &cyg_io_serial_devio, |
|
54
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
136 edb7xxx_serial_init, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
137 edb7xxx_serial_lookup, // Serial driver may need initializing |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
138 &edb7xxx_serial_channel1 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
139 ); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
140 #endif // CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL2 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
141 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
142 #ifdef CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL2 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
143 static edb7xxx_serial_info edb7xxx_serial_info2 = {UARTDR2, // Data register |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
144 UBLCR2, // Port control |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
145 SYSFLG2, // Status |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
146 SYSCON2, // System config |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
147 CYGNUM_HAL_INTERRUPT_UTXINT2, // Tx interrupt |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
148 CYGNUM_HAL_INTERRUPT_URXINT2, // Rx interrupt |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
149 0}; // No modem control |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
150 #if CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BUFSIZE > 0 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
151 static unsigned char edb7xxx_serial_out_buf2[CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BUFSIZE]; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
152 static unsigned char edb7xxx_serial_in_buf2[CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BUFSIZE]; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
153 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
154 static SERIAL_CHANNEL_USING_INTERRUPTS(edb7xxx_serial_channel2, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
155 edb7xxx_serial_funs, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
156 edb7xxx_serial_info2, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
157 CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BAUD), |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
158 CYG_SERIAL_STOP_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
159 CYG_SERIAL_PARITY_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
160 CYG_SERIAL_WORD_LENGTH_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
161 CYG_SERIAL_FLAGS_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
162 &edb7xxx_serial_out_buf2[0], sizeof(edb7xxx_serial_out_buf2), |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
163 &edb7xxx_serial_in_buf2[0], sizeof(edb7xxx_serial_in_buf2) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
164 ); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
165 #else |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
166 static SERIAL_CHANNEL(edb7xxx_serial_channel2, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
167 edb7xxx_serial_funs, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
168 edb7xxx_serial_info2, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
169 CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BAUD), |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
170 CYG_SERIAL_STOP_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
171 CYG_SERIAL_PARITY_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
172 CYG_SERIAL_WORD_LENGTH_DEFAULT, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
173 CYG_SERIAL_FLAGS_DEFAULT |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
174 ); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
175 #endif |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
176 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
177 DEVTAB_ENTRY(edb7xxx_serial_io2, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
178 CYGDAT_IO_SERIAL_ARM_EDB7XXX_SERIAL2_NAME, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
179 0, // Does not depend on a lower level interface |
|
62
7a6ac9edc838
Merge from eCos master repository on 2000-01-24-19:43:49-GMT
jlarmour
parents:
54
diff
changeset
|
180 &cyg_io_serial_devio, |
|
54
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
181 edb7xxx_serial_init, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
182 edb7xxx_serial_lookup, // Serial driver may need initializing |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
183 &edb7xxx_serial_channel2 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
184 ); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
185 #endif // CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL2 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
186 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
187 // Internal function to actually configure the hardware to desired baud rate, etc. |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
188 static bool |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
189 edb7xxx_serial_config_port(serial_channel *chan, cyg_serial_info_t *new_config, bool init) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
190 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
191 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
192 volatile cyg_uint32 *syscon = (volatile cyg_uint32 *)edb7xxx_chan->syscon; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
193 volatile cyg_uint32 *blcfg = (volatile cyg_uint32 *)edb7xxx_chan->control; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
194 unsigned int baud_divisor = select_baud[new_config->baud]; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
195 cyg_uint32 _lcr; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
196 if (baud_divisor == 0) return false; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
197 // Disable port interrupts while changing hardware |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
198 _lcr = select_word_length[new_config->word_length - CYGNUM_SERIAL_WORD_LENGTH_5] | |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
199 select_stop_bits[new_config->stop] | |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
200 select_parity[new_config->parity] | |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
201 UBLCR_FIFOEN | UART_BITRATE(baud_divisor); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
202 #ifdef CYGDBG_IO_INIT |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
203 diag_printf("Set CTL: %x = %x\n", blcfg, _lcr); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
204 #endif |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
205 *blcfg = _lcr; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
206 *syscon |= SYSCON1_UART1EN; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
207 if (new_config != &chan->config) { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
208 chan->config = *new_config; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
209 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
210 return true; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
211 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
212 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
213 // Function to initialize the device. Called at bootstrap time. |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
214 static bool |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
215 edb7xxx_serial_init(struct cyg_devtab_entry *tab) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
216 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
217 serial_channel *chan = (serial_channel *)tab->priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
218 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
219 #ifdef CYGDBG_IO_INIT |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
220 diag_printf("EDB7XXX SERIAL init - dev: %x.%d\n", edb7xxx_chan->control, edb7xxx_chan->tx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
221 #endif |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
222 (chan->callbacks->serial_init)(chan); // Really only required for interrupt driven devices |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
223 if (chan->out_cbuf.len != 0) { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
224 cyg_drv_interrupt_create(edb7xxx_chan->tx_int_num, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
225 99, // Priority - unused |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
226 (cyg_addrword_t)chan, // Data item passed to interrupt handler |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
227 edb7xxx_serial_tx_ISR, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
228 edb7xxx_serial_tx_DSR, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
229 &edb7xxx_chan->serial_tx_interrupt_handle, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
230 &edb7xxx_chan->serial_tx_interrupt); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
231 cyg_drv_interrupt_attach(edb7xxx_chan->serial_tx_interrupt_handle); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
232 cyg_drv_interrupt_mask(edb7xxx_chan->tx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
233 edb7xxx_chan->tx_enabled = false; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
234 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
235 if (chan->in_cbuf.len != 0) { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
236 cyg_drv_interrupt_create(edb7xxx_chan->rx_int_num, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
237 99, // Priority - unused |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
238 (cyg_addrword_t)chan, // Data item passed to interrupt handler |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
239 edb7xxx_serial_rx_ISR, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
240 edb7xxx_serial_rx_DSR, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
241 &edb7xxx_chan->serial_rx_interrupt_handle, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
242 &edb7xxx_chan->serial_rx_interrupt); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
243 cyg_drv_interrupt_attach(edb7xxx_chan->serial_rx_interrupt_handle); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
244 cyg_drv_interrupt_unmask(edb7xxx_chan->rx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
245 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
246 edb7xxx_serial_config_port(chan, &chan->config, true); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
247 return true; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
248 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
249 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
250 // This routine is called when the device is "looked" up (i.e. attached) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
251 static Cyg_ErrNo |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
252 edb7xxx_serial_lookup(struct cyg_devtab_entry **tab, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
253 struct cyg_devtab_entry *sub_tab, |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
254 const char *name) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
255 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
256 serial_channel *chan = (serial_channel *)(*tab)->priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
257 (chan->callbacks->serial_init)(chan); // Really only required for interrupt driven devices |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
258 return ENOERR; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
259 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
260 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
261 // Send a character to the device output buffer. |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
262 // Return 'true' if character is sent to device |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
263 static bool |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
264 edb7xxx_serial_putc(serial_channel *chan, unsigned char c) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
265 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
266 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
267 volatile cyg_uint8 *data = (volatile cyg_uint8 *)edb7xxx_chan->data; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
268 volatile cyg_uint32 *stat = (volatile cyg_uint32 *)edb7xxx_chan->stat; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
269 if ((*stat & SYSFLG1_UTXFF1) == 0) { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
270 // Transmit buffer/FIFO is not full |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
271 *data = c; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
272 return true; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
273 } else { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
274 // No space |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
275 return false; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
276 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
277 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
278 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
279 // Fetch a character from the device input buffer, waiting if necessary |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
280 static unsigned char |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
281 edb7xxx_serial_getc(serial_channel *chan) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
282 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
283 unsigned char c; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
284 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
285 volatile cyg_uint32 *data = (volatile cyg_uint32 *)edb7xxx_chan->data; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
286 volatile cyg_uint32 *stat = (volatile cyg_uint32 *)edb7xxx_chan->stat; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
287 while (*stat & SYSFLG1_URXFE1) ; // Wait for char |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
288 c = *data; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
289 return c; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
290 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
291 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
292 // Set up the device characteristics; baud rate, etc. |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
293 static bool |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
294 edb7xxx_serial_set_config(serial_channel *chan, cyg_serial_info_t *config) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
295 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
296 return edb7xxx_serial_config_port(chan, config, false); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
297 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
298 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
299 // Enable the transmitter (interrupt) on the device |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
300 static void |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
301 edb7xxx_serial_start_xmit(serial_channel *chan) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
302 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
303 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
304 edb7xxx_chan->tx_enabled = true; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
305 cyg_drv_interrupt_unmask(edb7xxx_chan->tx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
306 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
307 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
308 // Disable the transmitter on the device |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
309 static void |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
310 edb7xxx_serial_stop_xmit(serial_channel *chan) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
311 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
312 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
313 cyg_drv_interrupt_mask(edb7xxx_chan->tx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
314 edb7xxx_chan->tx_enabled = false; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
315 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
316 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
317 // Serial I/O - low level Tx interrupt handler (ISR) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
318 static cyg_uint32 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
319 edb7xxx_serial_tx_ISR(cyg_vector_t vector, cyg_addrword_t data) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
320 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
321 serial_channel *chan = (serial_channel *)data; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
322 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
323 cyg_drv_interrupt_mask(edb7xxx_chan->tx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
324 cyg_drv_interrupt_acknowledge(edb7xxx_chan->tx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
325 return CYG_ISR_CALL_DSR; // Cause DSR to be run |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
326 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
327 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
328 // Serial I/O - high level Tx interrupt handler (DSR) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
329 static void |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
330 edb7xxx_serial_tx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
331 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
332 serial_channel *chan = (serial_channel *)data; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
333 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
334 (chan->callbacks->xmt_char)(chan); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
335 if (edb7xxx_chan->tx_enabled) { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
336 cyg_drv_interrupt_unmask(edb7xxx_chan->tx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
337 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
338 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
339 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
340 // Serial I/O - low level Rx interrupt handler (ISR) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
341 static cyg_uint32 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
342 edb7xxx_serial_rx_ISR(cyg_vector_t vector, cyg_addrword_t data) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
343 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
344 serial_channel *chan = (serial_channel *)data; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
345 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
346 cyg_drv_interrupt_mask(edb7xxx_chan->rx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
347 cyg_drv_interrupt_acknowledge(edb7xxx_chan->rx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
348 return CYG_ISR_CALL_DSR; // Cause DSR to be run |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
349 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
350 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
351 // Serial I/O - high level Rx interrupt handler (DSR) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
352 static void |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
353 edb7xxx_serial_rx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
354 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
355 serial_channel *chan = (serial_channel *)data; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
356 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
357 volatile cyg_uint32 *datreg = (volatile cyg_uint32 *)edb7xxx_chan->data; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
358 volatile cyg_uint32 *stat = (volatile cyg_uint32 *)edb7xxx_chan->stat; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
359 while (!(*stat & SYSFLG1_URXFE1)) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
360 (chan->callbacks->rcv_char)(chan, *datreg); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
361 cyg_drv_interrupt_unmask(edb7xxx_chan->rx_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
362 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
363 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
364 // Serial I/O - low level Ms interrupt handler (ISR) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
365 static cyg_uint32 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
366 edb7xxx_serial_ms_ISR(cyg_vector_t vector, cyg_addrword_t data) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
367 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
368 serial_channel *chan = (serial_channel *)data; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
369 edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv; |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
370 cyg_drv_interrupt_mask(edb7xxx_chan->ms_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
371 cyg_drv_interrupt_acknowledge(edb7xxx_chan->ms_int_num); |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
372 return CYG_ISR_CALL_DSR; // Cause DSR to be run |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
373 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
374 |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
375 // Serial I/O - high level Ms interrupt handler (DSR) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
376 static void |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
377 edb7xxx_serial_ms_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data) |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
378 { |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
379 } |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
380 #endif // CYGPKG_IO_SERIAL_ARM_EDB7XXX |
|
f10165814f1e
Merge from eCos master repository on 1999-11-19-22:24:39-GMT
jlarmour
parents:
diff
changeset
|
381 |
