@license MIT License
Copyright (c) 2026 lewis he
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Author
- Lewis He (lewis.nosp@m.he@o.nosp@m.utloo.nosp@m.k.co.nosp@m.m)
- Date
- 2026-04-09
SY6970 PMIC Register Definitions and Constants
This header file contains all register addresses, bit masks, shift values, and configuration constants for the Silergy SY6970 PMIC (Power Management IC).
The SY6970 is a highly integrated USB PD/BC1.2 compliant charger with:
- Buck-boost charger support (up to 5A fast charge)
- USB PD/HVDCP adaptive voltage detection
- Integrated 12-bit ADC for voltage/current monitoring
- OTG (On-The-Go) boost mode for power bank functionality
- JEITA thermal protection support
Register
- REG_PWR_INPUT (0x00): Input source control - HIZ mode, input current limit
- REG_PWR_VINDPM (0x01): VINDPM control - Battery HOT/COLD threshold
- REG_PWR_ONOFF (0x02): Power on/off control - ADC conv, boost freq, AICL/HVDCP
- REG_CHG_CTRL (0x03): Charge control - Bat load, OTG, charge enable, sys min
- REG_CHG_CURRENT (0x04): Fast charge current (0-5056mA, 64mA steps)
- REG_CHG_PRE_CURR (0x05): Pre-charge/termination current
- REG_CHG_VOLT (0x06): Charge voltage control (3840-4608mV, 16mV steps)
- REG_CHG_TIMER (0x07): Charge timer and watchdog
- REG_CHG_IR_COMP (0x08): IR compensation and thermal regulation
- REG_MISC_CTRL (0x09): Misc control - BATFET, pumpEX
- REG_BOOST_CTRL (0x0A): Boost control - boost voltage/current limit
- REG_STATUS (0x0B): Status register - bus/charge state, power good
- REG_FAULT (0x0C): Fault register - watchdog, boost, charge, bat, NTC faults
- REG_VINDPM (0x0D): VINDPM voltage setting
- REG_ADC_* (0x0E-0x12): ADC readout registers (VBAT, VSYS, NTC, VBUS, ICHG)
- REG_IDPM_STATUS (0x13): Input DP/DM status
- REG_DEVICE_REV (0x14): Device revision and configuration
Channels
- VBUS: 2600-15400mV (100mV steps)
- VBAT: 2304-4608mV (20mV steps)
- VSYS: 2304-3700mV (20mV steps)
- NTC: 21-100% (0.465% steps)
- ICHG: 0-5056mA (50mA steps via ADC)
Parameters
- Pre-charge current: 64-1024mA (64mA steps)
- Fast charge current: 0-5056mA (64mA steps)
- Termination current: 64-1024mA (64mA steps)
- Charge voltage: 3840-4608mV (16mV steps)
Mode Parameters
- Boost voltage: 4550-5510mV (64mV steps)
- Boost current limit: 500mA, 1200mA (configurable)
- Note
- All setter methods with step requirements will automatically quantize input values to the nearest valid step if they do not match exactly.
- See also
- SY6970Charger.cpp, SY6970Power.cpp, SY6970Adc.cpp, SY6970Core.cpp
Definition in file SY6970Regs.hpp.