[PATCH 1/1] bsps/beagle: register i2c device at initialization

Vijay Kumar Banerjee vijaykumar9597 at gmail.com
Tue Sep 17 22:03:51 UTC 2019


---
 bsps/arm/beagle/i2c/bbb-i2c.c    |  6 +++---
 bsps/arm/beagle/start/bspstart.c | 13 +++++++++++++
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/bsps/arm/beagle/i2c/bbb-i2c.c b/bsps/arm/beagle/i2c/bbb-i2c.c
index 37b88864b9..f705078085 100644
--- a/bsps/arm/beagle/i2c/bbb-i2c.c
+++ b/bsps/arm/beagle/i2c/bbb-i2c.c
@@ -186,16 +186,16 @@ static int am335x_i2c_reset( bbb_i2c_bus *bus )
 
   bus->con_reg = 0;
   regs->BBB_I2C_CON = bus->con_reg;
-  udelay( 50000 );
+  rtems_counter_delay_nanoseconds(50000000);
 
   regs->BBB_I2C_SYSC = AM335X_I2C_SYSC_SRST;
-  udelay( 1000 );
+  rtems_counter_delay_nanoseconds(1000000);
   regs->BBB_I2C_CON = AM335X_I2C_CON_I2C_EN;
 
   while ( !( regs->BBB_I2C_SYSS & AM335X_I2C_SYSS_RDONE )
           && timeout >= 0 ) {
     --timeout;
-    udelay( 100 );
+  rtems_counter_delay_nanoseconds(100000);
   }
 
   if ( timeout <= 0 ) {
diff --git a/bsps/arm/beagle/start/bspstart.c b/bsps/arm/beagle/start/bspstart.c
index 224f9ecf3b..aadb9e826f 100644
--- a/bsps/arm/beagle/start/bspstart.c
+++ b/bsps/arm/beagle/start/bspstart.c
@@ -17,6 +17,8 @@
 #include <bsp/irq-generic.h>
 #include <bsp/fdt.h>
 #include <bsp/linker-symbols.h>
+#include <bsp/i2c.h>
+#include <rtems/sysinit.h>
 
 #include "bspdebug.h"
 
@@ -41,3 +43,14 @@ uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells)
 {
   return intr[0];
 }
+
+static void bbb_i2c_0_initialize(void)
+{
+  bbb_register_i2c_0();
+}
+
+RTEMS_SYSINIT_ITEM(
+  bbb_i2c_0_initialize,
+  RTEMS_SYSINIT_LAST,
+  RTEMS_SYSINIT_ORDER_LAST
+);
-- 
2.20.1



More information about the devel mailing list