]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - board/logicpd/zoom2/zoom2_serial.h
Merge branch 'master' of git://git.denx.de/u-boot-arm
[karo-tx-uboot.git] / board / logicpd / zoom2 / zoom2_serial.h
1 /*
2  * Copyright (c) 2009 Wind River Systems, Inc.
3  * Tom Rix <Tom.Rix@windriver.com>
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of
8  * the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18  * MA 02111-1307 USA
19  *
20  */
21
22 #ifndef ZOOM2_SERIAL_H
23 #define ZOOM2_SERIAL_H
24
25 extern int zoom2_debug_board_connected (void);
26
27 #define SERIAL_TL16CP754C_BASE  0x10000000      /* Zoom2 Serial chip address */
28
29 #define QUAD_BASE_0     SERIAL_TL16CP754C_BASE
30 #define QUAD_BASE_1     (SERIAL_TL16CP754C_BASE + 0x100)
31 #define QUAD_BASE_2     (SERIAL_TL16CP754C_BASE + 0x200)
32 #define QUAD_BASE_3     (SERIAL_TL16CP754C_BASE + 0x300)
33
34 #define S(a) #a
35 #define N(a) S(quad##a)
36 #define U(a) S(UART##a)
37
38 #define QUAD_INIT(n)                            \
39 int quad_init_##n(void)                         \
40 {                                               \
41         return quad_init_dev(QUAD_BASE_##n);    \
42 }                                               \
43 void quad_setbrg_##n(void)                      \
44 {                                               \
45         quad_setbrg_dev(QUAD_BASE_##n);         \
46 }                                               \
47 void quad_putc_##n(const char c)                \
48 {                                               \
49         quad_putc_dev(QUAD_BASE_##n, c);        \
50 }                                               \
51 void quad_puts_##n(const char *s)               \
52 {                                               \
53         quad_puts_dev(QUAD_BASE_##n, s);        \
54 }                                               \
55 int quad_getc_##n(void)                         \
56 {                                               \
57         return quad_getc_dev(QUAD_BASE_##n);    \
58 }                                               \
59 int quad_tstc_##n(void)                         \
60 {                                               \
61         return quad_tstc_dev(QUAD_BASE_##n);    \
62 }                                               \
63 struct serial_device zoom2_serial_device##n =   \
64 {                                               \
65         N(n),                                   \
66         U(n),                                   \
67         quad_init_##n,                          \
68         NULL,                                   \
69         quad_setbrg_##n,                        \
70         quad_getc_##n,                          \
71         quad_tstc_##n,                          \
72         quad_putc_##n,                          \
73         quad_puts_##n,                          \
74 };
75
76 #endif /* ZOOM2_SERIAL_H */