| 
					
				 | 
			
			
				@@ -868,3 +868,134 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define UMISC_RTS	 0x0040	/* Set RTS status */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define UMISC_RTSCONT	 0x0080	/* Choose RTS control */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define UMISC_IR_TEST	 0x0400	/* IRDA Test Enable */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define UMISC_BAUD_RESET 0x0800	/* Reset Baud Rate Generation Counters */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define UMISC_LOOP	 0x1000	/* Serial Loopback Enable */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define UMISC_FORCE_PERR 0x2000	/* Force Parity Error */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define UMISC_CLKSRC	 0x4000	/* Clock Source */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define UMISC_BAUD_TEST	 0x8000	/* Enable Baud Test Mode */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/*  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * UART Non-integer Prescaler Register 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NIPR_ADDR	0xfffff90a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NIPR		WORD_REF(NIPR_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NIPR_STEP_VALUE_MASK	0x00ff	/* NI prescaler step value */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NIPR_STEP_VALUE_SHIFT	0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NIPR_SELECT_MASK	0x0700	/* Tap Selection */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NIPR_SELECT_SHIFT	8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NIPR_PRE_SEL		0x8000	/* Non-integer prescaler select */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* generalization of uart control registers to support multiple ports: */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+typedef struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  volatile unsigned short int ustcnt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  volatile unsigned short int ubaud; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  union { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    volatile unsigned short int w; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      volatile unsigned char status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      volatile unsigned char rxdata; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } b; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } urx; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  union { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    volatile unsigned short int w; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      volatile unsigned char status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      volatile unsigned char txdata; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } b; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } utx; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  volatile unsigned short int umisc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  volatile unsigned short int nipr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  volatile unsigned short int hmark; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  volatile unsigned short int unused; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} __attribute__((packed)) m68328_uart; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/********** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 0xFFFFFAxx -- LCD Controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ **********/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * LCD Screen Starting Address Register  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LSSA_ADDR	0xfffffa00 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LSSA		LONG_REF(LSSA_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LSSA_SSA_MASK	0x1ffffffe	/* Bits 0 and 29-31 are reserved */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * LCD Virtual Page Width Register  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LVPW_ADDR	0xfffffa05 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LVPW		BYTE_REF(LVPW_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * LCD Screen Width Register (not compatible with '328 !!!)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LXMAX_ADDR	0xfffffa08 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LXMAX		WORD_REF(LXMAX_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LXMAX_XM_MASK	0x02f0		/* Bits 0-3 and 10-15 are reserved */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * LCD Screen Height Register 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LYMAX_ADDR	0xfffffa0a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LYMAX		WORD_REF(LYMAX_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LYMAX_YM_MASK	0x01ff		/* Bits 9-15 are reserved */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * LCD Cursor X Position Register 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCXP_ADDR	0xfffffa18 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCXP		WORD_REF(LCXP_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCXP_CC_MASK	0xc000		/* Cursor Control */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define   LCXP_CC_TRAMSPARENT	0x0000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define   LCXP_CC_BLACK		0x4000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define   LCXP_CC_REVERSED	0x8000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define   LCXP_CC_WHITE		0xc000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCXP_CXP_MASK	0x02ff		/* Cursor X position */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * LCD Cursor Y Position Register 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCYP_ADDR	0xfffffa1a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCYP		WORD_REF(LCYP_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCYP_CYP_MASK	0x01ff		/* Cursor Y Position */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * LCD Cursor Width and Heigth Register 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCWCH_ADDR	0xfffffa1c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCWCH		WORD_REF(LCWCH_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCWCH_CH_MASK	0x001f		/* Cursor Height */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCWCH_CH_SHIFT	0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCWCH_CW_MASK	0x1f00		/* Cursor Width */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LCWCH_CW_SHIFT	8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * LCD Blink Control Register 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LBLKC_ADDR	0xfffffa1f 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LBLKC		BYTE_REF(LBLKC_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LBLKC_BD_MASK	0x7f	/* Blink Divisor */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LBLKC_BD_SHIFT	0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LBLKC_BKEN	0x80	/* Blink Enabled */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * LCD Panel Interface Configuration Register  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LPICF_ADDR	0xfffffa20 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LPICF		BYTE_REF(LPICF_ADDR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define LPICF_GS_MASK	 0x03	 /* Gray-Scale Mode */ 
			 |