1/* SPDX-License-Identifier: GPL-2.0-only */ 2 3Device (BAT0) 4{ 5 Name (_HID, EisaId("PNP0C0A")) 6 Name (_UID, 0) 7 Method (_STA, 0, NotSerialized) 8 { 9 // Battery Status 10 // 0x80 BIT1 0x01 = Present 11 // 0x80 BIT1 0x00 = Not Present 12 If (ECPS & 0x02) 13 { 14 Return (0x1F) 15 } 16 Return (0x0F) 17 } 18 19 Name (SBIF, Package (13) 20 { 21 1, // 0: Power Unit 0: mWh 22 // 1: mA 23 0xffffffff, // 1: Design Capacity 24 0xffffffff, // 2: Last Full Charge Capacity 25 1, // 3: Battery Technology 0: Primary (non-rechargeable) 26 // 1: Secondary (rechargeable) 27 0xffffffff, // 4: Design Voltage 28 0, // 5: Design capacity of Warning 29 0, // 6: Design capacity of Low 30 0xffffffff, // 7: Battery capacity Decrement Granularity 31 0xffffffff, // 8: Battery capacity Increment Granularity 32 CONFIG_EC_STARLABS_BATTERY_MODEL, // 9: Model Number 33 "Unknown", // 10: Serial Number 34 CONFIG_EC_STARLABS_BATTERY_TYPE, // 11: Battery Type 35 CONFIG_EC_STARLABS_BATTERY_OEM // 12: OEM Information 36 }) 37 Method (_BIF, 0, NotSerialized) 38 { 39 If (B1DC) { 40 SBIF [1] = B1DC 41 If (B1FC != 0xffff) { 42 SBIF [2] = B1FC 43 } Else { 44 SBIF [2] = B1DC 45 } 46 SBIF [4] = B1DV 47 SBIF [5] = B1DC / 5 // 20% 48 SBIF [6] = B1DC / 20 // 5% 49 SBIF [7] = B1DC / 500 // 0.2% 50 SBIF [8] = B1DC / 500 // 0.2% 51 If (B1SN != 0xffff) { 52 SBIF [10] = B1SN 53 } 54 } 55 Return (SBIF) 56 } 57 58 Name (XBIF, Package (21) 59 { 60 1, // 0: Revision 0: 3.0 61 // 1: 4.0 62 1, // 1: Power Unit 0: mWh 63 // 1: mA 64 0xffffffff, // 2: Design Capacity 65 0xffffffff, // 3: Last Full Charge Capacity 66 1, // 4: Battery Technology 0: Primary (non-rechargeable) 67 // 1: Secondary (rechargeable) 68 0xffffffff, // 5: Design Voltage 69 0xffffffff, // 6: Design Capacity of Warning 70 0xffffffff, // 7: Design Capacity of Low 71 0xffffffff, // 8: Cycle Count 72 2, // 9: Measurement Accuracy 73 5000, // 10: Max Sampling Time (ms) 74 1000, // 11: Min Sampling Time (ms) 75 5000, // 12: Max Averaging Interval 76 1000, // 13: Min Averaging Interval 77 0xffffffff, // 14: Battery Capacity Decrement Granularity 78 0xffffffff, // 15: Battery Capacity Increment Granularity 79 CONFIG_EC_STARLABS_BATTERY_MODEL, // 16: Model Number 80 "Unknown", // 17: Serial Number 81 CONFIG_EC_STARLABS_BATTERY_TYPE, // 18: Battery Type 82 CONFIG_EC_STARLABS_BATTERY_OEM, // 19: OEM Information 83 1, // 20: Swapping Capability 0: Non swappable 84 // 1: Cold swappable 85 // 16: Hot swappable 86 }) 87 Method (_BIX, 0, NotSerialized) 88 { 89 If (B1DC) { 90 XBIF [2] = B1DC 91 If (B1FC != 0xffff) { 92 XBIF [3] = B1FC 93 } Else { 94 XBIF [3] = B1DC 95 } 96 XBIF [5] = B1DV 97 XBIF [6] = B1DC / 5 // 20% 98 XBIF [7] = B1DC / 20 // 5% 99 If (B1CC != 0xffff) { 100 XBIF [8] = B1CC 101 } 102 XBIF [14] = B1DC / 500 // 0.2% 103 XBIF [15] = B1DC / 500 // 0.2% 104 If (B1SN != 0xffff) { 105 XBIF [17] = B1SN 106 } 107 } 108 Return (XBIF) 109 } 110 111 Name (PKG1, Package (4) 112 { 113 0xffffffff, // 0: Battery State 114 0xffffffff, // 1: Battery Present Rate 115 0xffffffff, // 2: Battery Remaining Capacity 116 0xffffffff, // 3: Battery Present Voltage 117 }) 118 Method (_BST, 0, NotSerialized) 119 { 120 PKG1[0] = (B1ST & 0x07) 121 PKG1[1] = B1PR 122 If (B1RC != 0xffff) { 123 PKG1[2] = B1RC 124 } Else { 125 PKG1[2] = B1RP * (B1DC / 100) 126 } 127 PKG1[3] = B1PV 128 Return (PKG1) 129 } 130 Method (_PCL, 0, NotSerialized) 131 { 132 Return ( 133 Package() { _SB } 134 ) 135 } 136} 137