serial: lpuart: Proper device identification

Identify and distinguish between platform device type of MX7ULP
and LS1021A.

This is a fix to commit 7edf5c45("serial: lpuart: add i.MX7ULP
support").

Signed-off-by: Sriram Dash <sriram.dash@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
master
Sriram Dash 7 years ago committed by York Sun
parent b0ce187b1f
commit a2bbfc5480
  1. 18
      drivers/serial/serial_lpuart.c

@ -265,11 +265,9 @@ static int _lpuart32_serial_getc(struct lpuart_serial_platdata *plat)
lpuart_read32(plat->flags, &base->data, &val); lpuart_read32(plat->flags, &base->data, &val);
if (plat->devtype & DEV_MX7ULP) { lpuart_read32(plat->flags, &base->stat, &stat);
lpuart_read32(plat->flags, &base->stat, &stat); if (stat & STAT_OR)
if (stat & STAT_OR) lpuart_write32(plat->flags, &base->stat, STAT_OR);
lpuart_write32(plat->flags, &base->stat, STAT_OR);
}
return val & 0x3ff; return val & 0x3ff;
} }
@ -280,10 +278,8 @@ static void _lpuart32_serial_putc(struct lpuart_serial_platdata *plat,
struct lpuart_fsl_reg32 *base = plat->reg; struct lpuart_fsl_reg32 *base = plat->reg;
u32 stat; u32 stat;
if (plat->devtype & DEV_MX7ULP) { if (c == '\n')
if (c == '\n') serial_putc('\r');
serial_putc('\r');
}
while (true) { while (true) {
lpuart_read32(plat->flags, &base->stat, &stat); lpuart_read32(plat->flags, &base->stat, &stat);
@ -330,7 +326,7 @@ static int _lpuart32_serial_init(struct lpuart_serial_platdata *plat)
lpuart_write32(plat->flags, &base->match, 0); lpuart_write32(plat->flags, &base->match, 0);
if (plat->devtype & DEV_MX7ULP) { if (plat->devtype == DEV_MX7ULP) {
_lpuart32_serial_setbrg_7ulp(plat, gd->baudrate); _lpuart32_serial_setbrg_7ulp(plat, gd->baudrate);
} else { } else {
/* provide data bits, parity, stop bit, etc */ /* provide data bits, parity, stop bit, etc */
@ -347,7 +343,7 @@ static int lpuart_serial_setbrg(struct udevice *dev, int baudrate)
struct lpuart_serial_platdata *plat = dev->platdata; struct lpuart_serial_platdata *plat = dev->platdata;
if (is_lpuart32(dev)) { if (is_lpuart32(dev)) {
if (plat->devtype & DEV_MX7ULP) if (plat->devtype == DEV_MX7ULP)
_lpuart32_serial_setbrg_7ulp(plat, baudrate); _lpuart32_serial_setbrg_7ulp(plat, baudrate);
else else
_lpuart32_serial_setbrg(plat, baudrate); _lpuart32_serial_setbrg(plat, baudrate);

Loading…
Cancel
Save