mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-22 10:42:49 +00:00
34 lines
1.2 KiB
C++
34 lines
1.2 KiB
C++
|
|
#include "configuration.h"
|
||
|
|
|
||
|
|
#ifdef _VARIANT_HELTEC_WIRELESS_TRACKER
|
||
|
|
|
||
|
|
#include "GPS.h"
|
||
|
|
#include "GpioLogic.h"
|
||
|
|
#include "graphics/TFTDisplay.h"
|
||
|
|
|
||
|
|
// Heltec tracker specific init
|
||
|
|
void lateInitVariant()
|
||
|
|
{
|
||
|
|
// LOG_DEBUG("Heltec tracker initVariant\n");
|
||
|
|
#ifdef VEXT_ENABLE
|
||
|
|
GpioPin *hwEnable = new GpioHwPin(VEXT_ENABLE);
|
||
|
|
GpioVirtPin *virtGpsEnable = gps ? gps->enablePin : new GpioVirtPin();
|
||
|
|
|
||
|
|
// On this board we are actually using the backlightEnable signal to already be controlling a physical enable to the
|
||
|
|
// display controller. But we'd _ALSO_ like to have that signal drive a virtual GPIO. So nest it as needed.
|
||
|
|
GpioVirtPin *virtScreenEnable = new GpioVirtPin();
|
||
|
|
if (TFTDisplay::backlightEnable) {
|
||
|
|
GpioPin *physScreenEnable = TFTDisplay::backlightEnable;
|
||
|
|
GpioPin *splitter = new GpioSplitter(virtScreenEnable, physScreenEnable);
|
||
|
|
TFTDisplay::backlightEnable = splitter;
|
||
|
|
|
||
|
|
// Assume screen is initially powered
|
||
|
|
splitter->set(true);
|
||
|
|
}
|
||
|
|
|
||
|
|
// If either the GPS or the screen is on, turn on the external power regulator
|
||
|
|
new GpioBinaryTransformer(virtGpsEnable, virtScreenEnable, hwEnable, GpioBinaryTransformer::Or);
|
||
|
|
#endif
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|