]> git.karo-electronics.de Git - karo-tx-redboot.git/blob - packages/devs/serial/sh/sh4_202_md/v2_0/include/sh4_202_md_scif.inl
Initial revision
[karo-tx-redboot.git] / packages / devs / serial / sh / sh4_202_md / v2_0 / include / sh4_202_md_scif.inl
1 #ifndef CYGONCE_DEVS_SH_SH4_202_MD_SCIF_H
2 #define CYGONCE_DEVS_SH_SH4_202_MD_SCIF_H
3
4 //==========================================================================
5 //
6 //      devs/serial/sh/sh4_202_md_scif.inl
7 //
8 //      Serial I/O specification for SuperH SH4-202 MicroDev development board
9 //
10 //==========================================================================
11 //####ECOSGPLCOPYRIGHTBEGIN####
12 // -------------------------------------------
13 // This file is part of eCos, the Embedded Configurable Operating System.
14 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
15 // Copyright (C) 2003 Nick Garnett
16 //
17 // eCos is free software; you can redistribute it and/or modify it under
18 // the terms of the GNU General Public License as published by the Free
19 // Software Foundation; either version 2 or (at your option) any later version.
20 //
21 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
22 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
23 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
24 // for more details.
25 //
26 // You should have received a copy of the GNU General Public License along
27 // with eCos; if not, write to the Free Software Foundation, Inc.,
28 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
29 //
30 // As a special exception, if other files instantiate templates or use macros
31 // or inline functions from this file, or you compile this file and link it
32 // with other works to produce a work based on this file, this file does not
33 // by itself cause the resulting work to be covered by the GNU General Public
34 // License. However the source code for this file must still be made available
35 // in accordance with section (3) of the GNU General Public License.
36 //
37 // This exception does not invalidate any other reasons why a work based on
38 // this file might be covered by the GNU General Public License.
39 // -------------------------------------------
40 //####ECOSGPLCOPYRIGHTEND####
41 //==========================================================================
42 //#####DESCRIPTIONBEGIN####
43 //
44 // Author(s):    jlarmour
45 // Contributors:
46 // Date:         2003-09-18
47 // Purpose:      Specifies serial resources for the platform.
48 // Description:  This file can be include from either SCI or SCIF/IRDA driver
49 //               sources and should specify driver information as required
50 //               for the platform. This file was derived from the se77x9
51 //               driver.
52 //
53 //####DESCRIPTIONEND####
54 //==========================================================================
55
56 #include <pkgconf/io_serial_sh_sh4_202_md.h>
57
58 #ifdef CYGPKG_IO_SERIAL_SH_SH4_202_MD_SERIAL1
59 static sh_scif_info sh4_202_md_serial_info1 = {
60     er_int_num : CYGNUM_HAL_INTERRUPT_SCIF_ERI,
61     rx_int_num : CYGNUM_HAL_INTERRUPT_SCIF_RXI,
62     br_int_num : CYGNUM_HAL_INTERRUPT_SCIF_BRI,
63     tx_int_num : CYGNUM_HAL_INTERRUPT_SCIF_TXI,
64     ctrl_base  : CYGARC_REG_SCIF_SCSMR2,
65 #ifdef CYGINT_IO_SERIAL_SH_SCIF_DMA
66 # ifdef CYGSEM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_DMA
67     dma_enable : true,// we want DMA for this channel
68     dma_xmt_cr_flags : CYGARC_REG_CHCR_RS_SCIF_TX
69 # else
70     dma_enable : false // No DMA
71 # endif
72 #endif
73 };
74
75 #if CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BUFSIZE > 0
76 static unsigned char sh4_202_md_serial_out_buf1[CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BUFSIZE];
77 static unsigned char sh4_202_md_serial_in_buf1[CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BUFSIZE];
78
79 static SERIAL_CHANNEL_USING_INTERRUPTS(sh4_202_md_serial_channel1,
80                                        sh_scif_funs, 
81                                        sh4_202_md_serial_info1,
82                                        CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BAUD),
83                                        CYG_SERIAL_STOP_DEFAULT,
84                                        CYG_SERIAL_PARITY_DEFAULT,
85                                        CYG_SERIAL_WORD_LENGTH_DEFAULT,
86                                        CYG_SERIAL_FLAGS_DEFAULT,
87                                        &sh4_202_md_serial_out_buf1[0], 
88                                        sizeof(sh4_202_md_serial_out_buf1),
89                                        &sh4_202_md_serial_in_buf1[0],  
90                                        sizeof(sh4_202_md_serial_in_buf1)
91     );
92 #else
93 static SERIAL_CHANNEL(sh4_202_md_serial_channel1,
94                       sh_scif_funs, 
95                       sh4_202_md_serial_info1,
96                       CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BAUD),
97                       CYG_SERIAL_STOP_DEFAULT,
98                       CYG_SERIAL_PARITY_DEFAULT,
99                       CYG_SERIAL_WORD_LENGTH_DEFAULT,
100                       CYG_SERIAL_FLAGS_DEFAULT
101     );
102 #endif
103
104 DEVTAB_ENTRY(sh_serial_io1,
105              CYGDAT_IO_SERIAL_SH_SH4_202_MD_SERIAL1_NAME,
106              0,                 // Does not depend on a lower level interface
107              &cyg_io_serial_devio, 
108              sh_scif_init, 
109              sh_scif_lookup,          // Serial driver may need initializing
110              &sh4_202_md_serial_channel1
111     );
112 #endif // CYGPKG_IO_SERIAL_SH_SH4_202_MD_SERIAL1
113
114 #endif // CYGONCE_DEVS_SH_SH4_202_MD_SCIF_H
115
116 // EOF sh4_202_md_scif.inl