OSDN Git Service

111b887f01fe0ded3d81559ffb608c59c7b8733b
[hos/hos-v4a.git] / aplfw / driver / serial / at91 / at91usartdrv_local.h
1 /** 
2  *  Hyper Operating System  Application Framework
3  *
4  * @file  at91usartdrv_local.h
5  * @brief %jp{ATMEL AT91シリーズUSART用デバイスドライバ}
6  *
7  * Copyright (C) 2006-2007 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #ifndef __HOS__at91usartdrv_local_h__
13 #define __HOS__at91usartdrv_local_h__
14
15
16 #include "at91usartdrv.h"
17
18
19 #define AT91USART_US_CR                 0x00            /* Control Register */
20 #define AT91USART_US_MR                 0x04            /* Mode Register */
21 #define AT91USART_US_IER                0x08            /* Interrupt Enable Register */
22 #define AT91USART_US_IDR                0x0c            /* Interrupt Disable Register */
23 #define AT91USART_US_IMR                0x10            /* Interrupt Mask Register */
24 #define AT91USART_US_CSR                0x14            /* Channel Status Register */
25 #define AT91USART_US_RHR                0x18            /* Receiver Holding Register */
26 #define AT91USART_US_THR                0x1c            /* Transmitter Holding Register */
27 #define AT91USART_US_BRGR               0x20            /* Baud Rate Generator Register */
28 #define AT91USART_US_RTOR               0x24            /* Receiver Time-out Register */
29 #define AT91USART_US_TTGR               0x28            /* Transmitter Time-guard Register */
30 #define AT91USART_US_RPR                0x30            /* Receive Pointer Register */
31 #define AT91USART_US_RCR                0x34            /* Receive Counter Register */
32 #define AT91USART_US_TPR                0x38            /* Transmit Pointer Register */
33 #define AT91USART_US_TCR                0x3c            /* Transmit Counter Register */
34
35 #define AT91USART_REG_WRITE(self, offset, val)  do { *(unsigned long *)((char *)(self)->pRegBase + (offset)) = (val); } while(0)
36 #define AT91USART_REG_READ(self, offset)                        (*((unsigned long *)((char *)(self)->pRegBase + (offset))))
37
38
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42
43 HANDLE    At91UsartDrv_Open(C_DRVOBJ *pDrvObj, const char *pszPath, int iMode);
44 void      At91UsartDrv_Close(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
45 FILE_ERR  At91UsartDrv_IoControl(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, int iFunc, void *pInBuf, FILE_SIZE InSize, const void *pOutBuf, FILE_SIZE OutSize);
46 FILE_POS  At91UsartDrv_Seek(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, FILE_POS Offset, int iOrign);
47 FILE_SIZE At91UsartDrv_Read(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, void *pBuf, FILE_SIZE Size);
48 FILE_SIZE At91UsartDrv_Write(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, const void *pData, FILE_SIZE Size);
49 FILE_ERR  At91UsartDrv_Flush(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
50
51 void      At91UsartDrv_Isr(VPARAM Param);                       /* 割込み処理 */
52
53
54 #ifdef __cplusplus
55 }
56 #endif
57
58
59 #endif  /* __HOS__armuartdrv_h__ */
60
61
62 /* end of file */