Skip to content

Commit

Permalink
Added button and leds macros with led and button code
Browse files Browse the repository at this point in the history
  • Loading branch information
bhmanda-silabs committed Dec 4, 2024
1 parent df35b82 commit d03dcad
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
2 changes: 2 additions & 0 deletions examples/platform/silabs/MatterConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,9 @@ CHIP_ERROR SilabsMatterConfig::InitWiFi(void)
extern "C" void vApplicationIdleHook(void)
{
#if (SLI_SI91X_MCU_INTERFACE && CHIP_CONFIG_ENABLE_ICD_SERVER)
#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT
SiWxPlatformInterface::sl_si91x_btn_event_handler();
#endif //SL_CATALOG_SIMPLE_BUTTON_PRESENT
SiWxPlatformInterface::sl_si91x_uart_power_requirement_handler();
#endif
}
5 changes: 4 additions & 1 deletion src/platform/silabs/SiWx917/SiWxPlatformInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@ extern "C" {
#endif
#if CHIP_CONFIG_ENABLE_ICD_SERVER
#if SLI_SI91X_MCU_INTERFACE
#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT
#include "sl_si91x_button.h"
#include "sl_si91x_button_pin_config.h"
#endif //SL_CATALOG_SIMPLE_BUTTON_PRESENT
#include "sl_si91x_driver_gpio.h"
#include "sl_si91x_power_manager.h"

Expand Down Expand Up @@ -70,6 +72,7 @@ namespace SiWxPlatformInterface {

#if CHIP_CONFIG_ENABLE_ICD_SERVER
#if SLI_SI91X_MCU_INTERFACE
#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT
/**
* @brief Required to invoke button press event during sleep as falling edge is not detected
* @param[in] none.
Expand All @@ -81,7 +84,7 @@ inline void sl_si91x_btn_event_handler()
sl_button_on_change(SL_BUTTON_BTN0_NUMBER,
(sl_si91x_gpio_get_uulp_npss_pin(SL_BUTTON_BTN0_PIN) == LOW) ? BUTTON_PRESSED : BUTTON_RELEASED);
}

#endif //SL_CATALOG_SIMPLE_BUTTON_PRESENT
/**
* @brief Required to enable MATTER shell UART with ICD feature flag
* @param[in] none.
Expand Down
20 changes: 19 additions & 1 deletion src/platform/silabs/platformAbstraction/WiseMcuSpam.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
*/

#include <platform/silabs/platformAbstraction/SilabsPlatform.h>
#include <sl_si91x_button_pin_config.h>
#include <sl_si91x_common_flash_intf.h>

#include <FreeRTOS.h>
Expand All @@ -36,8 +35,13 @@ extern "C" {
#include "em_core.h"
#include "rsi_board.h"
#include "sl_event_handler.h"

#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT
#include "sl_si91x_button.h"
#include "sl_si91x_button_pin_config.h"
#endif //SL_CATALOG_SIMPLE_BUTTON_PRESENT

#ifdef ENABLE_WSTK_LEDS
#if defined(SL_MATTER_RGB_LED_ENABLED) && SL_MATTER_RGB_LED_ENABLED
#include "sl_si91x_rgb_led.h"
#include "sl_si91x_rgb_led_config.h"
Expand All @@ -47,6 +51,7 @@ extern "C" {
#include "sl_si91x_led_config.h"
#include "sl_si91x_led_instances.h"
#endif // defined(SL_MATTER_RGB_LED_ENABLED) && SL_MATTER_RGB_LED_ENABLED
#endif // ENABLE_WSTK_LEDS

#if CHIP_CONFIG_ENABLE_ICD_SERVER == 0
void soc_pll_config(void);
Expand All @@ -61,6 +66,7 @@ void soc_pll_config(void);
#include "uart.h"
#endif

#ifdef ENABLE_WSTK_LEDS
#if defined(SL_MATTER_RGB_LED_ENABLED) && SL_MATTER_RGB_LED_ENABLED
#define SL_LED_COUNT SL_SI91X_RGB_LED_COUNT
const sl_rgb_led_t * ledPinArray[SL_LED_COUNT] = { &led_led0 };
Expand All @@ -69,12 +75,17 @@ const sl_rgb_led_t * ledPinArray[SL_LED_COUNT] = { &led_led0 };
#define SL_LED_COUNT SL_SI91x_LED_COUNT
uint8_t ledPinArray[SL_LED_COUNT] = { SL_LED_LED0_PIN, SL_LED_LED1_PIN };
#endif // defined(SL_MATTER_RGB_LED_ENABLED) && SL_MATTER_RGB_LED_ENABLED
#endif // ENABLE_WSTK_LEDS

namespace chip {
namespace DeviceLayer {
namespace Silabs {
namespace {

#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT
uint8_t sButtonStates[SL_SI91x_BUTTON_COUNT] = { 0 };
#endif //SL_CATALOG_SIMPLE_BUTTON_PRESENT

#if CHIP_CONFIG_ENABLE_ICD_SERVER
bool btn0_pressed = false;
#endif /* SL_ICD_ENABLED */
Expand Down Expand Up @@ -152,6 +163,7 @@ void SilabsPlatform::StartScheduler()
vTaskStartScheduler();
}

#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT
extern "C" void sl_button_on_change(uint8_t btn, uint8_t btnAction)
{
#if SL_ICD_ENABLED
Expand Down Expand Up @@ -191,6 +203,12 @@ uint8_t SilabsPlatform::GetButtonState(uint8_t button)
{
return (button < SL_SI91x_BUTTON_COUNT) ? sButtonStates[button] : 0;
}
#else
uint8_t SilabsPlatform::GetButtonState(uint8_t button)
{
return 0;
}
#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT

CHIP_ERROR SilabsPlatform::FlashInit()
{
Expand Down

0 comments on commit d03dcad

Please sign in to comment.