summaryrefslogtreecommitdiff
path: root/drivers/serial/serial_pl01x.c
diff options
context:
space:
mode:
authorVikas Manocha <vikas.manocha@st.com>2014-11-21 10:34:23 -0800
committerTom Rini <trini@ti.com>2014-12-08 09:35:45 -0500
commiteb8a4fe0dc5db5f586ae26d04aa132c76535b27c (patch)
tree885554c23fccaa71a6e808e5f4d33988498b6977 /drivers/serial/serial_pl01x.c
parentf7e517b4ebc199ec90bb56ae4336dbd534ecade5 (diff)
downloadu-boot-imx-eb8a4fe0dc5db5f586ae26d04aa132c76535b27c.zip
u-boot-imx-eb8a4fe0dc5db5f586ae26d04aa132c76535b27c.tar.gz
u-boot-imx-eb8a4fe0dc5db5f586ae26d04aa132c76535b27c.tar.bz2
serial: pl01x: avoid pl01x type check two times
Signed-off-by: Vikas Manocha <vikas.manocha@st.com> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/serial/serial_pl01x.c')
-rw-r--r--drivers/serial/serial_pl01x.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c
index 2a6b61d..e1bf496 100644
--- a/drivers/serial/serial_pl01x.c
+++ b/drivers/serial/serial_pl01x.c
@@ -72,22 +72,19 @@ static int pl01x_tstc(struct pl01x_regs *regs)
static int pl01x_generic_serial_init(struct pl01x_regs *regs,
enum pl01x_type type)
{
+ switch (type) {
+ case TYPE_PL010:
+ /* disable everything */
+ writel(0, &regs->pl010_cr);
+ break;
+ case TYPE_PL011:
#ifdef CONFIG_PL011_SERIAL_FLUSH_ON_INIT
- if (type == TYPE_PL011) {
/* Empty RX fifo if necessary */
if (readl(&regs->pl011_cr) & UART_PL011_CR_UARTEN) {
while (!(readl(&regs->fr) & UART_PL01x_FR_RXFE))
readl(&regs->dr);
}
- }
#endif
-
- switch (type) {
- case TYPE_PL010:
- /* disable everything */
- writel(0, &regs->pl010_cr);
- break;
- case TYPE_PL011:
/* disable everything */
writel(0, &regs->pl011_cr);
break;