Explorar el Código

[bsp][ls1c] add ls1c_hw_i2c_init

sundm75 hace 7 años
padre
commit
af743afb01
Se han modificado 1 ficheros con 30 adiciones y 1 borrados
  1. 30 1
      bsp/ls1cdev/drivers/hw_i2c.c

+ 30 - 1
bsp/ls1cdev/drivers/hw_i2c.c

@@ -25,6 +25,9 @@
 #include <rtthread.h>
 #include <rtdevice.h>
 #include "ls1c_i2c.h"  
+#include "../libraries/ls1c_pin.h"
+
+#ifdef RT_USING_I2C
 
 struct ls1c_i2c_bus
 {
@@ -119,10 +122,32 @@ static struct ls1c_i2c_bus ls1c_i2c_bus_2 =
 };
 #endif
 
-int rt_i2c_init(void)
+int ls1c_hw_i2c_init(void)
 {
     struct ls1c_i2c_bus* ls1c_i2c;
 
+#ifdef RT_USING_I2C0
+/*
+    pin_set_purpose(2, PIN_PURPOSE_OTHER);
+    pin_set_purpose(3, PIN_PURPOSE_OTHER);
+    pin_set_remap(2, PIN_REMAP_SECOND);
+    pin_set_remap(3, PIN_REMAP_SECOND);
+    */
+#endif
+#ifdef RT_USING_I2C1
+    pin_set_purpose(2, PIN_PURPOSE_OTHER);
+    pin_set_purpose(3, PIN_PURPOSE_OTHER);
+    pin_set_remap(2, PIN_REMAP_SECOND);
+    pin_set_remap(3, PIN_REMAP_SECOND);
+#endif
+#ifdef RT_USING_I2C2
+    pin_set_purpose(51, PIN_PURPOSE_OTHER);
+    pin_set_purpose(50, PIN_PURPOSE_OTHER);
+    pin_set_remap(51, PIN_REMAP_FOURTH);
+    pin_set_remap(50, PIN_REMAP_FOURTH);
+#endif
+
+
 #ifdef RT_USING_I2C0
     ls1c_i2c = &ls1c_i2c_bus_0;
     ls1c_i2c->parent.ops = &ls1c_i2c_ops;
@@ -145,3 +170,7 @@ int rt_i2c_init(void)
 
     return RT_EOK;
 }
+
+INIT_BOARD_EXPORT(ls1c_hw_i2c_init);
+
+#endif