Based on kernel version 7.0. Page generated on 2026-04-23 09:48 EST.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/power/supply/battery.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Battery Characteristics maintainers: - Sebastian Reichel <sre@kernel.org> description: | The devicetree battery node provides static battery characteristics. In smart batteries, these are typically stored in non-volatile memory on a fuel gauge chip. The battery node should be used where there is no appropriate non-volatile memory, or it is unprogrammed/incorrect. Upstream dts files should not include battery nodes, unless the battery represented cannot easily be replaced in the system by one of a different type. This prevents unpredictable, potentially harmful, behavior should a replacement that changes the battery type occur without a corresponding update to the dtb. Battery properties are named, where possible, for the corresponding elements in enum power_supply_property, defined in include/linux/power_supply.h Batteries must be referenced by chargers and/or fuel-gauges using a phandle. The phandle's property should be named "monitored-battery". properties: compatible: const: simple-battery device-chemistry: description: This describes the chemical technology of the battery. oneOf: - const: nickel-cadmium - const: nickel-metal-hydride - const: lithium-ion description: This is a blanket type for all lithium-ion batteries, including those below. If possible, a precise compatible string from below should be used, but sometimes it is unknown which specific lithium ion battery is employed and this wide compatible can be used. - const: lithium-ion-polymer - const: lithium-ion-iron-phosphate - const: lithium-ion-manganese-oxide over-voltage-threshold-microvolt: description: battery over-voltage limit re-charge-voltage-microvolt: description: limit to automatically start charging again voltage-min-design-microvolt: description: drained battery voltage voltage-max-design-microvolt: description: fully charged battery voltage energy-full-design-microwatt-hours: description: battery design energy charge-full-design-microamp-hours: description: battery design capacity trickle-charge-current-microamp: description: current for trickle-charge phase. Please note that the trickle-charging here, refers "wake-up" or "pre-pre" -charging, for very empty batteries. Similar term is also used for "maintenance" or "top-off" -charging of batteries (like NiMh bq24400) - that is different and not controlled by this property. tricklecharge-upper-limit-microvolt: description: limit when to change to precharge from trickle charge Trickle-charging here refers "wake-up" or "pre-pre" -charging. precharge-current-microamp: description: current for pre-charge phase precharge-upper-limit-microvolt: description: limit when to change to constant charging charge-term-current-microamp: description: current for charge termination phase constant-charge-current-max-microamp: description: maximum constant input current constant-charge-voltage-max-microvolt: description: maximum constant input voltage factory-internal-resistance-micro-ohms: description: battery factory internal resistance resistance-temp-table: $ref: /schemas/types.yaml#/definitions/uint32-matrix items: items: - description: the temperature in degree Celsius - description: battery internal resistance percent description: | A table providing the temperature in degree Celsius and corresponding battery internal resistance percent, which is used to look up the resistance percent according to current temperature to get an accurate batterty internal resistance in different temperatures. ocv-capacity-celsius: description: | An array containing the temperature in degree Celsius, for each of the battery capacity lookup table. operating-range-celsius: description: operating temperature range of a battery items: - description: minimum temperature at which battery can operate - description: maximum temperature at which battery can operate ambient-celsius: description: safe range of ambient temperature items: - description: alert when ambient temperature is lower than this value - description: alert when ambient temperature is higher than this value alert-celsius: description: safe range of battery temperature items: - description: alert when battery temperature is lower than this value - description: alert when battery temperature is higher than this value # The volt-drop* -properties describe voltage-drop for a battery, described # as VDROP in: # https://patentimages.storage.googleapis.com/6c/f5/17/c1d901c220f6a9/US20150032394A1.pdf volt-drop-thresh-microvolt: description: Threshold for starting the VDR correction maximum: 48000000 volt-drop-soc-bp: description: Table of capacity values matching the values in VDR tables. The value should be given as basis points, 1/100 of a percent. volt-drop-temperatures-millicelsius: description: An array containing the temperature in milli celsius, for each of the VDR lookup table. required: - compatible patternProperties: '^ocv-capacity-table-[0-9]+$': $ref: /schemas/types.yaml#/definitions/uint32-matrix description: | An array providing the open circuit voltage (OCV) of the battery and corresponding battery capacity percent, which is used to look up battery capacity according to current OCV value. And the open circuit voltage unit is microvolt. maxItems: 100 items: items: - description: open circuit voltage (OCV) in microvolts - description: battery capacity percent maximum: 100 '^volt-drop-[0-9]-microvolt': description: Table of the voltage drop rate (VDR) values. Each entry in the table should match a capacity value in the volt-drop-soc table. Furthermore, the values should be obtained for the temperature given in volt-drop-temperatures-millicelsius table at index matching the number in this table's name. additionalProperties: false examples: - | power { #address-cells = <1>; #size-cells = <0>; battery: battery { compatible = "simple-battery"; over-voltage-threshold-microvolt = <4500000>; re-charge-voltage-microvolt = <250000>; voltage-min-design-microvolt = <3200000>; voltage-max-design-microvolt = <4200000>; energy-full-design-microwatt-hours = <5290000>; charge-full-design-microamp-hours = <1430000>; precharge-current-microamp = <256000>; precharge-upper-limit-microvolt = <2500000>; charge-term-current-microamp = <128000>; constant-charge-current-max-microamp = <900000>; constant-charge-voltage-max-microvolt = <4200000>; factory-internal-resistance-micro-ohms = <250000>; ocv-capacity-celsius = <(-10) 0 10>; /* table for -10 degree Celsius */ ocv-capacity-table-0 = <4185000 100>, <4113000 95>, <4066000 90>; /* table for 0 degree Celsius */ ocv-capacity-table-1 = <4200000 100>, <4185000 95>, <4113000 90>; /* table for 10 degree Celsius */ ocv-capacity-table-2 = <4250000 100>, <4200000 95>, <4185000 90>; resistance-temp-table = <20 100>, <10 90>, <0 80>, <(-10) 60>; operating-range-celsius = <(-30) 50>; ambient-celsius = <(-5) 50>; alert-celsius = <0 40>; }; charger@11 { reg = <0x11>; monitored-battery = <&battery>; }; fuel-gauge@22 { reg = <0x22>; monitored-battery = <&battery>; }; }; |