On Tue, Aug 31, 2021 at 05:40:26PM +0200, Michael Walle wrote: > The offical ls1028a binding of the driver uses the following as > compatibles: > compatible = "fsl,ls1028a-lpuart";
s/offical/official/ > diff --git a/drivers/serial/serial_lpuart.c b/drivers/serial/serial_lpuart.c > index 2b473d70f6..3c9a69598a 100644 > --- a/drivers/serial/serial_lpuart.c > +++ b/drivers/serial/serial_lpuart.c > @@ -553,6 +553,8 @@ static const struct dm_serial_ops lpuart_serial_ops = { > static const struct udevice_id lpuart_serial_ids[] = { > { .compatible = "fsl,ls1021a-lpuart", .data = > LPUART_FLAG_REGMAP_32BIT_REG | LPUART_FLAG_REGMAP_ENDIAN_BIG }, > + { .compatible = "fsl,ls1028a-lpuart", > + .data = LPUART_FLAG_REGMAP_32BIT_REG }, The LS1028A LPUART is identical to LS1021A except for endianness, true. So the U-Boot driver uses the "little-endian" OF property to clear the LPUART_FLAG_REGMAP_ENDIAN_BIG flag from LS1021A, while the Linux driver selects endianness based on compatible string. > { .compatible = "fsl,imx7ulp-lpuart", > .data = LPUART_FLAG_REGMAP_32BIT_REG }, > { .compatible = "fsl,vf610-lpuart"}, > -- > 2.30.2 Reviewed-by: Vladimir Oltean <vladimir.olt...@nxp.com>