Преглед изворни кода

ieee802154: add support for esp32h2

zhangwenxu пре 2 година
родитељ
комит
2816ff14e4

+ 3 - 6
components/esp_phy/CMakeLists.txt

@@ -1,10 +1,5 @@
 idf_build_get_property(idf_target IDF_TARGET)
 
-if(IDF_TARGET STREQUAL "esp32h2")
-    # TODO : IDF-6337
-    return()
-endif()
-
 set(srcs "src/phy_override.c" "src/lib_printf.c")
 
 if(CONFIG_APP_NO_BLOBS)
@@ -21,12 +16,13 @@ else()
     list(APPEND srcs "src/phy_init.c")
 endif()
 
-if(CONFIG_SOC_BT_SUPPORTED OR CONFIG_SOC_IEEE802154_SUPPORTED)
+if(CONFIG_SOC_BT_SUPPORTED OR CONFIG_SOC_IEEE802154_SUPPORTED OR CONFIG_SOC_IEEE802154_BLE_ONLY)
     list(APPEND srcs "src/btbb_init.c")
 endif()
 
 idf_build_get_property(build_dir BUILD_DIR)
 
+if(CONFIG_SOC_WIFI_SUPPORTED)
 if(CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN)
     if(NOT EXISTS "${build_dir}/phy_multiple_init_data.bin")
         file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/${idf_target}/phy_multiple_init_data.bin DESTINATION "${build_dir}")
@@ -36,6 +32,7 @@ endif()
 if(CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN_EMBED)
     set(embed_files "${build_dir}/phy_multiple_init_data.bin")
 endif()
+endif()
 
 # [refactor-todo]: requires "driver" component for periph_ctrl header file
 idf_component_register(SRCS "${srcs}"

+ 1 - 0
components/esp_phy/Kconfig

@@ -17,6 +17,7 @@ menu "PHY"
 
     menuconfig ESP_PHY_INIT_DATA_IN_PARTITION
         bool "Use a partition to store PHY init data"
+        depends on SOC_WIFI_SUPPORTED
         default n
         help
             If enabled, PHY init data will be loaded from a partition.

+ 22 - 0
components/esp_phy/esp32h2/include/phy_init_data.h

@@ -0,0 +1,22 @@
+/*
+ * SPDX-FileCopyrightText: 2016-2022 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#ifndef PHY_INIT_DATA_H
+#define PHY_INIT_DATA_H /* don't use #pragma once here, we compile this file sometimes */
+#include "esp_phy_init.h"
+#include "sdkconfig.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// There is no init data for ESP32H2 right now, could be added when necessary.
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PHY_INIT_DATA_H */

+ 1 - 1
components/ieee802154/lib

@@ -1 +1 @@
-Subproject commit 5d03fb64207e7769319891fe99292c9c471db7ba
+Subproject commit 9b0e23edec879fc3fd46908bc3629dbd2a33359b

+ 4 - 0
components/soc/esp32h2/include/soc/Kconfig.soc_caps.in

@@ -39,6 +39,10 @@ config SOC_GPTIMER_SUPPORTED
     bool
     default y
 
+config SOC_IEEE802154_SUPPORTED
+    bool
+    default y
+
 config SOC_IEEE802154_BLE_ONLY
     bool
     default y

+ 3 - 3
components/soc/esp32h2/include/soc/soc_caps.h

@@ -34,9 +34,9 @@
 #define SOC_MCPWM_SUPPORTED             1
 #define SOC_TWAI_SUPPORTED              1
 // #define SOC_BT_SUPPORTED                1 // TODO: IDF-6416
-// #define SOC_IEEE802154_SUPPORTED        1 // TODO: IDF-6577
-#define SOC_GPTIMER_SUPPORTED              1
-#define SOC_IEEE802154_BLE_ONLY            1
+#define SOC_GPTIMER_SUPPORTED           1
+#define SOC_IEEE802154_SUPPORTED        1
+#define SOC_IEEE802154_BLE_ONLY         1
 #define SOC_USB_SERIAL_JTAG_SUPPORTED   1
 #define SOC_TEMP_SENSOR_SUPPORTED       1
 // #define SOC_SUPPORTS_SECURE_DL_MODE     1 // TODO: IDF-6281

+ 1 - 0
components/soc/esp32h2/ld/esp32h2.peripherals.ld

@@ -66,3 +66,4 @@ PROVIDE ( LP_PERI       = 0x600B2800 );
 PROVIDE ( LP_ANA_PERI   = 0x600B2C00 );
 PROVIDE ( LP_APM        = 0x600B3800 );
 PROVIDE ( OTP_DEBUG     = 0x600B3C00 );
+PROVIDE ( IEEE802154    = 0x600A3000 );