summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhierophect <hierophect@gmail.com>2020-10-08 12:22:24 -0400
committerGitHub <noreply@github.com>2020-10-08 12:22:24 -0400
commit4bec77652b0ac0d1bde742595010fd6f57d10878 (patch)
treec97aa73f9faad9b94ff9e7960ca12a36c1a6fd57
parent66c25667d88db412a90d47cb80bf178e5a6669b2 (diff)
parente1fc85c56bb5e308d497c09eca8154243f85a83c (diff)
Merge pull request #3519 from hathach/fix-idf-latest
fix espressif latest idf
-rw-r--r--.gitmodules2
-rw-r--r--ports/esp32s2/Makefile6
-rw-r--r--ports/esp32s2/common-hal/busio/I2C.h2
-rw-r--r--ports/esp32s2/common-hal/busio/SPI.h4
-rw-r--r--ports/esp32s2/common-hal/busio/UART.h2
-rw-r--r--ports/esp32s2/common-hal/digitalio/DigitalInOut.c2
-rw-r--r--ports/esp32s2/common-hal/microcontroller/Pin.c2
m---------ports/esp32s2/esp-idf0
-rw-r--r--ports/esp32s2/peripherals/pins.h2
-rw-r--r--ports/esp32s2/supervisor/usb.c34
10 files changed, 41 insertions, 15 deletions
diff --git a/.gitmodules b/.gitmodules
index b1ae2276c..f66ce8aaf 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -152,4 +152,4 @@
url = https://github.com/adafruit/Adafruit_CircuitPython_RFM69.git
[submodule "ports/esp32s2/esp-idf"]
path = ports/esp32s2/esp-idf
- url = https://github.com/hierophect/esp-idf.git
+ url = https://github.com/espressif/esp-idf.git
diff --git a/ports/esp32s2/Makefile b/ports/esp32s2/Makefile
index f8818eca0..935ced7cc 100644
--- a/ports/esp32s2/Makefile
+++ b/ports/esp32s2/Makefile
@@ -271,7 +271,7 @@ menuconfig: $(BUILD)/esp-idf/config
$(HEADER_BUILD)/qstr.i.last: | $(BUILD)/esp-idf/config/sdkconfig.h
# Order here matters
-ESP_IDF_COMPONENTS_LINK = freertos log esp_system esp32s2 bootloader_support pthread esp_timer vfs spi_flash app_update esp_common esp32s2 heap newlib driver xtensa soc esp_ringbuf esp_wifi esp_event wpa_supplicant mbedtls efuse nvs_flash esp_netif lwip esp_rom esp-tls
+ESP_IDF_COMPONENTS_LINK = freertos log hal esp_system esp32s2 bootloader_support pthread esp_timer vfs spi_flash app_update esp_common esp32s2 heap newlib driver xtensa soc esp_ringbuf esp_wifi esp_event wpa_supplicant mbedtls efuse nvs_flash esp_netif lwip esp_rom esp-tls
ESP_IDF_COMPONENTS_INCLUDE = driver freertos log soc
@@ -283,11 +283,11 @@ ESP_IDF_WIFI_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_WIFI_COMPONENT
MBEDTLS_COMPONENTS_LINK = crypto tls x509
MBEDTLS_COMPONENTS_LINK_EXPANDED = $(foreach component, $(MBEDTLS_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/mbedtls/mbedtls/library/libmbed$(component).a)
-BINARY_BLOBS = esp-idf/components/xtensa/esp32s2/libhal.a
+BINARY_BLOBS = esp-idf/components/xtensa/esp32s2/libxt_hal.a
BINARY_WIFI_BLOBS = libcoexist.a libcore.a libespnow.a libmesh.a libnet80211.a libpp.a librtc.a libsmartconfig.a libphy.a
BINARY_BLOBS += $(addprefix esp-idf/components/esp_wifi/lib/esp32s2/, $(BINARY_WIFI_BLOBS))
-ESP_IDF_COMPONENTS_EXPANDED += $(BUILD)/esp-idf/esp-idf/soc/soc/esp32s2/libsoc_esp32s2.a esp-idf/components/xtensa/esp32s2/libhal.a
+ESP_IDF_COMPONENTS_EXPANDED += $(BUILD)/esp-idf/esp-idf/soc/soc/esp32s2/libsoc_esp32s2.a esp-idf/components/xtensa/esp32s2/libxt_hal.a
ESP_AUTOGEN_LD = $(BUILD)/esp-idf/esp-idf/esp32s2/esp32s2_out.ld $(BUILD)/esp-idf/esp-idf/esp32s2/ld/esp32s2.project.ld
FLASH_FLAGS = --flash_mode $(CIRCUITPY_ESP_FLASH_MODE) --flash_freq $(CIRCUITPY_ESP_FLASH_FREQ) --flash_size $(CIRCUITPY_ESP_FLASH_SIZE)
diff --git a/ports/esp32s2/common-hal/busio/I2C.h b/ports/esp32s2/common-hal/busio/I2C.h
index 1a989e30a..c39d6d744 100644
--- a/ports/esp32s2/common-hal/busio/I2C.h
+++ b/ports/esp32s2/common-hal/busio/I2C.h
@@ -29,7 +29,7 @@
#include "common-hal/microcontroller/Pin.h"
-#include "components/soc/include/hal/i2c_types.h"
+#include "components/hal/include/hal/i2c_types.h"
#include "FreeRTOS.h"
#include "freertos/semphr.h"
#include "py/obj.h"
diff --git a/ports/esp32s2/common-hal/busio/SPI.h b/ports/esp32s2/common-hal/busio/SPI.h
index d6203feae..f6c1c344a 100644
--- a/ports/esp32s2/common-hal/busio/SPI.h
+++ b/ports/esp32s2/common-hal/busio/SPI.h
@@ -30,8 +30,8 @@
#include "common-hal/microcontroller/Pin.h"
#include "components/driver/include/driver/spi_common_internal.h"
-#include "components/soc/include/hal/spi_hal.h"
-#include "components/soc/include/hal/spi_types.h"
+#include "components/hal/include/hal/spi_hal.h"
+#include "components/hal/include/hal/spi_types.h"
#include "py/obj.h"
typedef struct {
diff --git a/ports/esp32s2/common-hal/busio/UART.h b/ports/esp32s2/common-hal/busio/UART.h
index 751fb2e00..1d7f13511 100644
--- a/ports/esp32s2/common-hal/busio/UART.h
+++ b/ports/esp32s2/common-hal/busio/UART.h
@@ -29,7 +29,7 @@
#include "common-hal/microcontroller/Pin.h"
-#include "components/soc/include/hal/uart_types.h"
+#include "components/hal/include/hal/uart_types.h"
#include "py/obj.h"
typedef struct {
diff --git a/ports/esp32s2/common-hal/digitalio/DigitalInOut.c b/ports/esp32s2/common-hal/digitalio/DigitalInOut.c
index a2a0209f9..152db1e71 100644
--- a/ports/esp32s2/common-hal/digitalio/DigitalInOut.c
+++ b/ports/esp32s2/common-hal/digitalio/DigitalInOut.c
@@ -30,7 +30,7 @@
#include "components/driver/include/driver/gpio.h"
-#include "components/soc/include/hal/gpio_hal.h"
+#include "components/hal/include/hal/gpio_hal.h"
void common_hal_digitalio_digitalinout_never_reset(
digitalio_digitalinout_obj_t *self) {
diff --git a/ports/esp32s2/common-hal/microcontroller/Pin.c b/ports/esp32s2/common-hal/microcontroller/Pin.c
index 0f4669fe0..3c2611efe 100644
--- a/ports/esp32s2/common-hal/microcontroller/Pin.c
+++ b/ports/esp32s2/common-hal/microcontroller/Pin.c
@@ -32,7 +32,7 @@
#include "py/mphal.h"
#include "components/driver/include/driver/gpio.h"
-#include "components/soc/include/hal/gpio_hal.h"
+#include "components/hal/include/hal/gpio_hal.h"
#ifdef MICROPY_HW_NEOPIXEL
bool neopixel_in_use;
diff --git a/ports/esp32s2/esp-idf b/ports/esp32s2/esp-idf
-Subproject a7f77798816661f7c4ae198f3878bc92a9274f8
+Subproject 8bc19ba893e5544d571a753d82b44a84799b94b
diff --git a/ports/esp32s2/peripherals/pins.h b/ports/esp32s2/peripherals/pins.h
index 0cf63a029..9776fbb78 100644
--- a/ports/esp32s2/peripherals/pins.h
+++ b/ports/esp32s2/peripherals/pins.h
@@ -34,7 +34,7 @@
#include "esp32s2_peripherals_config.h"
#include "esp-idf/config/sdkconfig.h"
-#include "components/soc/include/hal/gpio_types.h"
+#include "components/hal/include/hal/gpio_types.h"
typedef struct {
PIN_PREFIX_FIELDS
diff --git a/ports/esp32s2/supervisor/usb.c b/ports/esp32s2/supervisor/usb.c
index c91c2ec4b..1ad6af047 100644
--- a/ports/esp32s2/supervisor/usb.c
+++ b/ports/esp32s2/supervisor/usb.c
@@ -33,6 +33,8 @@
#include "components/driver/include/driver/periph_ctrl.h"
#include "components/driver/include/driver/gpio.h"
#include "components/esp_rom/include/esp32s2/rom/gpio.h"
+#include "components/esp_rom/include/esp_rom_gpio.h"
+#include "components/hal/esp32s2/include/hal/gpio_ll.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
@@ -68,6 +70,33 @@ void usb_device_task(void* param)
}
}
+static void configure_pins (usb_hal_context_t *usb)
+{
+ /* usb_periph_iopins currently configures USB_OTG as USB Device.
+ * Introduce additional parameters in usb_hal_context_t when adding support
+ * for USB Host.
+ */
+ for ( const usb_iopin_dsc_t *iopin = usb_periph_iopins; iopin->pin != -1; ++iopin ) {
+ if ( (usb->use_external_phy) || (iopin->ext_phy_only == 0) ) {
+ esp_rom_gpio_pad_select_gpio(iopin->pin);
+ if ( iopin->is_output ) {
+ esp_rom_gpio_connect_out_signal(iopin->pin, iopin->func, false, false);
+ }
+ else {
+ esp_rom_gpio_connect_in_signal(iopin->pin, iopin->func, false);
+ if ( (iopin->pin != GPIO_FUNC_IN_LOW) && (iopin->pin != GPIO_FUNC_IN_HIGH) ) {
+ gpio_ll_input_enable(&GPIO, iopin->pin);
+ }
+ }
+ esp_rom_gpio_pad_unhold(iopin->pin);
+ }
+ }
+ if ( !usb->use_external_phy ) {
+ gpio_set_drive_capability(USBPHY_DM_NUM, GPIO_DRIVE_CAP_3);
+ gpio_set_drive_capability(USBPHY_DP_NUM, GPIO_DRIVE_CAP_3);
+ }
+}
+
void init_usb_hardware(void) {
periph_module_reset(PERIPH_USB_MODULE);
periph_module_enable(PERIPH_USB_MODULE);
@@ -75,10 +104,7 @@ void init_usb_hardware(void) {
.use_external_phy = false // use built-in PHY
};
usb_hal_init(&hal);
-
- // Initialize the pin drive strength.
- gpio_set_drive_capability(USBPHY_DM_NUM, GPIO_DRIVE_CAP_3);
- gpio_set_drive_capability(USBPHY_DP_NUM, GPIO_DRIVE_CAP_3);
+ configure_pins(&hal);
(void) xTaskCreateStatic(usb_device_task,
"usbd",