Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Silabs] Adds LCD timeouts for ICD applications #34703

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Next Next commit
feat: Add support for turning on and off the display
  • Loading branch information
rosahay-silabs committed Feb 7, 2025
commit aa356e7eb4169173ae6472dfd109b44f7d0df0cf
26 changes: 25 additions & 1 deletion examples/platform/silabs/display/lcd.cpp
Original file line number Diff line number Diff line change
@@ -75,7 +75,7 @@ CHIP_ERROR SilabsLCD::Init(uint8_t * name, bool initialState)
SILABS_LOG("Board Display enable fail %d", status);
err = CHIP_ERROR_INTERNAL;
}
#endif
#endif // SLI_SI91X_MCU_INTERFACE

/* Initialize the DMD module for the DISPLAY device driver. */
status = DMD_init(0);
@@ -257,6 +257,30 @@ void SilabsLCD::SetStatus(DisplayStatus_t & status)
mStatus = status;
}

CHIP_ERROR SilabsLCD::TurnOn(void)
{
CHIP_ERROR err = CHIP_NO_ERROR;
EMSTATUS status;
#if (SLI_SI91X_MCU_INTERFACE)
sl_memlcd_display_enable();
#else
status = sl_board_enable_display();
if (status != SL_STATUS_OK)
{
SILABS_LOG("Board Display enable fail %d", status);
err = CHIP_ERROR_INTERNAL;
}
#endif // SLI_SI91X_MCU_INTERFACE
return err;
}

CHIP_ERROR SilabsLCD::TurnOff(void)
{
CHIP_ERROR err = CHIP_NO_ERROR;
Clear();
sl_board_disable_display();
}

#ifdef QR_CODE_ENABLED
void SilabsLCD::WriteQRCode()
{
3 changes: 3 additions & 0 deletions examples/platform/silabs/display/lcd.h
Original file line number Diff line number Diff line change
@@ -74,6 +74,9 @@ class SilabsLCD
void SetStatus(DisplayStatus_t & status);
void WriteStatus();

CHIP_ERROR TurnOn(void);
CHIP_ERROR TurnOff(void);

#ifdef QR_CODE_ENABLED
void SetQRCode(uint8_t * str, uint32_t size);
void ShowQRCode(bool show);