dm: ns16550: Support non-byte register spacing with driver model

Allow this driver to support boards where the register shift is not 0.
This fixes some compiler warnings which appear in that case.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2015-02-27 22:06:26 -07:00
parent dd0b0122ba
commit 363e6da103

View File

@ -57,7 +57,7 @@ DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_DM_SERIAL #ifdef CONFIG_DM_SERIAL
static inline void serial_out_shift(unsigned char *addr, int shift, int value) static inline void serial_out_shift(void *addr, int shift, int value)
{ {
#ifdef CONFIG_SYS_NS16550_PORT_MAPPED #ifdef CONFIG_SYS_NS16550_PORT_MAPPED
outb(value, (ulong)addr); outb(value, (ulong)addr);
@ -72,7 +72,7 @@ static inline void serial_out_shift(unsigned char *addr, int shift, int value)
#endif #endif
} }
static inline int serial_in_shift(unsigned char *addr, int shift) static inline int serial_in_shift(void *addr, int shift)
{ {
#ifdef CONFIG_SYS_NS16550_PORT_MAPPED #ifdef CONFIG_SYS_NS16550_PORT_MAPPED
return inb((ulong)addr); return inb((ulong)addr);
@ -114,9 +114,11 @@ static int ns16550_readb(NS16550_t port, int offset)
/* We can clean these up once everything is moved to driver model */ /* We can clean these up once everything is moved to driver model */
#define serial_out(value, addr) \ #define serial_out(value, addr) \
ns16550_writeb(com_port, addr - (unsigned char *)com_port, value) ns16550_writeb(com_port, \
(unsigned char *)addr - (unsigned char *)com_port, value)
#define serial_in(addr) \ #define serial_in(addr) \
ns16550_readb(com_port, addr - (unsigned char *)com_port) ns16550_readb(com_port, \
(unsigned char *)addr - (unsigned char *)com_port)
#endif #endif
static inline int calc_divisor(NS16550_t port, int clock, int baudrate) static inline int calc_divisor(NS16550_t port, int clock, int baudrate)