dm: ns16550: Support CONFIG_SYS_NS16550_MEM32 with driver model
This option is used by some boards, so support it with driver model. This is really ugly - we should rewrite this driver once all users are moved to driver model. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
8d379f179a
commit
9091400859
|
@ -65,6 +65,8 @@ static inline void serial_out_shift(void *addr, int shift, int value)
|
||||||
out_le32(addr, value);
|
out_le32(addr, value);
|
||||||
#elif defined(CONFIG_SYS_NS16550_MEM32) && defined(CONFIG_SYS_BIG_ENDIAN)
|
#elif defined(CONFIG_SYS_NS16550_MEM32) && defined(CONFIG_SYS_BIG_ENDIAN)
|
||||||
out_be32(addr, value);
|
out_be32(addr, value);
|
||||||
|
#elif defined(CONFIG_SYS_NS16550_MEM32)
|
||||||
|
writel(value, addr);
|
||||||
#elif defined(CONFIG_SYS_BIG_ENDIAN)
|
#elif defined(CONFIG_SYS_BIG_ENDIAN)
|
||||||
writeb(value, addr + (1 << shift) - 1);
|
writeb(value, addr + (1 << shift) - 1);
|
||||||
#else
|
#else
|
||||||
|
@ -80,6 +82,8 @@ static inline int serial_in_shift(void *addr, int shift)
|
||||||
return in_le32(addr);
|
return in_le32(addr);
|
||||||
#elif defined(CONFIG_SYS_NS16550_MEM32) && defined(CONFIG_SYS_BIG_ENDIAN)
|
#elif defined(CONFIG_SYS_NS16550_MEM32) && defined(CONFIG_SYS_BIG_ENDIAN)
|
||||||
return in_be32(addr);
|
return in_be32(addr);
|
||||||
|
#elif defined(CONFIG_SYS_NS16550_MEM32)
|
||||||
|
return readl(addr);
|
||||||
#elif defined(CONFIG_SYS_BIG_ENDIAN)
|
#elif defined(CONFIG_SYS_BIG_ENDIAN)
|
||||||
return readb(addr + (1 << shift) - 1);
|
return readb(addr + (1 << shift) - 1);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
#if !defined(CONFIG_SYS_NS16550_REG_SIZE) || (CONFIG_SYS_NS16550_REG_SIZE == 0)
|
#if !defined(CONFIG_SYS_NS16550_REG_SIZE) || (CONFIG_SYS_NS16550_REG_SIZE == 0)
|
||||||
#error "Please define NS16550 registers size."
|
#error "Please define NS16550 registers size."
|
||||||
#elif defined(CONFIG_SYS_NS16550_MEM32)
|
#elif defined(CONFIG_SYS_NS16550_MEM32) && !defined(CONFIG_DM_SERIAL)
|
||||||
#define UART_REG(x) u32 x
|
#define UART_REG(x) u32 x
|
||||||
#elif (CONFIG_SYS_NS16550_REG_SIZE > 0)
|
#elif (CONFIG_SYS_NS16550_REG_SIZE > 0)
|
||||||
#define UART_REG(x) \
|
#define UART_REG(x) \
|
||||||
|
|
Loading…
Reference in New Issue