1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/power/supply/battery.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Battery Characteristics 8 9maintainers: 10 - Sebastian Reichel <sre@kernel.org> 11 12description: | 13 The devicetree battery node provides static battery characteristics. 14 In smart batteries, these are typically stored in non-volatile memory 15 on a fuel gauge chip. The battery node should be used where there is 16 no appropriate non-volatile memory, or it is unprogrammed/incorrect. 17 18 Upstream dts files should not include battery nodes, unless the battery 19 represented cannot easily be replaced in the system by one of a 20 different type. This prevents unpredictable, potentially harmful, 21 behavior should a replacement that changes the battery type occur 22 without a corresponding update to the dtb. 23 24 Battery properties are named, where possible, for the corresponding elements 25 in enum power_supply_property, defined in include/linux/power_supply.h 26 27 Batteries must be referenced by chargers and/or fuel-gauges using a phandle. 28 The phandle's property should be named "monitored-battery". 29 30properties: 31 compatible: 32 const: simple-battery 33 34 over-voltage-threshold-microvolt: 35 description: battery over-voltage limit 36 37 re-charge-voltage-microvolt: 38 description: limit to automatically start charging again 39 40 voltage-min-design-microvolt: 41 description: drained battery voltage 42 43 voltage-max-design-microvolt: 44 description: fully charged battery voltage 45 46 energy-full-design-microwatt-hours: 47 description: battery design energy 48 49 charge-full-design-microamp-hours: 50 description: battery design capacity 51 52 trickle-charge-current-microamp: 53 description: current for trickle-charge phase 54 55 precharge-current-microamp: 56 description: current for pre-charge phase 57 58 precharge-upper-limit-microvolt: 59 description: limit when to change to constant charging 60 61 charge-term-current-microamp: 62 description: current for charge termination phase 63 64 constant-charge-current-max-microamp: 65 description: maximum constant input current 66 67 constant-charge-voltage-max-microvolt: 68 description: maximum constant input voltage 69 70 factory-internal-resistance-micro-ohms: 71 description: battery factory internal resistance 72 73 resistance-temp-table: 74 description: | 75 An array providing the temperature in degree Celsius 76 and corresponding battery internal resistance percent, which is used to 77 look up the resistance percent according to current temperature to get an 78 accurate batterty internal resistance in different temperatures. 79 80 ocv-capacity-celsius: 81 description: | 82 An array containing the temperature in degree Celsius, 83 for each of the battery capacity lookup table. 84 85 operating-range-celsius: 86 description: operating temperature range of a battery 87 items: 88 - description: minimum temperature at which battery can operate 89 - description: maximum temperature at which battery can operate 90 91 ambient-celsius: 92 description: safe range of ambient temperature 93 items: 94 - description: alert when ambient temperature is lower than this value 95 - description: alert when ambient temperature is higher than this value 96 97 alert-celsius: 98 description: safe range of battery temperature 99 items: 100 - description: alert when battery temperature is lower than this value 101 - description: alert when battery temperature is higher than this value 102 103required: 104 - compatible 105 106patternProperties: 107 '^ocv-capacity-table-[0-9]+$': 108 $ref: /schemas/types.yaml#/definitions/uint32-matrix 109 description: | 110 An array providing the open circuit voltage (OCV) 111 of the battery and corresponding battery capacity percent, which is used 112 to look up battery capacity according to current OCV value. And the open 113 circuit voltage unit is microvolt. 114 maxItems: 100 115 items: 116 items: 117 - description: open circuit voltage (OCV) in microvolts 118 - description: battery capacity percent 119 maximum: 100 120 121additionalProperties: false 122 123examples: 124 - | 125 power { 126 #address-cells = <1>; 127 #size-cells = <0>; 128 129 battery: battery { 130 compatible = "simple-battery"; 131 over-voltage-threshold-microvolt = <4500000>; 132 re-charge-voltage-microvolt = <250000>; 133 voltage-min-design-microvolt = <3200000>; 134 voltage-max-design-microvolt = <4200000>; 135 energy-full-design-microwatt-hours = <5290000>; 136 charge-full-design-microamp-hours = <1430000>; 137 precharge-current-microamp = <256000>; 138 precharge-upper-limit-microvolt = <2500000>; 139 charge-term-current-microamp = <128000>; 140 constant-charge-current-max-microamp = <900000>; 141 constant-charge-voltage-max-microvolt = <4200000>; 142 factory-internal-resistance-micro-ohms = <250000>; 143 ocv-capacity-celsius = <(-10) 0 10>; 144 /* table for -10 degree Celsius */ 145 ocv-capacity-table-0 = <4185000 100>, <4113000 95>, <4066000 90>; 146 /* table for 0 degree Celsius */ 147 ocv-capacity-table-1 = <4200000 100>, <4185000 95>, <4113000 90>; 148 /* table for 10 degree Celsius */ 149 ocv-capacity-table-2 = <4250000 100>, <4200000 95>, <4185000 90>; 150 resistance-temp-table = <20 100>, <10 90>, <0 80>, <(-10) 60>; 151 operating-range-celsius = <(-30) 50>; 152 ambient-celsius = <(-5) 50>; 153 alert-celsius = <0 40>; 154 }; 155 156 charger@11 { 157 reg = <0x11>; 158 monitored-battery = <&battery>; 159 }; 160 161 fuel-gauge@22 { 162 reg = <0x22>; 163 monitored-battery = <&battery>; 164 }; 165 }; 166