public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
@ 2016-02-16 15:17 Michal Simek
  2016-02-19 20:55 ` Simon Glass
  2016-02-20  0:54 ` Tom Rini
  0 siblings, 2 replies; 25+ messages in thread
From: Michal Simek @ 2016-02-16 15:17 UTC (permalink / raw)
  To: u-boot

reg-offset is the part of standard 8250 binding in the kernel.
It is shifting start of address space by reg-offset.
On Xilinx platform this offset is typically 0x1000.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

 drivers/serial/ns16550.c | 6 ++++--
 include/ns16550.h        | 1 +
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 93dad338b375..28da9ddfd859 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -105,7 +105,7 @@ static void ns16550_writeb(NS16550_t port, int offset, int value)
 	 * As far as we know it doesn't make sense to support selection of
 	 * these options at run-time, so use the existing CONFIG options.
 	 */
-	serial_out_shift(addr, plat->reg_shift, value);
+	serial_out_shift(addr + plat->reg_offset, plat->reg_shift, value);
 }
 
 static int ns16550_readb(NS16550_t port, int offset)
@@ -116,7 +116,7 @@ static int ns16550_readb(NS16550_t port, int offset)
 	offset *= 1 << plat->reg_shift;
 	addr = map_physmem(plat->base, 0, MAP_NOCACHE) + offset;
 
-	return serial_in_shift(addr, plat->reg_shift);
+	return serial_in_shift(addr + plat->reg_offset, plat->reg_shift);
 }
 
 /* We can clean these up once everything is moved to driver model */
@@ -401,6 +401,8 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
 		return -EINVAL;
 
 	plat->base = addr;
+	plat->reg_offset = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
+				     "reg-offset", 0);
 	plat->reg_shift = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
 					 "reg-shift", 0);
 	plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
diff --git a/include/ns16550.h b/include/ns16550.h
index 4e620676c453..5eeacd6ff945 100644
--- a/include/ns16550.h
+++ b/include/ns16550.h
@@ -54,6 +54,7 @@
  */
 struct ns16550_platdata {
 	unsigned long base;
+	int reg_offset;
 	int reg_shift;
 	int clock;
 };
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2016-04-05 11:39 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-16 15:17 [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property Michal Simek
2016-02-19 20:55 ` Simon Glass
2016-02-22  7:40   ` Michal Simek
2016-02-23  6:38     ` Simon Glass
2016-02-24 10:56       ` Adam Ford
2016-02-24 11:26         ` Michal Simek
2016-02-24 22:47           ` Derald D. Woods
2016-02-25  0:33             ` Simon Glass
2016-02-25  3:05               ` Derald D. Woods
2016-02-25  4:47           ` Derald D. Woods
2016-02-25  8:11             ` Michal Simek
2016-02-25 13:38               ` Derald D. Woods
2016-02-28 22:39                 ` Alexander Graf
2016-02-28 23:45                   ` Derald D. Woods
2016-02-28 23:51                     ` Derald D. Woods
2016-02-29  3:56                       ` Adam Ford
2016-02-29  4:58                         ` Derald D. Woods
2016-02-29  5:15                           ` Simon Glass
2016-02-29  7:38                             ` Michal Simek
2016-03-13  1:54                   ` Simon Glass
2016-03-15 12:31                     ` Adam Ford
2016-03-31  9:16                     ` Michal Simek
2016-04-05  0:03                       ` Simon Glass
2016-04-05 11:39                         ` Michal Simek
2016-02-20  0:54 ` Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox