diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-09-28 10:03:44 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-10-02 13:40:56 +0200 |
commit | ce28d601c947de8ff6af0ce632f1d1c685a1d3e2 (patch) | |
tree | 7559635f695e0747b97a8a224a34e467f1f0be4c | |
parent | bsp/imx: Add imx_get_irq_of_node() (diff) | |
download | rtems-ce28d601c947de8ff6af0ce632f1d1c685a1d3e2.tar.bz2 |
bsp/imx: Add imx_get_reg_of_node()
Update #3090.
-rw-r--r-- | c/src/lib/libbsp/arm/imx/console/console-config.c | 10 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/imx/include/bsp.h | 2 | ||||
-rw-r--r-- | 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 cdb4d12fae..a4c79a13b6 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 3bde27547c..08b3127dba 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 167dc9c8d5..046336655b 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, |