Fix led for pimoroni boards.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos
2025-12-27 22:03:35 +01:00
parent 3bf035d68a
commit 4df616082e
2 changed files with 17 additions and 22 deletions

View File

@@ -18,9 +18,9 @@
#include "pico_keys.h" #include "pico_keys.h"
#ifdef PICO_DEFAULT_LED_PIN #ifdef PICO_DEFAULT_LED_PIN
uint8_t gpio = PICO_DEFAULT_LED_PIN; static uint8_t gpio = PICO_DEFAULT_LED_PIN;
#else #else
uint8_t gpio = 0; static uint8_t gpio = 0;
#endif #endif
#ifdef PICO_PLATFORM #ifdef PICO_PLATFORM

View File

@@ -18,18 +18,10 @@
#include "pico_keys.h" #include "pico_keys.h"
#ifdef PICO_PLATFORM #ifdef PICO_PLATFORM
#ifdef PIMORONI_TINY2040 #ifdef PICO_DEFAULT_LED_PIN
#define LED_R_PIN TINY2040_LED_R_PIN static uint8_t gpio = PICO_DEFAULT_LED_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
#else #else
#define LED_R_PIN 0 static uint8_t gpio = 0;
#define LED_G_PIN 0
#define LED_B_PIN 0
#endif #endif
uint8_t pixel[][3] = { uint8_t pixel[][3] = {
@@ -44,21 +36,24 @@ uint8_t pixel[][3] = {
}; };
void led_driver_init_pimoroni() { void led_driver_init_pimoroni() {
gpio_init(LED_R_PIN); if (phy_data.led_gpio_present) {
gpio_set_dir(LED_R_PIN, GPIO_OUT); gpio = phy_data.led_gpio;
gpio_init(LED_G_PIN); }
gpio_set_dir(LED_G_PIN, GPIO_OUT); gpio_init(gpio-1);
gpio_init(LED_B_PIN); gpio_set_dir(gpio-1, GPIO_OUT);
gpio_set_dir(LED_B_PIN, 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) { void led_driver_color_pimoroni(uint8_t color, uint32_t led_brightness, float progress) {
if (progress < 0.5) { if (progress < 0.5) {
color = LED_COLOR_OFF; color = LED_COLOR_OFF;
} }
gpio_put(LED_R_PIN, pixel[color][0]); gpio_put(gpio-1, pixel[color][0]);
gpio_put(LED_G_PIN, pixel[color][1]); gpio_put(gpio, pixel[color][1]);
gpio_put(LED_B_PIN, pixel[color][2]); gpio_put(gpio+1, pixel[color][2]);
} }
led_driver_t led_driver_pimoroni = { led_driver_t led_driver_pimoroni = {