1#include "../../../SensorBuildOpt.h"
2#if !SENSORLIB_EXCLUDE_PMIC_AXP192
185 v |= ((func & 0x03) << 2);
212 if (v < 0)
return 0xFF;
216 if (v < 0)
return 0xFF;
220 if (v < 0)
return 0xFF;
224 if (v < 0)
return 0xFF;
228 if (v < 0)
return 0xFF;
229 return (v >> 2) & 0x03;
232 if (v < 0)
return 0xFF;
233 return (v & 0x40) ? 0x01 : 0x00;
246 uint8_t bit = (1 << pin);
268 default:
return false;
276 uint8_t reg_y1, reg_y2;
289 if (y1 == 0)
return false;
290 if (_core.
writeReg(reg_y1, y1) < 0)
return false;
291 return _core.
writeReg(reg_y2, y2) >= 0;
Status setDirection(uint8_t pin, Direction dir) override
Set GPIO pin direction.
bool setPwm(uint8_t pin, uint8_t x, uint8_t y1, uint8_t y2)
Configure PWM output parameters in one call.
Status setFunction(uint8_t pin, uint8_t func) override
Set GPIO pin function mode.
AXP192Gpio(AXP192Core &core)
Construct GPIO interface.
uint8_t getFunction(uint8_t pin) override
Get current GPIO pin function mode.
Status setPull(uint8_t pin, Pull pull) override
Set internal pull-down resistor.
Status write(uint8_t pin, Level level) override
Write digital level to a GPIO pin.
bool setPwmFrequency(uint8_t pin, uint8_t x)
Set PWM output frequency for GPIO1 (PWM1) or GPIO2 (PWM2)
DriveType getDrive(uint8_t pin) override
Get GPIO pin drive type.
Direction getDirection(uint8_t pin) override
Get GPIO pin direction.
Status setDrive(uint8_t pin, DriveType drive) override
Set GPIO pin drive type.
uint8_t getPinCount() const override
Get number of GPIO pins (6: GPIO0-GPIO5)
bool setPwmDutyCycle(uint8_t pin, uint8_t y1, uint8_t y2)
Set PWM duty cycle for GPIO1 (PWM1) or GPIO2 (PWM2)
Pull getPull(uint8_t pin) override
Get current pull-down setting.
Status read(uint8_t pin, bool &high) override
Read digital level of a GPIO pin.
DriveType
GPIO drive type.
@ OpenDrain
Open-drain output: only pulls low, high-impedance for high.
Level
Output level control.
@ High
Logic high (active drive high)
@ HiZ
High-impedance (input mode or open-drain not pulling low)
Pull
Internal pull resistor configuration.
static constexpr bool isOk(Status s)
Direction
GPIO pin direction.
@ Output
Configure pin as output (drive external circuits)
@ Input
Configure pin as input (read external signals)
Status
GPIO operation status code.
bool clrRegBit(uint8_t reg, uint8_t bit)
bool getRegBit(uint8_t reg, uint8_t bit)
int readReg(uint8_t reg) const
int writeReg(uint8_t reg, uint8_t val)
int updateBits(uint8_t reg, uint8_t mask, uint8_t value_shifted)
bool setRegBit(uint8_t reg, uint8_t bit)
static constexpr uint8_t GPIO1_CTL
static constexpr uint8_t PWM2_FREQ
static constexpr uint8_t GPIO012_SIGNAL
static constexpr uint8_t GPIO34_SIGNAL
static constexpr uint8_t PWM2_DUTY2
static constexpr uint8_t GPIO2_CTL
static constexpr uint8_t GPIO012_PULLDOWN
static constexpr uint8_t GPIO0_CTL
static constexpr uint8_t PWM1_FREQ
static constexpr uint8_t PWM1_DUTY2
static constexpr uint8_t PWM1_DUTY1
static constexpr uint8_t GPIO34_CTL
static constexpr uint8_t GPIO5_CTL
static constexpr uint8_t PWM2_DUTY1