From 7184fcfac6a4940fb29908a3b0133e710f78e6df Mon Sep 17 00:00:00 2001 From: Marcin Niestroj Date: Fri, 28 Jun 2019 17:56:43 +0200 Subject: serial: ns16550: support reg-offset device-tree property Some SoC have serial registers with a fixed offset to the map base. Support them by respecting 'reg-offset' device-tree property. Signed-off-by: Marcin Niestroj Signed-off-by: Sascha Hauer --- drivers/serial/serial_ns16550.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'drivers/serial') diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c index 4c84d27bdc..3edeb0dcbe 100644 --- a/drivers/serial/serial_ns16550.c +++ b/drivers/serial/serial_ns16550.c @@ -314,12 +314,15 @@ static int ns16550_tstc(struct console_device *cdev) static void ns16550_probe_dt(struct device_d *dev, struct ns16550_priv *priv) { struct device_node *np = dev->device_node; + u32 offset; u32 width = 1; if (!IS_ENABLED(CONFIG_OFDEVICE)) return; of_property_read_u32(np, "clock-frequency", &priv->plat.clock); + if (of_property_read_u32(np, "reg-offset", &offset) == 0) + priv->mmiobase += offset; of_property_read_u32(np, "reg-shift", &priv->plat.shift); of_property_read_u32(np, "reg-io-width", &width); switch (width) { -- cgit v1.2.3