From 4df616082ece2683d0a55745e2f69727072b6385 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Sat, 27 Dec 2025 22:03:35 +0100 Subject: [PATCH] Fix led for pimoroni boards. Signed-off-by: Pol Henarejos --- src/led/led_pico.c | 4 ++-- src/led/led_pimoroni.c | 35 +++++++++++++++-------------------- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/src/led/led_pico.c b/src/led/led_pico.c index de592b8..93883e9 100644 --- a/src/led/led_pico.c +++ b/src/led/led_pico.c @@ -18,9 +18,9 @@ #include "pico_keys.h" #ifdef PICO_DEFAULT_LED_PIN -uint8_t gpio = PICO_DEFAULT_LED_PIN; +static uint8_t gpio = PICO_DEFAULT_LED_PIN; #else -uint8_t gpio = 0; +static uint8_t gpio = 0; #endif #ifdef PICO_PLATFORM diff --git a/src/led/led_pimoroni.c b/src/led/led_pimoroni.c index 43c2d3e..07eed30 100644 --- a/src/led/led_pimoroni.c +++ b/src/led/led_pimoroni.c @@ -18,18 +18,10 @@ #include "pico_keys.h" #ifdef PICO_PLATFORM -#ifdef PIMORONI_TINY2040 -#define LED_R_PIN TINY2040_LED_R_PIN -#define LED_G_PIN TINY2040_LED_G_PIN -#define LED_B_PIN TINY2040_LED_B_PIN -#elif defined(PIMORONI_TINY2350) -#define LED_R_PIN TINY2350_LED_R_PIN -#define LED_G_PIN TINY2350_LED_G_PIN -#define LED_B_PIN TINY2350_LED_B_PIN +#ifdef PICO_DEFAULT_LED_PIN +static uint8_t gpio = PICO_DEFAULT_LED_PIN; #else -#define LED_R_PIN 0 -#define LED_G_PIN 0 -#define LED_B_PIN 0 +static uint8_t gpio = 0; #endif uint8_t pixel[][3] = { @@ -44,21 +36,24 @@ uint8_t pixel[][3] = { }; void led_driver_init_pimoroni() { - gpio_init(LED_R_PIN); - gpio_set_dir(LED_R_PIN, GPIO_OUT); - gpio_init(LED_G_PIN); - gpio_set_dir(LED_G_PIN, GPIO_OUT); - gpio_init(LED_B_PIN); - gpio_set_dir(LED_B_PIN, GPIO_OUT); + if (phy_data.led_gpio_present) { + gpio = phy_data.led_gpio; + } + gpio_init(gpio-1); + gpio_set_dir(gpio-1, GPIO_OUT); + gpio_init(gpio); + gpio_set_dir(gpio, GPIO_OUT); + gpio_init(gpio+1); + gpio_set_dir(gpio+1, GPIO_OUT); } void led_driver_color_pimoroni(uint8_t color, uint32_t led_brightness, float progress) { if (progress < 0.5) { color = LED_COLOR_OFF; } - gpio_put(LED_R_PIN, pixel[color][0]); - gpio_put(LED_G_PIN, pixel[color][1]); - gpio_put(LED_B_PIN, pixel[color][2]); + gpio_put(gpio-1, pixel[color][0]); + gpio_put(gpio, pixel[color][1]); + gpio_put(gpio+1, pixel[color][2]); } led_driver_t led_driver_pimoroni = {