diff options
author | Ivan Zorin <[email protected]> | 2024-07-09 12:20:02 +0300 |
---|---|---|
committer | GitHub <[email protected]> | 2024-07-09 19:20:02 +1000 |
commit | c19e88233844f00dedb283276f3a5502ef05162a (patch) | |
tree | dc345cb87416c8f70414aeb39276c620ea445ae4 | |
parent | ac6994a6768e7d3491eadcdd1c5abe3d69db091f (diff) | |
download | IronOS-c19e88233844f00dedb283276f3a5502ef05162a.tar.gz IronOS-c19e88233844f00dedb283276f3a5502ef05162a.zip |
Add enum for USB PD modes (#1943)
* Add enum for USB PD modes
* Update comments for clarification according to code review
-rw-r--r-- | source/Core/Drivers/FS2711.cpp | 2 | ||||
-rw-r--r-- | source/Core/Drivers/USBPD.cpp | 2 | ||||
-rw-r--r-- | source/Core/Drivers/Utils.cpp | 4 | ||||
-rw-r--r-- | source/Core/Inc/Settings.h | 6 | ||||
-rw-r--r-- | source/Core/Src/settingsGUI.cpp | 13 |
5 files changed, 17 insertions, 10 deletions
diff --git a/source/Core/Drivers/FS2711.cpp b/source/Core/Drivers/FS2711.cpp index 1aec92e8..35e90898 100644 --- a/source/Core/Drivers/FS2711.cpp +++ b/source/Core/Drivers/FS2711.cpp @@ -158,7 +158,7 @@ void FS2711::negotiate() { // FS2711 uses mV instead of V const uint16_t vmax = USB_PD_VMAX * 1000; uint8_t tip_resistance = getTipResistanceX10(); - if (getSettingValue(SettingsOptions::USBPDMode) == 1) { + if (getSettingValue(SettingsOptions::USBPDMode) == usbpdMode_t::DEFAULT) { tip_resistance += 5; } diff --git a/source/Core/Drivers/USBPD.cpp b/source/Core/Drivers/USBPD.cpp index 1f154080..6c21f5ed 100644 --- a/source/Core/Drivers/USBPD.cpp +++ b/source/Core/Drivers/USBPD.cpp @@ -136,7 +136,7 @@ bool parseCapabilitiesArray(const uint8_t numCaps, uint8_t *bestIndex, uint16_t // Fudge of 0.5 ohms to round up a little to account for us always having off periods in PWM uint8_t tipResistance = getTipResistanceX10(); - if (getSettingValue(SettingsOptions::USBPDMode) == 1) { + if (getSettingValue(SettingsOptions::USBPDMode) == usbpdMode_t::DEFAULT) { tipResistance += 5; } #ifdef MODEL_HAS_DCDC diff --git a/source/Core/Drivers/Utils.cpp b/source/Core/Drivers/Utils.cpp index b560fd3a..20f8c46f 100644 --- a/source/Core/Drivers/Utils.cpp +++ b/source/Core/Drivers/Utils.cpp @@ -23,7 +23,7 @@ int32_t Utils::LinearInterpolate(int32_t x1, int32_t y1, int32_t x2, int32_t y2, uint16_t Utils::RequiredCurrentForTipAtVoltage(uint16_t voltageX10) {
uint8_t tipResistancex10 = getTipResistanceX10();
- if (getSettingValue(SettingsOptions::USBPDMode) == 1) {
+ if (getSettingValue(SettingsOptions::USBPDMode) == usbpdMode_t::DEFAULT) {
tipResistancex10 += 5;
}
#ifdef MODEL_HAS_DCDC
@@ -34,4 +34,4 @@ uint16_t Utils::RequiredCurrentForTipAtVoltage(uint16_t voltageX10) { // V/R = I
uint16_t currentX10 = (voltageX10 * 10) / tipResistancex10;
return currentX10;
-}
\ No newline at end of file +}
diff --git a/source/Core/Inc/Settings.h b/source/Core/Inc/Settings.h index e9bddfaf..e84fbd87 100644 --- a/source/Core/Inc/Settings.h +++ b/source/Core/Inc/Settings.h @@ -104,6 +104,12 @@ typedef enum { INFINITY = 6, // Show boot logo on repeat (if animated) until a button toggled } logoMode_t; +typedef enum { + DEFAULT = 1, // PPS + EPR + more power request through increasing resistance by 0.5 Ohm to compensate power loss over cable/PCB/etc. + SAFE = 2, // PPS + EPR, without requesting more power + NO_DYNAMIC = 0, // PPS + EPR disabled, fixed PDO only +} usbpdMode_t; + // Settings wide operations void saveSettings(); bool loadSettings(); diff --git a/source/Core/Src/settingsGUI.cpp b/source/Core/Src/settingsGUI.cpp index b9ded285..180b8547 100644 --- a/source/Core/Src/settingsGUI.cpp +++ b/source/Core/Src/settingsGUI.cpp @@ -531,19 +531,20 @@ static void displayPDNegTimeout(void) { static void displayUSBPDMode(void) { /* - * PD Mode - * 0 = Safe mode, no PPS, no EPR - * 1 = Default mode, tolerant + PPS + EPR - * 2 = Strict mode + PPS + EPR + * Supported PD modes: + * DEFAULT, 1 = PPS + EPR + more power request through increasing resistance by 0.5 Ohm to compensate power loss over cable/PCB/etc. + * SAFE, 2 = PPS + EPR, without requesting more power + * NO_DYNAMIC, 0 = PPS + EPR disabled, fixed PDO only */ switch (getSettingValue(SettingsOptions::USBPDMode)) { - case 1: + case usbpdMode_t::DEFAULT: OLED::print(translatedString(Tr->USBPDModeDefault), FontStyle::SMALL, 255, OLED::getCursorX()); break; - case 2: + case usbpdMode_t::SAFE: OLED::print(translatedString(Tr->USBPDModeSafe), FontStyle::SMALL, 255, OLED::getCursorX()); break; + case usbpdMode_t::NO_DYNAMIC: default: OLED::print(translatedString(Tr->USBPDModeNoDynamic), FontStyle::SMALL, 255, OLED::getCursorX()); break; |