Line 112: |
Line 112: |
| |- | | |- |
| | 20 || [18.0.0+] | | | 20 || [18.0.0+] |
| + | |- |
| + | | 21 || [19.0.0+] |
| + | |- |
| + | | 22 || [19.0.0+] |
| + | |- |
| + | | 23 || [19.0.0+] |
| |} | | |} |
| | | |
Line 257: |
Line 263: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || GetAlertEvent |
| |- | | |- |
− | | 1 || | + | | 1 || SetAlertEnabled |
| |- | | |- |
− | | 2 || | + | | 2 || GetAlertStatus |
| |- | | |- |
− | | 3 || | + | | 3 || ClearAlertStatus |
| |- | | |- |
| | 4 || | | | 4 || |
Line 279: |
Line 285: |
| | 10 || | | | 10 || |
| |- | | |- |
− | | 11 || | + | | 11 || GetChargeType |
| |- | | |- |
− | | 12 || | + | | 12 || SetChargeType |
| |- | | |- |
− | | 13 || | + | | 13 || SetChargeCurrentLimitInMilliAmpere |
| |- | | |- |
− | | 14 || | + | | 14 || GetChargeVoltageLimitInMilliVolt |
| |- | | |- |
− | | 15 || | + | | 15 || SetChargeVoltageLimitInMilliVolt |
| |- | | |- |
− | | 16 || | + | | 16 || SetChargeConfig |
| |- | | |- |
| | 17 || GetHiZ | | | 17 || GetHiZ |
Line 297: |
Line 303: |
| | 19 || GetAverageChargeCurrentInMilliAmpere | | | 19 || GetAverageChargeCurrentInMilliAmpere |
| |- | | |- |
− | | 20 || | + | | 20 || GetChargeCurrentInMilliAmpere |
| |- | | |- |
| | 21 || | | | 21 || |
Line 307: |
Line 313: |
| | 24 || | | | 24 || |
| |- | | |- |
− | | 25 || | + | | 25 || GetParameter |
| |- | | |- |
− | | 26 || | + | | 26 || SetParameter |
| |- | | |- |
| | 27 || | | | 27 || |
Line 339: |
Line 345: |
| | 40 || GetAverageBatteryVoltageInMilliVolt | | | 40 || GetAverageBatteryVoltageInMilliVolt |
| |- | | |- |
− | | 41 || | + | | 41 || SetBatteryVoltageAlertMinInMilliVolt |
| |- | | |- |
− | | 42 || | + | | 42 || SetBatteryVoltageAlertMaxInMilliVolt |
| |- | | |- |
− | | 43 || | + | | 43 || GetWatchdogTimerEnabled |
| |- | | |- |
− | | 44 || | + | | 44 || SetWatchdogTimerEnabled |
| |- | | |- |
− | | 45 || | + | | 45 || SetWatchdogTimerPeriod |
| |- | | |- |
− | | 46 || | + | | 46 || ResetWatchdogTimer |
| |- | | |- |
| | 47 || | | | 47 || |
Line 355: |
Line 361: |
| | 48 || | | | 48 || |
| |- | | |- |
− | | 49 || | + | | 49 || GetBatteryVoltageInMilliVolt |
| |- | | |- |
− | | 50 || | + | | 50 || GetAverageVoltageTimeConstant |
| |- | | |- |
− | | 51 || | + | | 51 || GetChargeCurrentLimitInMilliAmpere |
| |- | | |- |
| | 52 || | | | 52 || |
Line 365: |
Line 371: |
| | 53 || | | | 53 || |
| |- | | |- |
− | | 54 || | + | | 54 || GetVfOcvInMilliVolt |
| |- | | |- |
| | 55 || | | | 55 || |
Line 587: |
Line 593: |
| = fgm, fgm:0, fgm:1, fgm:2, fgm:3, fgm:4, fgm:5, fgm:6, fgm:7, fgm:9 = | | = fgm, fgm:0, fgm:1, fgm:2, fgm:3, fgm:4, fgm:5, fgm:6, fgm:7, fgm:9 = |
| These are "nn::fgm::sf::ISession". | | These are "nn::fgm::sf::ISession". |
| + | |
| + | [19.0.0+] These are "nn::fgm::ISession". |
| | | |
| Each service represents a different priority from 0 (Highest/Thermal) to 9 (Lowest). The "fgm" service represents priority 8 (Default). | | Each service represents a different priority from 0 (Highest/Thermal) to 9 (Lowest). The "fgm" service represents priority 8 (Default). |
Line 604: |
Line 612: |
| == IRequest == | | == IRequest == |
| This is "nn::fgm::sf::IRequest". | | This is "nn::fgm::sf::IRequest". |
| + | |
| + | [19.0.0+] This is "nn::fgm::IRequest". |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 796: |
Line 806: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x00 || 0x4 || u32. Input (Sink) current limit in mA | + | | 0x00 || 0x4 || InputCurrentLimit (input/sink current limit in mA) |
| + | |- |
| + | | 0x04 || 0x4 || BoostModeCurrentLimit (output/source/vbus/OTG current limit in mA) |
| + | |- |
| + | | 0x08 || 0x4 || FastChargeCurrentLimit (battery charging current limit in mA) |
| + | |- |
| + | | 0x0C || 0x4 || ChargeVoltageLimit (battery charging voltage limit in mV) |
| + | |- |
| + | | 0x10 || 0x4 || [[#ChargerType_2|ChargerType]] |
| + | |- |
| + | | 0x14 || 0x1 || [[#HiZMode|HiZMode]] |
| + | |- |
| + | | 0x15 || 0x1 || [[#BatteryCharging|BatteryCharging]] |
| |- | | |- |
− | | 0x04 || 0x4 || u32. Output (Source/Vbus/OTG) current limit in mA | + | | 0x16 || 0x2 || Reserved |
| |- | | |- |
− | | 0x08 || 0x4 || u32. Battery charging current limit in mA | + | | 0x18 || 0x4 || [[#Vdd50State|Vdd50State]] |
| |- | | |- |
− | | 0x0C || 0x4 || u32. Battery charging voltage limit in mV | + | | 0x1C || 0x4 || TemperatureCelsius (battery temperature in milli C) |
| |- | | |- |
− | | 0x10 || 0x4 || enum, same as power-role? Always 1 except when OTG where it becomes 2 | + | | 0x20 || 0x4 || BatteryChargePercentage (capacity now per cent-mille, i.e. 100% = 100000 pcm) |
| |- | | |- |
− | | 0x14 || 0x4 || Bit field (bit8: Enable Battery Charging) | + | | 0x24 || 0x4 || BatteryChargeMilliVoltage (voltage avg in mV) |
| |- | | |- |
− | | 0x18 || 0x4 || u32. Charging limits state based on battery temperature | + | | 0x28 || 0x4 || BatteryAgePercentage (battery age capacity full/capacity design per cent-mille, i.e. 100% = 100000 pcm) |
| |- | | |- |
− | | 0x1C || 0x4 || u32. Battery Temperature (milli C) | + | | 0x2C || 0x4 || [[USB_services#UsbPowerRole|UsbPowerRole]] |
| |- | | |- |
− | | 0x20 || 0x4 || u32. Capacity now per cent-mille (i.e. 100% = 100000 pcm) | + | | 0x30 || 0x4 || [[USB_services#UsbChargerType|UsbChargerType]] |
| |- | | |- |
− | | 0x24 || 0x4 || u32. Voltage avg in mV | + | | 0x34 || 0x4 || ChargerInputVoltageLimit (charger voltage limit in mV) |
| |- | | |- |
− | | 0x28 || 0x4 || u32. Battery age (capacity full / capacity design) per cent-mille (i.e. 100% = 100000 pcm) | + | | 0x38 || 0x4 || ChargerInputCurrentLimit (charger current limit in mA) |
| |- | | |- |
− | | 0x2C || 0x4 || enum. Power role (0: Unknown, 1: Sink, 2: Source) | + | | 0x3C || 0x1 || [[#FastBatteryCharging|FastBatteryCharging]] |
| |- | | |- |
− | | 0x30 || 0x4 || enum. [[#Charger]] | + | | 0x3D || 0x1 || [[#ControllerPowerSupply|ControllerPowerSupply]] |
| + | |- |
| + | | 0x3E || 0x1 || [[#OtgRequest|OtgRequest]] |
| + | |- |
| + | | 0x3F || 0x1 || Reserved |
| + | |- |
| + | | 0x40 || 0x14 || [17.0.0+] |
| + | |} |
| + | |
| + | == ChargerType == |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 0x34 || 0x4 || u32. Charger voltage limit in mV | + | ! Value || Name |
| |- | | |- |
− | | 0x38 || 0x4 || u32. Charger current limit in mA | + | | 0 || ChargeDisable |
| |- | | |- |
− | | 0x3C || 0x4 || Bit field (bit0: potentially no hub, bit8: Joy-con charging, bit12: OTG) | + | | 1 || ChargeBattery |
| |- | | |- |
− | | 0x40 || 0x14 || | + | | 2 || Otg |
| |} | | |} |
| | | |
− | === Charger === | + | == HiZMode == |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
| ! Value || Name | | ! Value || Name |
| |- | | |- |
− | | 0 || Unknown | + | | 0 || Disable |
| + | |- |
| + | | 1 || Enable |
| + | |} |
| + | |
| + | == BatteryCharging == |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 1 || PD | + | ! Value || Name |
| |- | | |- |
− | | 2 || Type-C 1.5A | + | | 0 || Disable |
| |- | | |- |
− | | 3 || Type-C 3.0A | + | | 1 || Enable |
| + | |} |
| + | |
| + | == FastBatteryCharging == |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 4 || DCP | + | ! Value || Name |
| |- | | |- |
− | | 5 || CDP | + | | 0 || Disable |
| |- | | |- |
− | | 6 || SDP | + | | 1 || Enable |
| + | |} |
| + | |
| + | == ControllerPowerSupply == |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 7 || Apple 500mA | + | ! Value || Name |
| + | |- |
| + | | 0 || Disable |
| + | |- |
| + | | 1 || Enable |
| + | |} |
| + | |
| + | == OtgRequest == |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value || Name |
| |- | | |- |
− | | 8 || Apple 1000mA | + | | 0 || Disable |
| |- | | |- |
− | | 9 || Apple 2000mA | + | | 1 || Enable |
| |} | | |} |
| | | |