From f7c7337efb88c23310a0e27f72c44137fe90170c Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Sat, 18 Mar 2023 13:36:26 +0100 Subject: [PATCH] boards/esp32c3-devkit: enable RGB LED support --- boards/esp32c3-devkit/doc.txt | 4 ++-- boards/esp32c3-devkit/include/board.h | 10 +++++++--- boards/esp32s2-devkit/include/periph_conf.h | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/boards/esp32c3-devkit/doc.txt b/boards/esp32c3-devkit/doc.txt index bd71f60693..8c9aba3854 100644 --- a/boards/esp32c3-devkit/doc.txt +++ b/boards/esp32c3-devkit/doc.txt @@ -62,8 +62,7 @@ see section \ref esp32_mcu_esp32 "ESP32 SoC Series". ### Board Configuration {#esp32c3_devkit_board_configuration} ESP32-C3-DevKit boards have no special hardware on board with the exception -of a single pin RGB-LED that uses a special bit-oriented protocol to -control the RGB-LED by 24-bit RGB values which is not supported yet. +of a single pin RGB-LED. All GPIOs are simply broken out for flexibility. Therefore, the board configuration is the most flexible one which provides: @@ -108,6 +107,7 @@ ADC | GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5 | | see \ref esp32_ad PWM_DEV(0) | GPIO3, GPIO4 | - | \ref esp32_pwm_channels "PWM Channels" I2C_DEV(0):SCL | GPIO4 | | \ref esp32_i2c_interfaces "I2C Interfaces" I2C_DEV(0):SDA | GPIO5 | | \ref esp32_i2c_interfaces "I2C Interfaces" +RGB-LED | GPIO8 | supported by driver module `ws281x` | | SPI_DEV(0):CLK | GPIO6 | SPI2_HOST (FSPI) is used | \ref esp32_spi_interfaces "SPI Interfaces" SPI_DEV(0):MISO | GPIO2 | SPI2_HOST (FSPI) is used | \ref esp32_spi_interfaces "SPI Interfaces" SPI_DEV(0):MOSI | GPIO7 | SPI2_HOST (FSPI) is used | \ref esp32_spi_interfaces "SPI Interfaces" diff --git a/boards/esp32c3-devkit/include/board.h b/boards/esp32c3-devkit/include/board.h index 5c22dbb92a..58a3bb3bc4 100644 --- a/boards/esp32c3-devkit/include/board.h +++ b/boards/esp32c3-devkit/include/board.h @@ -73,11 +73,15 @@ * @name LED (on-board) configuration * * ESP32-C3-DevKit boards have a SK68XXMINI-HS smart RGB-LED connected to - * GPIO8 on-board. This RGB-LEDs uses a special bit-oriented protocol to - * control the RGB-LED by 24-bit RGB values. Therefore, it can't be used as - * default LED definition for RIOT. + * GPIO8 on-board. The WS281x driver module `ws281x` can be used to control it. * @{ */ +#ifndef WS281X_PARAM_PIN +#define WS281X_PARAM_PIN (GPIO8) /**< GPIO pin connected to the data pin */ +#endif +#ifndef WS281X_PARAM_NUMOF +#define WS281X_PARAM_NUMOF (1U) /**< Number of LEDs chained */ +#endif /** @} */ /* include common board definitions as last step */ diff --git a/boards/esp32s2-devkit/include/periph_conf.h b/boards/esp32s2-devkit/include/periph_conf.h index bbd5d62df7..115000db97 100644 --- a/boards/esp32s2-devkit/include/periph_conf.h +++ b/boards/esp32s2-devkit/include/periph_conf.h @@ -69,7 +69,7 @@ extern "C" { * * @note As long as the GPIOs listed in DAC_GPIOS are not initialized as DAC * channels with the `dac_init` function, they can be used for other - * purposes. + * purposes. GPIO18 is also used for the RGB-LED. */ #ifndef DAC_GPIOS #define DAC_GPIOS { GPIO17, GPIO18 }