Просмотр исходного кода

get nrf5x hal work with SD and non_SD configure

hathach 8 лет назад
Родитель
Сommit
1d428b7fef
2 измененных файлов с 22 добавлено и 17 удалено
  1. 17 1
      hw/bsp/pca10056/board_pca10056.c
  2. 5 16
      tinyusb/portable/nordic/nrf5x/hal_nrf5x.c

+ 17 - 1
hw/bsp/pca10056/board_pca10056.c

@@ -75,10 +75,26 @@ void board_init(void)
   NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_CONFIG_LF_SRC << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
   NRF_CLOCK->TASKS_LFCLKSTART = 1UL;
 
+  nrf_gpio_cfg_output(LED_1);
+
+#ifdef SOFTDEVICE_PRESENT
+  // TODO support Softdevice config
+#else
+  // Softdevice is not present, init power module and register tusb power event function
+  // for vusb detect, ready, removed
+  extern void tusb_hal_nrf_power_event(uint32_t event);
+
   nrf_drv_power_init(NULL);
 
-  nrf_gpio_cfg_output(LED_1);
+  // USB Power detection
+  const nrf_drv_power_usbevt_config_t config =
+  {
+      .handler = (nrf_drv_power_usb_event_handler_t) tusb_hal_nrf_power_event
+  };
+  TU_ASSERT( NRF_SUCCESS == nrf_drv_power_usbevt_init(&config) );
+#endif
 
+  // Tick init
   SysTick_Config(SystemCoreClock/1000);
   NVIC_EnableIRQ(SysTick_IRQn);
 }

+ 5 - 16
tinyusb/portable/nordic/nrf5x/hal_nrf5x.c

@@ -136,6 +136,8 @@ static void hfclk_disable(void)
 /*------------------------------------------------------------------*/
 /* TUSB HAL
  *------------------------------------------------------------------*/
+
+// tusb_hal_nrf_power_event must be called by SOC event handler
 bool tusb_hal_init(void)
 {
 #ifdef SOFTDEVICE_PRESENT
@@ -159,23 +161,10 @@ bool tusb_hal_init(void)
     {
       tusb_hal_nrf_power_event(NRFX_POWER_USB_EVT_READY);
     }
-
-    // tusb_hal_nrf_power_event must be called by SOC event handler
-    return true;
-  }else
-#endif
-  {
-#if 0
-    // USB Power detection
-    const nrf_drv_power_usbevt_config_t config =
-    {
-        .handler = (nrf_drv_power_usb_event_handler_t) tusb_hal_nrf_power_event
-    };
-    return ( NRF_SUCCESS == nrf_drv_power_usbevt_init(&config) );
-#else
-    return true;
-#endif
   }
+#endif
+
+  return true;
 }
 
 void tusb_hal_int_enable(uint8_t rhport)