mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
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
2 changed files with 5 additions and 1 deletions
|
@ -65,6 +65,8 @@ static inline void serial_out_shift(void *addr, int shift, int value)
|
|||
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)
|
||||
writel(value, addr);
|
||||
#elif defined(CONFIG_SYS_BIG_ENDIAN)
|
||||
writeb(value, addr + (1 << shift) - 1);
|
||||
#else
|
||||
|
@ -80,6 +82,8 @@ static inline int serial_in_shift(void *addr, int shift)
|
|||
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)
|
||||
return readl(addr);
|
||||
#elif defined(CONFIG_SYS_BIG_ENDIAN)
|
||||
return readb(addr + (1 << shift) - 1);
|
||||
#else
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
#if !defined(CONFIG_SYS_NS16550_REG_SIZE) || (CONFIG_SYS_NS16550_REG_SIZE == 0)
|
||||
#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
|
||||
#elif (CONFIG_SYS_NS16550_REG_SIZE > 0)
|
||||
#define UART_REG(x) \
|
||||
|
|
Loading…
Reference in a new issue