|  | @@ -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 */
 |