diff --git a/pico_keys_sdk_import.cmake b/pico_keys_sdk_import.cmake index 6458e7d..5e310ec 100644 --- a/pico_keys_sdk_import.cmake +++ b/pico_keys_sdk_import.cmake @@ -338,7 +338,10 @@ set(PICO_KEYS_SOURCES ${PICO_KEYS_SOURCES} ) if(ESP_PLATFORM) - set(PICO_KEYS_SOURCES ${PICO_KEYS_SOURCES} ${CMAKE_CURRENT_LIST_DIR}/src/led/led_neopixel.c) + set(PICO_KEYS_SOURCES ${PICO_KEYS_SOURCES} + ${CMAKE_CURRENT_LIST_DIR}/src/led/led_neopixel.c + ${CMAKE_CURRENT_LIST_DIR}/src/led/led_pico.c + ) else() if (NOT ENABLE_EMULATION) set(PICO_KEYS_SOURCES ${PICO_KEYS_SOURCES} diff --git a/src/led/led.c b/src/led/led.c index 20fb14e..4e995ee 100644 --- a/src/led/led.c +++ b/src/led/led.c @@ -145,14 +145,14 @@ void led_init() { #endif if (phy_data.led_driver_present) { switch (phy_data.led_driver) { + case PHY_LED_DRIVER_PICO: + led_driver = &led_driver_pico; + break; #ifdef ESP_PLATFORM case PHY_LED_DRIVER_NEOPIXEL: led_driver = &led_driver_neopixel; break; #else - case PHY_LED_DRIVER_PICO: - led_driver = &led_driver_pico; - break; #ifdef CYW43_WL_GPIO_LED_PIN case PHY_LED_DRIVER_CYW43: led_driver = &led_driver_cyw43; diff --git a/src/led/led_pico.c b/src/led/led_pico.c index 93883e9..19ee3ac 100644 --- a/src/led/led_pico.c +++ b/src/led/led_pico.c @@ -23,7 +23,15 @@ static uint8_t gpio = PICO_DEFAULT_LED_PIN; static uint8_t gpio = 0; #endif -#ifdef PICO_PLATFORM +#ifdef ESP_PLATFORM +#include "driver/gpio.h" +#define gpio_init gpio_reset_pin +#define gpio_set_dir gpio_set_direction +#define gpio_put gpio_set_level +#define GPIO_OUT GPIO_MODE_OUTPUT +#endif + +#if defined(PICO_PLATFORM) || defined(ESP_PLATFORM) void led_driver_init_pico() { if (phy_data.led_gpio_present) { gpio = phy_data.led_gpio;