
Dear John Rigby,
In message 1301761196-26072-2-git-send-email-john.rigby@linaro.org you wrote:
From: Rabin Vincent rabin.vincent@stericsson.com
empty fifo on init program receive line control register on u8500
Signed-off-by: Rabin Vincent rabin.vincent@stericsson.com
v2: no changes
drivers/serial/serial_pl01x.c | 10 ++++++++++ drivers/serial/serial_pl01x.h | 4 ++++ 2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c index 5dfcde8..22ada8f 100644 --- a/drivers/serial/serial_pl01x.c +++ b/drivers/serial/serial_pl01x.c @@ -112,6 +112,12 @@ int serial_init (void) unsigned int remainder; unsigned int fraction;
- /* Empty RX fifo if necessary */
- if (readl(®s->pl011_cr) & UART_PL011_CR_UARTEN) {
while (!(readl(®s->fr) & UART_PL01x_FR_RXFE))
readl(®s->dr);
- }
Does this affect other boards?
+#ifdef CONFIG_U8500
- /* program receive line control register */
- writel(0x70, ®s->pl011_rlcr);
+#endif
I would like to keep board specific code out of this file.
Can you identifiy under which speific circumstances this code is needed, and add a feature-specific ifdef instead of a board specific one?
--- a/drivers/serial/serial_pl01x.h +++ b/drivers/serial/serial_pl01x.h @@ -43,7 +43,11 @@ struct pl01x_regs { u32 pl010_lcrl; /* 0x10 Line control register, low byte */ u32 pl010_cr; /* 0x14 Control register */ u32 fr; /* 0x18 Flag register (Read only) */ +#ifdef CONFIG_U8500
- u32 pl011_rlcr; /* 0x1c Receive line control register */
+#else u32 reserved; +#endif
Ditto.
Best regards,
Wolfgang Denk