
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.oltean@nxp.com