source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/armv4/ezarm7/lpc2214.h@ 26

Last change on this file since 26 was 26, checked in by ykominami, 12 years ago

initial

File size: 8.0 KB
Line 
1/*
2 * TOPPERS/JSP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2005- by Monami software, LP.
9 *
10 * 上記著作権者
11は,以下の (1)〜(4) の条件か,Free Software Foundation
12 * によってå…
13¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
14 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
15 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
16å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
17 * 利用と呼ぶ)することを無償で許諾する.
18 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
19 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
20 * スコード中に含まれていること.
21 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
22 * 用できる形で再é…
23å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
24å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
25 * 者
26マニュアルなど)に,上記の著作権表示,この利用条件および下記
27 * の無保証規定を掲載すること.
28 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
29 * 用できない形で再é…
30å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
31 * と.
32 * (a) 再é…
33å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
34マニュアルなど)に,上記の著
35 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
36 * (b) 再é…
37å¸ƒã®å½¢æ…
38‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
39 * 報告すること.
40 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
41 * 害からも,上記著作権者
42およびTOPPERSプロジェクトをå…
43è²¬ã™ã‚‹ã“と.
44 *
45 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
46お
47 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
48 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
49 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
50 *
51 * @(#) $Id$
52 */
53
54#ifndef _LPC2214_H_
55#define _LPC2214_H_
56
57#ifndef _MACRO_ONLY
58#include <itron.h>
59#include <sil.h>
60#endif /* _MACRO_ONLY */
61
62#include <armv4.h>
63
64/*
65 * Device Registers
66 */
67
68/*
69 * PXA250 RTC
70 */
71#define RTC_RCNR ((VP)0x40900000)
72#define RTC_RTAR ((VP)0x40900004)
73#define RTC_RTSR ((VP)0x40900008)
74#define RTC_RTTR ((VP)0x4090000c)
75
76/*
77 * LPC2214 TIMER0/TIMER1
78 */
79#define TIMER_T0IR ((VP)0xe0004000)
80#define TIMER_T0TCR ((VP)0xe0004004)
81#define TIMER_T0TC ((VP)0xe0004008)
82#define TIMER_T0PR ((VP)0xe000400c)
83#define TIMER_T0PC ((VP)0xe0004010)
84#define TIMER_T0MCR ((VP)0xe0004014)
85#define TIMER_T0MR0 ((VP)0xe0004018)
86#define TIMER_T0MR1 ((VP)0xe000401c)
87#define TIMER_T0MR2 ((VP)0xe0004020)
88#define TIMER_T0MR3 ((VP)0xe0004024)
89#define TIMER_T0CCR ((VP)0xe0004028)
90#define TIMER_T0CR0 ((VP)0xe000402c)
91#define TIMER_T0CR1 ((VP)0xe0004030)
92#define TIMER_T0CR2 ((VP)0xe0004034)
93#define TIMER_T0CR3 ((VP)0xe0004038)
94#define TIMER_T0EMR ((VP)0xe000403c)
95
96#define TIMER_T1IR ((VP)0xe0008000)
97#define TIMER_T1TCR ((VP)0xe0008004)
98#define TIMER_T1TC ((VP)0xe0008008)
99#define TIMER_T1PR ((VP)0xe000800c)
100#define TIMER_T1PC ((VP)0xe0008010)
101#define TIMER_T1MCR ((VP)0xe0008014)
102#define TIMER_T1MR0 ((VP)0xe0008018)
103#define TIMER_T1MR1 ((VP)0xe000801c)
104#define TIMER_T1MR2 ((VP)0xe0008020)
105#define TIMER_T1MR3 ((VP)0xe0008024)
106#define TIMER_T1CCR ((VP)0xe0008028)
107#define TIMER_T1CR0 ((VP)0xe000802c)
108#define TIMER_T1CR1 ((VP)0xe0008030)
109#define TIMER_T1CR2 ((VP)0xe0008034)
110#define TIMER_T1CR3 ((VP)0xe0008038)
111#define TIMER_T1EMR ((VP)0xe000803c)
112
113#define MCR_INT_MR0 (1u)
114#define MCR_RST_MR0 (2u)
115#define MCR_STP_MR0 (4u)
116
117/*
118 * intrrupt control
119 */
120#define INTC_ICIP 0x40d00000
121#define INTC_ICMR 0x40d00004
122#define INTC_ICFP 0x40d0000c /* should not be used in the kenrel. */
123#define INTC_ICPR 0x40d00010
124#define INTC_ICLR ((VP)0x40d00008)
125#define INTC_ICCR ((VP)0x40d00014)
126#define INT_MASK_UA (1<<22)
127#define INT_MASK_T0 (1<<26)
128
129
130/*
131 * SCI Registers
132 */
133#define UART_BASE (0xE0010000)
134#define UART_RBR (VP)(UART_BASE+ 0)
135#define UART_THR (VP)(UART_BASE+ 0)
136#define UART_IER (VP)(UART_BASE+ 4)
137#define UART_IIR (VP)(UART_BASE+ 8)
138#define UART_FCR (VP)(UART_BASE+ 8)
139#define UART_LCR (VP)(UART_BASE+ 0xc)
140#define UART_MCR (VP)(UART_BASE+ 0x10)
141#define UART_LSR (VP)(UART_BASE+ 0x14)
142#define UART_MSR (VP)(UART_BASE+ 0x18)
143#define UART_SPR (VP)(UART_BASE+ 0x1c)
144#define UART_DLL (VP)(UART_BASE+ 0)
145#define UART_DLH (VP)(UART_BASE+ 4)
146/* #define UART_ISR (VP)(UART_BASE+ 0x20) -- LP2214 doesn't have ISR register. */
147
148#define GPIO_GPLR_x (VP)(0x40e00000)
149#define GPIO_GPLR_y (VP)(0x40e00004)
150#define GPIO_GPLR_z (VP)(0x40e00008)
151#define GPIO_GPDR_x (VP)(0x40e0000c)
152#define GPIO_GPDR_y (VP)(0x40e00010)
153#define GPIO_GPDR_z (VP)(0x40e00014)
154#define GPIO_GPSR_x (VP)(0x40e00018)
155#define GPIO_GPSR_y (VP)(0x40e0001c)
156#define GPIO_GPSR_z (VP)(0x40e00020)
157#define GPIO_GPCR_x (VP)(0x40e00024)
158#define GPIO_GPCR_y (VP)(0x40e00028)
159#define GPIO_GPCR_z (VP)(0x40e0002c)
160#define GPIO_GRER_x (VP)(0x40e00030)
161#define GPIO_GRER_y (VP)(0x40e00034)
162#define GPIO_GRER_z (VP)(0x40e00038)
163#define GPIO_GFER_x (VP)(0x40e0003c)
164#define GPIO_GFER_y (VP)(0x40e00040)
165#define GPIO_GFER_z (VP)(0x40e00044)
166#define GPIO_GEDR_x (VP)(0x40e00048)
167#define GPIO_GEDR_y (VP)(0x40e0004c)
168#define GPIO_GEDR_z (VP)(0x40e00050)
169#define GPIO_GAFR0_x (VP)(0x40e00054)
170#define GPIO_GAFR1_x (VP)(0x40e00058)
171#define GPIO_GAFR0_y (VP)(0x40e0005c)
172#define GPIO_GAFR1_y (VP)(0x40e00060)
173#define GPIO_GAFR0_z (VP)(0x40e00064)
174#define GPIO_GAFR1_z (VP)(0x40e00068)
175
176#define CQ_PXA250_CONFIG (VP)(0x0a000000)
177
178/*
179 * SCI Registers
180 */
181#define CAL_BPS(bps,clk) ((clk)/(16*(bps)))
182
183#define UART_FCR_TC 0x01
184#define UART_FCR_RC 0x02
185
186#define UART_INT_R 0x01
187#define UART_INT_T 0x02
188#define UART_INT_TI 0x04
189#define UART_INT_M 0x08
190
191#ifndef _MACRO_ONLY
192/*
193 * 内
194蔵UART用 簡易SIOドライバ
195 */
196
197
198/*
199 * カーネル起動時用の初期化(sys_putcを使用するため)
200 */
201extern void uart_init(void);
202
203/*
204 * シリアルI/Oポート管理ブロックの定義
205 */
206typedef struct sio_port_control_block SIOPCB;
207
208/*
209 * コールバックルーチンの識別番号
210 */
211#define SIO_ERDY_SND 1u /* 送信可能コールバック */
212#define SIO_ERDY_RCV 2u /* 受信通知コールバック */
213
214
215/*
216 * オンチップのUARTからのポーリング出力
217 */
218extern void uart_putc(char c);
219
220
221
222/*
223 * SIOドライバの初期化ルーチン
224 */
225extern void uart_initialize(void);
226
227
228/*
229 * オープンしているポートがあるか?
230 */
231extern BOOL uart_openflag(void);
232
233
234/*
235 * シリアルI/Oポートのオープン
236 */
237extern SIOPCB *uart_opn_por(ID siopid, VP_INT exinf);
238
239
240/*
241 * シリアルI/Oポートのクローズ
242 */
243extern void uart_cls_por(SIOPCB *siopcb);
244
245
246/*
247 * シリアルI/Oポートへの文字送信
248 */
249extern BOOL uart_snd_chr(SIOPCB *siopcb, char c);
250
251
252/*
253 * シリアルI/Oポートからの文字受信
254 */
255extern INT uart_rcv_chr(SIOPCB *siopcb);
256
257
258/*
259 * シリアルI/Oポートからのコールバックの許可
260 */
261extern void uart_ena_cbr(SIOPCB *siopcb, UINT cbrtn);
262
263
264/*
265 * シリアルI/Oポートからのコールバックの禁止
266 */
267extern void uart_dis_cbr(SIOPCB *siopcb, UINT cbrtn);
268
269
270/*
271 * SIOの割込みサービスルーチン
272 */
273extern void uart_isr(void);
274
275
276/*
277 * シリアルI/Oポートからの送信可能コールバック
278 */
279extern void uart_ierdy_snd(VP_INT exinf);
280
281
282/*
283 * シリアルI/Oポートからの受信通知コールバック
284 */
285extern void uart_ierdy_rcv(VP_INT exinf);
286
287
288#endif /* _MACRO_ONLY */
289
290
291#endif /* _LPC2214_H_ */
Note: See TracBrowser for help on using the repository browser.