diff options
author | G S Niteesh Babu <niteesh.gs@gmail.com> | 2021-03-13 16:32:03 +0530 |
---|---|---|
committer | Christian Mauderer <oss@c-mauderer.de> | 2021-03-21 12:30:48 +0100 |
commit | 56074644a733ecc984722da2a1b61736275270c0 (patch) | |
tree | 603250e165fdc58f94fe990e33aaf127e7921922 /bsps/arm | |
parent | bsps/beagle: Added SOC detection using FDT (diff) | |
download | rtems-56074644a733ecc984722da2a1b61736275270c0.tar.bz2 |
bsp/beagle: Ported Beagle pinmux driver to RTEMS
The following files have been ported
1) ti_pinmux.c
2) ti_pinmux.h
3) am335x_scm_padconf.c
4) am335x_scm_padconf.h
Update #3784
Diffstat (limited to 'bsps/arm')
-rw-r--r-- | bsps/arm/beagle/start/bspstart.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/bsps/arm/beagle/start/bspstart.c b/bsps/arm/beagle/start/bspstart.c index 0a6f1b4a64..a0736294c9 100644 --- a/bsps/arm/beagle/start/bspstart.c +++ b/bsps/arm/beagle/start/bspstart.c @@ -20,6 +20,8 @@ #include <bsp/i2c.h> #include <rtems/sysinit.h> #include "bsp-soc-detect.h" +#include <arm/ti/ti_pinmux.h> +#include <ofw/ofw.h> #include "bspdebug.h" @@ -55,6 +57,29 @@ uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells) return intr[0]; } +static void traverse_fdt_nodes( phandle_t node ) +{ + + for (node = rtems_ofw_child(node); node != 0; node = rtems_ofw_peer(node)) { + traverse_fdt_nodes(node); + + if (!rtems_ofw_node_status(node)) + continue; + + /* + * Put all driver initialization functions here + */ + beagle_pinmux_init(node); + } +} + +static void bbb_drivers_initialize(void) +{ + phandle_t node = rtems_ofw_peer(0); + + traverse_fdt_nodes(node); +} + static void bbb_i2c_0_initialize(void) { int err; @@ -73,3 +98,9 @@ RTEMS_SYSINIT_ITEM( RTEMS_SYSINIT_LAST, RTEMS_SYSINIT_ORDER_LAST_BUT_5 ); + +RTEMS_SYSINIT_ITEM( + bbb_drivers_initialize, + RTEMS_SYSINIT_BSP_PRE_DRIVERS, + RTEMS_SYSINIT_ORDER_LAST +); |