summaryrefslogtreecommitdiffstats
path: root/bsps/arm
diff options
context:
space:
mode:
authorG S Niteesh Babu <niteesh.gs@gmail.com>2021-03-13 16:32:03 +0530
committerChristian Mauderer <oss@c-mauderer.de>2021-03-21 12:30:48 +0100
commit56074644a733ecc984722da2a1b61736275270c0 (patch)
tree603250e165fdc58f94fe990e33aaf127e7921922 /bsps/arm
parentbsps/beagle: Added SOC detection using FDT (diff)
downloadrtems-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.c31
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
+);