Repository navigation
Power: keep capabilities consistent when the PMIC is not identified - #422
Merged
Merged
Conversation
- When every PMIC ID probe fails, the charge and output setters already refuse the unconfirmed register map. getChargeControlCaps() and getPowerOutputCaps() now return 0 in that state, as getChargeStateCaps() does, so callers are not offered paths that always fail. - The cross check between getChargeState() and getChargeStateCaps() also runs in device builds with a debug log level (CORE_DEBUG_LEVEL >= 4 or CONFIG_LOG_DEFAULT_LEVEL >= 4). On a device a mismatch is logged with ESP_LOGE and the returned state is unchanged; the PC build keeps the assertion. Device builds that define M5UNIFIED_CHECK_CHARGE_STATE_CAPS now log instead of stopping at an assertion, so diagnostics never stop a running device.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
When every PMIC ID probe fails (an AXP192 / AXP2101 board whose PMIC does not answer), the charge and output setters already refuse the unconfirmed register map, and
getChargeStateCaps()returns an empty set.getChargeControlCaps()andgetPowerOutputCaps()still advertised their paths, so a caller could be offered a path whose setter always returnsfalse. They now return 0 in that state.The cross check between
getChargeState()andgetChargeStateCaps()(a state the capability set does not advertise) also runs in device builds with a debug log level (CORE_DEBUG_LEVEL >= 4orCONFIG_LOG_DEFAULT_LEVEL >= 4). On a device a mismatch is logged withESP_LOGEand the returned state is unchanged; the PC build keeps the assertion. Device builds that defineM5UNIFIED_CHECK_CHARGE_STATE_CAPSnow log instead of stopping at an assertion.Testing
setBatteryCharge,setChargeCurrent,setChargeVoltage,setExtOutput,setUsbOutput,setVibration,setExtPortBusConfig): each refuses the unconfirmed PMIC firstCORE_DEBUG_LEVEL=5develop