[rtems commit] bsp/imx: Add imx_get_reg_of_node()

Sebastian Huber sebh at rtems.org
Mon Oct 2 11:41:57 UTC 2017


Module:    rtems
Branch:    master
Commit:    ce28d601c947de8ff6af0ce632f1d1c685a1d3e2
Changeset: http://git.rtems.org/rtems/commit/?id=ce28d601c947de8ff6af0ce632f1d1c685a1d3e2

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Sep 28 10:03:44 2017 +0200

bsp/imx: Add imx_get_reg_of_node()

Update #3090.

---

 c/src/lib/libbsp/arm/imx/console/console-config.c | 10 +---------
 c/src/lib/libbsp/arm/imx/include/bsp.h            |  2 ++
 c/src/lib/libbsp/arm/imx/startup/bspstart.c       | 13 +++++++++++++
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/c/src/lib/libbsp/arm/imx/console/console-config.c b/c/src/lib/libbsp/arm/imx/console/console-config.c
index cdb4d12..a4c79a1 100644
--- a/c/src/lib/libbsp/arm/imx/console/console-config.c
+++ b/c/src/lib/libbsp/arm/imx/console/console-config.c
@@ -71,18 +71,10 @@ static void imx_uart_init_context(
 )
 {
   int node;
-  int len;
-  const uint32_t *val;
 
   rtems_termios_device_context_initialize(&ctx->base, "UART");
-
   node = fdt_path_offset(fdt, serial);
-
-  val = fdt_getprop(fdt, node, "reg", &len);
-  if (val != NULL && len >= 4) {
-    ctx->regs = (imx_uart *) fdt32_to_cpu(val[0]);
-  }
-
+  ctx->regs = imx_get_reg_of_node(fdt, node);
 #ifdef CONSOLE_USE_INTERRUPTS
   ctx->irq = imx_get_irq_of_node(fdt, node, 0);
 #endif
diff --git a/c/src/lib/libbsp/arm/imx/include/bsp.h b/c/src/lib/libbsp/arm/imx/include/bsp.h
index 3bde275..08b3127 100644
--- a/c/src/lib/libbsp/arm/imx/include/bsp.h
+++ b/c/src/lib/libbsp/arm/imx/include/bsp.h
@@ -41,6 +41,8 @@ extern "C" {
 
 void arm_generic_timer_get_config(uint32_t *frequency, uint32_t *irq);
 
+void *imx_get_reg_of_node(const void *fdt, int node);
+
 rtems_vector_number imx_get_irq_of_node(
   const void *fdt,
   int node,
diff --git a/c/src/lib/libbsp/arm/imx/startup/bspstart.c b/c/src/lib/libbsp/arm/imx/startup/bspstart.c
index 167dc9c..0463366 100644
--- a/c/src/lib/libbsp/arm/imx/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/imx/startup/bspstart.c
@@ -23,6 +23,19 @@
 
 #define MAGIC_IRQ_OFFSET 32
 
+void *imx_get_reg_of_node(const void *fdt, int node)
+{
+  int len;
+  const uint32_t *val;
+
+  val = fdt_getprop(fdt, node, "reg", &len);
+  if (val == NULL || len < 4) {
+    return NULL;
+  }
+
+  return (void *) fdt32_to_cpu(val[0]);
+}
+
 rtems_vector_number imx_get_irq_of_node(
   const void *fdt,
   int node,




More information about the vc mailing list