38#include "../../PmicLedBase.hpp"
39#include "../../../platform/SensorCommWrapper.hpp"
41template<
typename Regs>
78 return _core.
clrRegBit(Regs::pmu::OFF_CTL, 3);
80 return _core.
setRegBit(Regs::pmu::OFF_CTL, 3);
82 return _core.
setRegBit(Regs::pmu::OFF_CTL, 3) &&
83 _core.
updateBits(Regs::pmu::OFF_CTL, 0x30, 0x00) >= 0;
95 if (!_core.
getRegBit(Regs::pmu::OFF_CTL, 3)) {
119 if (!_core.
setRegBit(Regs::pmu::OFF_CTL, 3)) {
129 default:
return false;
131 return _core.
updateBits(Regs::pmu::OFF_CTL, 0x30, val) >= 0;
141 if (!_core.
getRegBit(Regs::pmu::OFF_CTL, 3)) {
144 int val = _core.
readReg(Regs::pmu::OFF_CTL);
146 uint8_t manualBits = val & 0x30;
147 switch (manualBits) {
bool setOutputType(OutputType type) override
Set LED output type (no-op, always succeeds).
AXP1xxLed(SensorCommWrapper &core)
Construct LED control interface.
Mode getMode() override
Get the current LED operating mode.
ManualState getManualState() override
Get the current LED state in manual mode.
bool setMode(Mode mode) override
Set LED operating mode.
bool setManualState(ManualState state) override
Set the LED state in manual mode.
ManualState
Manual LED state (portable subset).
Mode
High-level LED operating mode (portable subset).
@ MANUAL
Manual control through registers.
@ AUTO
PMIC controls LED automatically (e.g.
@ DISABLE
LED is disabled (if supported).
bool clrRegBit(uint8_t reg, uint8_t bit)
bool getRegBit(uint8_t reg, uint8_t bit)
int readReg(uint8_t reg) const
int updateBits(uint8_t reg, uint8_t mask, uint8_t value_shifted)
bool setRegBit(uint8_t reg, uint8_t bit)