MIPS archtecture have no "in_le32/in_be32/out_le32/out_be32" macro,
but usually define CONFIG_SYS_BIG_ENDIAN, this patch use readl/writel
for register operation in mips when define CONFIG_SYS_NS16550_MEM32.

Signed-off-by: Wills Wang <wills.w...@live.com>
---

Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 drivers/serial/ns16550.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 3fab3f1..3b24af0 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -64,12 +64,16 @@ static inline void serial_out_shift(void *addr, int shift, 
int value)
 {
 #ifdef CONFIG_SYS_NS16550_PORT_MAPPED
        outb(value, (ulong)addr);
-#elif defined(CONFIG_SYS_NS16550_MEM32) && !defined(CONFIG_SYS_BIG_ENDIAN)
-       out_le32(addr, value);
-#elif defined(CONFIG_SYS_NS16550_MEM32) && defined(CONFIG_SYS_BIG_ENDIAN)
-       out_be32(addr, value);
 #elif defined(CONFIG_SYS_NS16550_MEM32)
+#ifdef CONFIG_MIPS
        writel(value, addr);
+#else
+#ifndef CONFIG_SYS_BIG_ENDIAN
+       out_le32(addr, value);
+#else
+       out_be32(addr, value);
+#endif
+#endif
 #elif defined(CONFIG_SYS_BIG_ENDIAN)
        writeb(value, addr + (1 << shift) - 1);
 #else
@@ -81,12 +85,16 @@ static inline int serial_in_shift(void *addr, int shift)
 {
 #ifdef CONFIG_SYS_NS16550_PORT_MAPPED
        return inb((ulong)addr);
-#elif defined(CONFIG_SYS_NS16550_MEM32) && !defined(CONFIG_SYS_BIG_ENDIAN)
-       return in_le32(addr);
-#elif defined(CONFIG_SYS_NS16550_MEM32) && defined(CONFIG_SYS_BIG_ENDIAN)
-       return in_be32(addr);
 #elif defined(CONFIG_SYS_NS16550_MEM32)
+#ifdef CONFIG_MIPS
        return readl(addr);
+#else
+#ifndef CONFIG_SYS_BIG_ENDIAN
+       return in_le32(addr);
+#else
+       return in_be32(addr);
+#endif
+#endif
 #elif defined(CONFIG_SYS_BIG_ENDIAN)
        return readb(addr + (1 << shift) - 1);
 #else
-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to