diff --git a/src/led/led_cyw43.c b/src/led/led_cyw43.c index 939d377..36e4bcc 100644 --- a/src/led/led_cyw43.c +++ b/src/led/led_cyw43.c @@ -27,7 +27,11 @@ void led_driver_init() { void led_driver_color(uint8_t color, uint32_t led_brightness, float progress) { (void)led_brightness; - cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, progress >= 0.5); + uint8_t gpio = CYW43_WL_GPIO_LED_PIN; + if (phy_data.led_gpio_present) { + gpio = phy_data.led_gpio; + } + cyw43_arch_gpio_put(gpio, progress >= 0.5); } #endif diff --git a/src/led/led_pico.c b/src/led/led_pico.c index 72fda7b..c3d40df 100644 --- a/src/led/led_pico.c +++ b/src/led/led_pico.c @@ -19,14 +19,19 @@ #if defined(PICO_DEFAULT_LED_PIN) && !defined(PICO_DEFAULT_WS2812_PIN) +uint8_t gpio = PICO_DEFAULT_LED_PIN; + void led_driver_init() { - gpio_init(PICO_DEFAULT_LED_PIN); - gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT); + if (phy_data.led_gpio_present) { + gpio = phy_data.led_gpio; + } + gpio_init(gpio); + gpio_set_dir(gpio, GPIO_OUT); } void led_driver_color(uint8_t color, uint32_t led_brightness, float progress) { (void)led_brightness; - gpio_put(PICO_DEFAULT_LED_PIN, progress >= 0.5); + gpio_put(gpio, progress >= 0.5); } #endif diff --git a/src/led/led_ws2812.c b/src/led/led_ws2812.c index 48a76de..047246f 100644 --- a/src/led/led_ws2812.c +++ b/src/led/led_ws2812.c @@ -64,8 +64,11 @@ void led_driver_init() { PIO pio = pio0; int sm = 0; uint offset = pio_add_program(pio, &ws2812_program); - - ws2812_program_init(pio, sm, offset, PICO_DEFAULT_WS2812_PIN, 800000, true); + uint8_t gpio = PICO_DEFAULT_WS2812_PIN; + if (phy_data.led_gpio_present) { + gpio = phy_data.led_gpio; + } + ws2812_program_init(pio, sm, offset, gpio, 800000, true); } uint32_t pixel[] = {