]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - include/ns16550.h
rename CFG_ macros to CONFIG_SYS
[karo-tx-uboot.git] / include / ns16550.h
index 4dd39fee3280212a57cb8d78ade57646b57547e2..e6ade61a226beab883488376c53ae513c599785f 100644 (file)
@@ -2,14 +2,17 @@
  * NS16550 Serial Port
  * originally from linux source (arch/ppc/boot/ns16550.h)
  * modified slightly to
- * have addresses as offsets from CFG_ISA_BASE
+ * have addresses as offsets from CONFIG_SYS_ISA_BASE
  * added a few more definitions
  * added prototypes for ns16550.c
  * reduced no of com ports to 2
  * modifications (c) Rob Taylor, Flying Pig Systems. 2000.
+ *
+ * added support for port on 64-bit bus
+ * by Richard Danter (richard.danter@windriver.com), (C) 2005 Wind River Systems
  */
 
-#if (CFG_NS16550_REG_SIZE == 1)
+#if (CONFIG_SYS_NS16550_REG_SIZE == 1)
 struct NS16550 {
        unsigned char rbr;              /* 0 */
        unsigned char ier;              /* 1 */
@@ -19,8 +22,20 @@ struct NS16550 {
        unsigned char lsr;              /* 5 */
        unsigned char msr;              /* 6 */
        unsigned char scr;              /* 7 */
+#if defined(CONFIG_OMAP730)
+       unsigned char mdr1;             /* 8 */
+       unsigned char reg9;             /* 9 */
+       unsigned char regA;             /* A */
+       unsigned char regB;             /* B */
+       unsigned char regC;             /* C */
+       unsigned char regD;             /* D */
+       unsigned char regE;             /* E */
+       unsigned char regF;             /* F */
+       unsigned char reg10;            /* 10 */
+       unsigned char ssr;              /* 11*/
+#endif
 } __attribute__ ((packed));
-#elif (CFG_NS16550_REG_SIZE == 2)
+#elif (CONFIG_SYS_NS16550_REG_SIZE == 2)
 struct NS16550 {
        unsigned short rbr;             /* 0 */
        unsigned short ier;             /* 1 */
@@ -31,18 +46,18 @@ struct NS16550 {
        unsigned short msr;             /* 6 */
        unsigned short scr;             /* 7 */
 } __attribute__ ((packed));
-#elif (CFG_NS16550_REG_SIZE == 4)
+#elif (CONFIG_SYS_NS16550_REG_SIZE == 4)
 struct NS16550 {
-       unsigned long rbr;              /* 0 */
-       unsigned long ier;              /* 1 */
-       unsigned long fcr;              /* 2 */
-       unsigned long lcr;              /* 3 */
-       unsigned long mcr;              /* 4 */
-       unsigned long lsr;              /* 5 */
-       unsigned long msr;              /* 6 */
-       unsigned long scr;              /* 7 */
-} __attribute__ ((packed));
-#elif (CFG_NS16550_REG_SIZE == -4)
+       unsigned long rbr;              /* 0 r  */
+       unsigned long ier;              /* 1 rw */
+       unsigned long fcr;              /* 2 w  */
+       unsigned long lcr;              /* 3 rw */
+       unsigned long mcr;              /* 4 rw */
+       unsigned long lsr;              /* 5 r  */
+       unsigned long msr;              /* 6 r  */
+       unsigned long scr;              /* 7 rw */
+}; /* No need to pack an already aligned struct */
+#elif (CONFIG_SYS_NS16550_REG_SIZE == -4)
 struct NS16550 {
        unsigned char rbr;              /* 0 */
        int pad1:24;
@@ -60,7 +75,7 @@ struct NS16550 {
        int pad7:24;
        unsigned char scr;              /* 7 */
        int pad8:24;
-#if defined(CONFIG_OMAP1510) || defined(CONFIG_OMAP1610)
+#if defined(CONFIG_OMAP)
        unsigned char mdr1;             /* mode select reset TL16C750*/
 #endif
 #ifdef CONFIG_OMAP1510
@@ -70,6 +85,25 @@ struct NS16550 {
        int pad10:24;
 #endif
 } __attribute__ ((packed));
+#elif (CONFIG_SYS_NS16550_REG_SIZE == -8)
+struct NS16550 {
+       unsigned char rbr;              /* 0 */
+       unsigned char pad0[7];
+       unsigned char ier;              /* 1 */
+       unsigned char pad1[7];
+       unsigned char fcr;              /* 2 */
+       unsigned char pad2[7];
+       unsigned char lcr;              /* 3 */
+       unsigned char pad3[7];
+       unsigned char mcr;              /* 4 */
+       unsigned char pad4[7];
+       unsigned char lsr;              /* 5 */
+       unsigned char pad5[7];
+       unsigned char msr;              /* 6 */
+       unsigned char pad6[7];
+       unsigned char scr;              /* 7 */
+       unsigned char pad7[7];
+} __attribute__ ((packed));
 #else
 #error "Please define NS16550 registers size."
 #endif
@@ -90,7 +124,7 @@ typedef volatile struct NS16550 *NS16550_t;
 #define MCR_DMA_EN      0x04
 #define MCR_TX_DFR      0x08
 
-#define LCR_WLS_MSK    0x03            /* character length slect mask */
+#define LCR_WLS_MSK    0x03            /* character length select mask */
 #define LCR_WLS_5      0x00            /* 5 bit character length */
 #define LCR_WLS_6      0x01            /* 6 bit character length */
 #define LCR_WLS_7      0x02            /* 7 bit character length */