⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ul_82510.h

📁 linux下的RS485的驱动 值得一看
💻 H
字号:
/* * include/linux/ul_82510.h * */#ifndef _LINUX_U510_REG_H#define _LINUX_U510_REG_H/* *  For Intel 82510 serial port *//* *  Port Address */#define	U510_BAL	0x0000  /* Pokud DLAB =1 */#define	U510_BAH	0x0001  /* Pokud DLAB =1 */#define U510_GER	0x0001#define U510_GIR	0x0002  /* 0x2002 */#define U510_LCR	0x0003#define U510_MCR	0x0004#define U510_LSR	0x0005#define U510_MSR	0x0006  /* 0x2006 */#define U510_ACR0	0x0007#define U510_RXD	0x2000#define U510_RXF	0x2001#define U510_TXD	0x2000#define U510_TXF	0x2001#define U510_TMST	0x2003#define U510_TMCR	0x2003#define U510_FLR	0x2004#define U510_RST	0x2005#define U510_RCM	0x2005#define U510_GSR	0x2007#define U510_ICM	0x2007#define U510_FMD	0x4001#define U510_TMD	0x4003#define U510_IMD	0x4004#define U510_ACR1	0x4005#define U510_RIE	0x4006#define U510_RMD	0x4007#define U510_CLCF	0x6000#define U510_BACF	0x6001#define U510_BBL	0x6000  /* Pokud DLAB =1 */#define U510_BBH	0x6001  /* Pokud DLAB =1 */#define U510_BBCF	0x6003#define U510_PMD	0x6004#define U510_MIE	0x6005#define U510_TMIE	0x6006/* *  Register masks */#define U510_MCR_OEQ	0x02#define U510_MCR_OE	0x06#define U510_MCR_IE	0x04#define U510_GIR_NO_INT	0x01	/* No interrupts pending */#define U510_GIR_ID	0x0E	/* Mask for the interrupt ID */#define U510_GER_RI	0x01	/* RxFIFO int enable */#define U510_GER_TI	0x02	/* TxFIFO int enable */#define U510_GER_RM	0x04	/* Rx machine int enable */#define U510_GER_MI	0x08	/* modem interrupt enable */#define U510_GER_TM	0x10	/* Tx machine int enable */#define U510_GER_TIE	0x20	/* Timer int enable */#define U510_LCR_C	0x03	/* vysilani nebo prijem */#define U510_LCR_B	0x40	/* vysilani pretrzeni */#define U510_LCR_DLAB	0x80	/* zadavani BA a BB */#define U510_LSR_RI	0x01	/* data prijata */#define U510_LSR_C	0x04	/* prijata ridici instrukce */#define U510_LSR_ERR	0x1A	/* chyba v prijmu */#define U510_LSR_TRE	0x20	/* vystupni registr prazdny */#define U510_LSR_TME	0x40	/* vystup ukoncen */#define U510_RCM_FLUSH	0xB4	/* vymazani zbytku a prijem */#define U510_MSR_TxD	0x20	/* TxD = 0 ? */#define U510_MSR_RxD	0x40	/* RxD = 0 ? */#ifndef _WIN32/* *  82510 bank switching, if _U510_SBANK_SHADOW_VAR defines variable name *  bank switching is used only when necessary */ #ifndef _U510_SBANK_SHADOW_VAR  #define u510_sbank(base,port) \	(ul_outb(base+U510_GIR,(unsigned)(port)>>8),(base+((port)&0xFF))) #else  #define u510_sbank(base,port) \	({\	 if (/*(!__builtin_constant_p(_U510_SBANK_SHADOW_VAR))||*/\	    ((unsigned)(port)>>8!=_U510_SBANK_SHADOW_VAR))\	  ul_outb((base)+U510_GIR,(unsigned)(port)>>8);\	 _U510_SBANK_SHADOW_VAR=(unsigned)(port)>>8;\	 ((base)+((port)&0xFF));\	}) #endif  /* Input output routines */ #define u510_inb(base,port)	(ul_inb(u510_sbank(base,port))) #define u510_outb(base,port,val) (ul_outb(u510_sbank(base,port),val)) #define u510_pool_gir(base)	(!(ul_inb((base)+U510_GIR)&U510_GIR_NO_INT))#else/* *  82510 bank switching, if _U510_SBANK_SHADOW_VAR defines variable name *  bank switching is used only when necessary */ #ifndef _U510_SBANK_SHADOW_VAR  #define u510_sbank(base,port) \	(ul_outb((base+U510_GIR),(unsigned)(port)>>8),\	 base+(port&0xFF)) #else  #define u510_sbank(base,port) \	((\	  ((unsigned)(port)>>8!=_U510_SBANK_SHADOW_VAR)?\	  ul_outb((base)+U510_GIR,(unsigned)(port)>>8):0,\	 _U510_SBANK_SHADOW_VAR=(unsigned)(port)>>8,\	 ((base)+((port)&0xFF))\	)) #endif  /* Input output routines */ #define u510_inb(base,port)	(ul_inb(u510_sbank(base,port))) #define u510_outb(base,port,val) (ul_outb(u510_sbank(base,port),val)) #define u510_pool_gir(base)	(!(ul_inb((base)+U510_GIR)&U510_GIR_NO_INT))#endif#endif /* _LINUX_U510_REG_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -