summaryrefslogtreecommitdiffstats
path: root/drivers/serial
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-07-04 09:39:45 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-07-14 08:01:11 +0200
commitccf2963541be1ef291c13e6c0667058dd6c165ed (patch)
treead4447bbb77cbf3b72a24d550df89c30eb740f1c /drivers/serial
parent17d1f9288cb6cc1804414c427dac97897fb19b80 (diff)
downloadbarebox-ccf2963541be1ef291c13e6c0667058dd6c165ed.tar.gz
barebox-ccf2963541be1ef291c13e6c0667058dd6c165ed.tar.xz
serial: ns16550: Add mmiobase to private data
We have a private data struct, so use it for storing the base address instead of abusing the dev->priv field. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/serial_ns16550.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c
index 709f704cb4..27fae9b46e 100644
--- a/drivers/serial/serial_ns16550.c
+++ b/drivers/serial/serial_ns16550.c
@@ -50,6 +50,7 @@ struct ns16550_priv {
int mmio;
struct clk *clk;
uint32_t fcrval;
+ void __iomem *mmiobase;
};
static inline struct ns16550_priv *to_ns16550_priv(struct console_device *cdev)
@@ -157,7 +158,6 @@ static inline void ns16550_sys_writel(uint32_t val, void __iomem *addr,
static uint32_t ns16550_read(struct console_device *cdev, uint32_t off)
{
struct ns16550_priv *priv = to_ns16550_priv(cdev);
- struct device_d *dev = cdev->dev;
struct NS16550_plat *plat = &priv->plat;
int width = priv->access_width;
@@ -165,11 +165,11 @@ static uint32_t ns16550_read(struct console_device *cdev, uint32_t off)
switch (width) {
case IORESOURCE_MEM_8BIT:
- return ns16550_sys_readb(dev->priv + off, priv->mmio);
+ return ns16550_sys_readb(priv->mmiobase + off, priv->mmio);
case IORESOURCE_MEM_16BIT:
- return ns16550_sys_readw(dev->priv + off, priv->mmio);
+ return ns16550_sys_readw(priv->mmiobase + off, priv->mmio);
case IORESOURCE_MEM_32BIT:
- return ns16550_sys_readl(dev->priv + off, priv->mmio);
+ return ns16550_sys_readl(priv->mmiobase + off, priv->mmio);
}
return -1;
}
@@ -185,7 +185,6 @@ static void ns16550_write(struct console_device *cdev, uint32_t val,
uint32_t off)
{
struct ns16550_priv *priv = to_ns16550_priv(cdev);
- struct device_d *dev = cdev->dev;
struct NS16550_plat *plat = &priv->plat;
int width = priv->access_width;
@@ -193,13 +192,13 @@ static void ns16550_write(struct console_device *cdev, uint32_t val,
switch (width) {
case IORESOURCE_MEM_8BIT:
- ns16550_sys_writeb(val & 0xff, dev->priv + off, priv->mmio);
+ ns16550_sys_writeb(val & 0xff, priv->mmiobase + off, priv->mmio);
break;
case IORESOURCE_MEM_16BIT:
- ns16550_sys_writew(val & 0xffff, dev->priv + off, priv->mmio);
+ ns16550_sys_writew(val & 0xffff, priv->mmiobase + off, priv->mmio);
break;
case IORESOURCE_MEM_32BIT:
- ns16550_sys_writel(val, dev->priv + off, priv->mmio);
+ ns16550_sys_writel(val, priv->mmiobase + off, priv->mmio);
break;
}
}
@@ -395,7 +394,7 @@ static int ns16550_probe(struct device_d *dev)
}
if (!res)
goto err;
- dev->priv = (void __force __iomem *) res->start;
+ priv->mmiobase = (void __force __iomem *) res->start;
if (plat)