Mercurial > ecos-v3_0-branch
annotate packages/hal/sh/sh4/current/include/sh4_scif.h @ 2863:7d8c61e6225c default tip
* Added execute permissions to files missed in conversion from CVS
| author | alexs |
|---|---|
| date | Thu, 26 Mar 2009 20:39:18 +0000 |
| parents | 74dbf4c3f2e1 |
| children |
| rev | line source |
|---|---|
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
1 //============================================================================= |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
2 // |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
3 // sh4_scif.h |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
4 // |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
5 // Simple driver for the sh4 Serial Communication Interface with FIFO |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
6 // |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
7 //============================================================================= |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
8 // ####ECOSGPLCOPYRIGHTBEGIN#### |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
9 // ------------------------------------------- |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
10 // This file is part of eCos, the Embedded Configurable Operating System. |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
12 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
13 // eCos is free software; you can redistribute it and/or modify it under |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
14 // the terms of the GNU General Public License as published by the Free |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
15 // Software Foundation; either version 2 or (at your option) any later |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
16 // version. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
17 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
18 // eCos is distributed in the hope that it will be useful, but WITHOUT |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
19 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
20 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
21 // for more details. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
22 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
23 // You should have received a copy of the GNU General Public License |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
24 // along with eCos; if not, write to the Free Software Foundation, Inc., |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
25 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
26 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
27 // As a special exception, if other files instantiate templates or use |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
28 // macros or inline functions from this file, or you compile this file |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
29 // and link it with other works to produce a work based on this file, |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
30 // this file does not by itself cause the resulting work to be covered by |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
31 // the GNU General Public License. However the source code for this file |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
32 // must still be made available in accordance with section (3) of the GNU |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
33 // General Public License v2. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
34 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
35 // This exception does not invalidate any other reasons why a work based |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
36 // on this file might be covered by the GNU General Public License. |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
37 // ------------------------------------------- |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
1424
diff
changeset
|
38 // ####ECOSGPLCOPYRIGHTEND#### |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
39 //============================================================================= |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
40 //#####DESCRIPTIONBEGIN#### |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
41 // |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
42 // Author(s): jskov |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
43 // Contributors:Haruki Kashiwaya |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
44 // Date: 2000-08-09 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
45 // Description: Simple driver for the SH Serial Communication Interface |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
46 // The driver can be used for the SCIF modules. |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
47 // Clients of this file can configure the behavior with: |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
48 // CYGNUM_SCIF_PORTS: number of SCI ports |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
49 // |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
50 //####DESCRIPTIONEND#### |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
51 // |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
52 //============================================================================= |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
53 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
54 #include <pkgconf/hal.h> |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
55 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
56 #ifdef CYGNUM_HAL_SH_SH4_SCIF_PORTS |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
57 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
58 //-------------------------------------------------------------------------- |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
59 // Exported functions |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
60 |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
61 externC cyg_uint8 cyg_hal_plf_scif_getc(void* __ch_data); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
62 externC void cyg_hal_plf_scif_putc(void* __ch_data, cyg_uint8 c); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
63 void cyg_hal_plf_scif_init(int scif_index, int comm_index, |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
64 int rcv_vect, cyg_uint8* base); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
65 |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
66 #ifdef CYGPRI_HAL_SH_SH4_SCIF_PRIVATE |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
67 |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
68 //-------------------------------------------------------------------------- |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
69 // SCIF register offsets |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
70 #define _REG_SCSMR 0x00 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
71 #define _REG_SCBRR 0x04 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
72 #define _REG_SCSCR 0x08 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
73 #define _REG_SCFTDR 0x0c |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
74 #define _REG_SCFSR 0x10 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
75 #define _REG_SCFRDR 0x14 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
76 #define _REG_SCFCR 0x18 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
77 #define _REG_SCFDR 0x1c |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
78 #define _REG_SCSPTR 0x20 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
79 #define _REG_SCLSR 0x24 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
80 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
81 //-------------------------------------------------------------------------- |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
82 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
83 typedef struct { |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
84 cyg_uint8* base; |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
85 cyg_int32 msec_timeout; |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
86 int isr_vector; |
| 1424 | 87 cyg_uint32 baud_rate; |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
88 } channel_data_t; |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
89 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
90 //-------------------------------------------------------------------------- |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
91 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
92 #if !defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
93 // This one should only be used by old-stub compatibility code! |
|
267
797015ac62f3
Remove 'const' from channel information - it _can_ change (timeout period).
gthomas
parents:
210
diff
changeset
|
94 externC void cyg_hal_plf_scif_init_channel(channel_data_t* chan); |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
95 #warning "You should not be using anything but vv diag" |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
96 #endif |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
97 |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
98 #endif // CYGPRI_HAL_SH_SH4_SCIF_PRIVATE |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
99 |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
100 #endif // CYGNUM_HAL_SH_SH4_SCIF_PORTS |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
101 //----------------------------------------------------------------------------- |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
diff
changeset
|
102 // end of sh4_scif.h |
