Am 2021-08-31 20:28, schrieb Vladimir Oltean:
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.

Yeah, and it seems that parsing of the little-endian flag was introduced
just for the ls1028a. If that is true, one could remove that, but I wasn't
sure, so I just left it there.

        { .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>

--
-michael

Reply via email to