source: anotherchoice/tags/jsp-1.4.4-full-UTF8/pdic/simple_sio/fdc37c935a.h@ 26

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

initial

File size: 6.1 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 *
9 * 上記著作権者
10は,以下の (1)〜(4) の条件か,Free Software Foundation
11 * によってå…
12¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
13 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
14 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
15å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
16 * 利用と呼ぶ)することを無償で許諾する.
17 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
18 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
19 * スコード中に含まれていること.
20 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
21 * 用できる形で再é…
22å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
23å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
24 * 者
25マニュアルなど)に,上記の著作権表示,この利用条件および下記
26 * の無保証規定を掲載すること.
27 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
28 * 用できない形で再é…
29å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
30 * と.
31 * (a) 再é…
32å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
33マニュアルなど)に,上記の著
34 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
35 * (b) 再é…
36å¸ƒã®å½¢æ…
37‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
38 * 報告すること.
39 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
40 * 害からも,上記著作権者
41およびTOPPERSプロジェクトをå…
42è²¬ã™ã‚‹ã“と.
43 *
44 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
45お
46 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
47 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
48 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
49 *
50 * @(#) $Id: fdc37c935a.h,v 1.1 2003/12/11 06:47:39 honda Exp $
51 */
52
53/*
54 * スーパI/O FDC37C935A 用ドライバ
55 */
56#ifndef _FDC37C935A_H_
57#define _FDC37C935A_H_
58
59#include <t_config.h>
60
61/*
62 * ベースアドレス
63 */
64//#define SMSC_BASE_ADDR 0xB0400000
65
66#define SMSC_CONFIG_PORT (SMSC_BASE_ADDR + 0x7E0) /* H */
67#define SMSC_INDEX_PORT (SMSC_BASE_ADDR + 0x7E0) /* H */
68#define SMSC_DATA_PORT (SMSC_BASE_ADDR + 0x7E2) /* H */
69
70
71#ifndef _MACRO_ONLY
72
73Inline void
74smsc_config_write(UH index, UH data)
75{
76 sil_wrh_mem((VP)SMSC_INDEX_PORT, (index << 8));
77 sil_wrh_mem((VP)SMSC_DATA_PORT, (data << 8));
78}
79
80Inline UH
81smsc_config_read(UH index)
82{
83 sil_wrh_mem((VP)SMSC_INDEX_PORT, (index << 8));
84 return(sil_reh_mem((VP)SMSC_DATA_PORT) >> 8);
85}
86
87/*
88 * 初期化
89 */
90extern void smsc_init(void);
91
92
93
94#endif /* _MACRO_ONLY */
95
96
97/*
98 * SCI0
99 */
100#define SMSC_SCI0_BASE_ADDR 0x03f8
101
102#define SMSC_SCI0_RBR (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0x0) /* H */
103#define SMSC_SCI0_THR (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0x0) /* H */
104#define SMSC_SCI0_DLL (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0x0) /* H */
105#define SMSC_SCI0_IER (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0x2) /* H */
106#define SMSC_SCI0_DLM (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0x2) /* H */
107#define SMSC_SCI0_IIR (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0x4) /* H */
108#define SMSC_SCI0_FCR (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0x4) /* H */
109#define SMSC_SCI0_LCR (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0x6) /* H */
110#define SMSC_SCI0_MCR (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0x8) /* H */
111#define SMSC_SCI0_LSR (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0xA) /* H */
112#define SMSC_SCI0_MSR (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0xC) /* H */
113#define SMSC_SCI0_SCR (SMSC_BASE_ADDR + SMSC_SCI0_BASE_ADDR * 2 + 0xE) /* H */
114
115/*
116 * スーパーI/O(FDC37C935A)用 簡易SIOドライバ
117 */
118
119#ifndef _MACRO_ONLY
120
121/*
122 * 割込み以外の初期化
123 * カーネル起動時用の初期化(sys_putcを使用するため)
124 */
125extern void fdc37c935a_init(void);
126
127
128/*
129 * シリアルI/Oポート管理ブロックの定義
130 */
131typedef struct sio_port_control_block SIOPCB;
132
133/*
134 * コールバックルーチンの識別番号
135 */
136#define SIO_ERDY_SND 1u /* 送信可能コールバック */
137#define SIO_ERDY_RCV 2u /* 受信通知コールバック */
138
139
140/*
141 * SIOドライバの初期化ルーチン
142 */
143extern void smsc_sci0_initialize(void);
144
145
146/*
147 * オープンしているポートがあるか?
148 */
149extern BOOL smsc_sci0_openflag(void);
150
151
152/*
153 * シリアルI/Oポートのオープン
154 */
155extern SIOPCB *smsc_sci0_opn_por(ID siopid, VP_INT exinf);
156
157
158/*
159 * シリアルI/Oポートのクローズ
160 */
161extern void smsc_sci0_cls_por(SIOPCB *siopcb);
162
163
164/*
165 * シリアルI/Oポートへの文字送信
166 */
167extern BOOL smsc_sci0_snd_chr(SIOPCB *siopcb, char c);
168
169
170/*
171 * シリアルI/Oポートからの文字受信
172 */
173extern INT smsc_sci0_rcv_chr(SIOPCB *siopcb);
174
175
176/*
177 * シリアルI/Oポートからのコールバックの許可
178 */
179extern void smsc_sci0_ena_cbr(SIOPCB *siopcb, UINT cbrtn);
180
181
182/*
183 * シリアルI/Oポートからのコールバックの禁止
184 */
185extern void smsc_sci0_dis_cbr(SIOPCB *siopcb, UINT cbrtn);
186
187
188/*
189 * SIOの割込みサービスルーチン
190 */
191extern void smsc_sci0_isr(void);
192
193
194/*
195 * シリアルI/Oポートからの送信可能コールバック
196 */
197extern void smsc_sci0_ierdy_snd(VP_INT exinf);
198
199
200/*
201 * シリアルI/Oポートからの受信通知コールバック
202 */
203extern void smsc_sci0_ierdy_rcv(VP_INT exinf);
204
205
206
207
208#endif /* _MACRO_ONLY */
209
210
211#endif /* _FDC37C935A_H_ */
Note: See TracBrowser for help on using the repository browser.