1*e816df1dSMatti Vaittinen# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*e816df1dSMatti Vaittinen%YAML 1.2 3*e816df1dSMatti Vaittinen--- 4*e816df1dSMatti Vaittinen$id: http://devicetree.org/schemas/mfd/rohm,bd72720-pmic.yaml# 5*e816df1dSMatti Vaittinen$schema: http://devicetree.org/meta-schemas/core.yaml# 6*e816df1dSMatti Vaittinen 7*e816df1dSMatti Vaittinentitle: ROHM BD72720 Power Management Integrated Circuit 8*e816df1dSMatti Vaittinen 9*e816df1dSMatti Vaittinenmaintainers: 10*e816df1dSMatti Vaittinen - Matti Vaittinen <mazziesaccount@gmail.com> 11*e816df1dSMatti Vaittinen 12*e816df1dSMatti Vaittinendescription: 13*e816df1dSMatti Vaittinen BD72720 is a single-chip power management IC for battery-powered portable 14*e816df1dSMatti Vaittinen devices. The BD72720 integrates 10 bucks and 11 LDOs, and a 3000 mA 15*e816df1dSMatti Vaittinen switching charger. The IC also includes a Coulomb counter, a real-time 16*e816df1dSMatti Vaittinen clock (RTC), GPIOs and a 32.768 kHz clock gate. 17*e816df1dSMatti Vaittinen 18*e816df1dSMatti Vaittinen# In addition to the properties found from the charger node, the ROHM BD72720 19*e816df1dSMatti Vaittinen# uses properties from a static battery node. Please see the: 20*e816df1dSMatti Vaittinen# Documentation/devicetree/bindings/power/supply/battery.yaml 21*e816df1dSMatti Vaittinen# 22*e816df1dSMatti Vaittinen# Following properties are used 23*e816df1dSMatti Vaittinen# when present: 24*e816df1dSMatti Vaittinen# 25*e816df1dSMatti Vaittinen# charge-full-design-microamp-hours: Battry capacity in mAh 26*e816df1dSMatti Vaittinen# voltage-max-design-microvolt: Maximum voltage 27*e816df1dSMatti Vaittinen# voltage-min-design-microvolt: Minimum voltage system is still operating. 28*e816df1dSMatti Vaittinen# degrade-cycle-microamp-hours: Capacity lost due to aging at each full 29*e816df1dSMatti Vaittinen# charge cycle. 30*e816df1dSMatti Vaittinen# ocv-capacity-celsius: Array of OCV table temperatures. 1/table. 31*e816df1dSMatti Vaittinen# ocv-capacity-table-<N>: Table of OCV voltage/SOC pairs. Corresponds 32*e816df1dSMatti Vaittinen# N.th temperature in ocv-capacity-celsius 33*e816df1dSMatti Vaittinen# 34*e816df1dSMatti Vaittinen# volt-drop-thresh-microvolt: Threshold for starting the VDR correction 35*e816df1dSMatti Vaittinen# volt-drop-soc: Table of capacity values matching the 36*e816df1dSMatti Vaittinen# values in VDR tables. 37*e816df1dSMatti Vaittinen# 38*e816df1dSMatti Vaittinen# volt-drop-temperatures-millicelsius: Temperatures corresponding to the volage 39*e816df1dSMatti Vaittinen# drop values given in volt-drop-[0-9]-microvolt 40*e816df1dSMatti Vaittinen# 41*e816df1dSMatti Vaittinen# volt-drop-[0-9]-microvolt: VDR table for a temperature specified in 42*e816df1dSMatti Vaittinen# volt-drop-temperatures-millicelsius 43*e816df1dSMatti Vaittinen# 44*e816df1dSMatti Vaittinen# VDR tables are (usually) determined for a specific battery by ROHM. 45*e816df1dSMatti Vaittinen# The battery node would then be referred from the charger node: 46*e816df1dSMatti Vaittinen# 47*e816df1dSMatti Vaittinen# monitored-battery = <&battery>; 48*e816df1dSMatti Vaittinen 49*e816df1dSMatti Vaittinenproperties: 50*e816df1dSMatti Vaittinen compatible: 51*e816df1dSMatti Vaittinen const: rohm,bd72720 52*e816df1dSMatti Vaittinen 53*e816df1dSMatti Vaittinen reg: 54*e816df1dSMatti Vaittinen description: 55*e816df1dSMatti Vaittinen I2C slave address. 56*e816df1dSMatti Vaittinen maxItems: 1 57*e816df1dSMatti Vaittinen 58*e816df1dSMatti Vaittinen interrupts: 59*e816df1dSMatti Vaittinen maxItems: 1 60*e816df1dSMatti Vaittinen 61*e816df1dSMatti Vaittinen gpio-controller: true 62*e816df1dSMatti Vaittinen 63*e816df1dSMatti Vaittinen "#gpio-cells": 64*e816df1dSMatti Vaittinen const: 2 65*e816df1dSMatti Vaittinen description: 66*e816df1dSMatti Vaittinen The first cell is the pin number and the second cell is used to specify 67*e816df1dSMatti Vaittinen flags. See the gpio binding document for more information. 68*e816df1dSMatti Vaittinen 69*e816df1dSMatti Vaittinen clocks: 70*e816df1dSMatti Vaittinen maxItems: 1 71*e816df1dSMatti Vaittinen 72*e816df1dSMatti Vaittinen "#clock-cells": 73*e816df1dSMatti Vaittinen const: 0 74*e816df1dSMatti Vaittinen 75*e816df1dSMatti Vaittinen clock-output-names: 76*e816df1dSMatti Vaittinen const: bd71828-32k-out 77*e816df1dSMatti Vaittinen 78*e816df1dSMatti Vaittinen rohm,clkout-open-drain: 79*e816df1dSMatti Vaittinen description: clk32kout mode. Set to 1 for "open-drain" or 0 for "cmos". 80*e816df1dSMatti Vaittinen $ref: /schemas/types.yaml#/definitions/uint32 81*e816df1dSMatti Vaittinen maximum: 1 82*e816df1dSMatti Vaittinen 83*e816df1dSMatti Vaittinen rohm,charger-sense-resistor-micro-ohms: 84*e816df1dSMatti Vaittinen minimum: 10000 85*e816df1dSMatti Vaittinen maximum: 50000 86*e816df1dSMatti Vaittinen description: 87*e816df1dSMatti Vaittinen BD72720 has a SAR ADC for measuring charging currents. External sense 88*e816df1dSMatti Vaittinen resistor (RSENSE in data sheet) should be used. If some other but 89*e816df1dSMatti Vaittinen 30 mOhm resistor is used the resistance value should be given here in 90*e816df1dSMatti Vaittinen micro Ohms. 91*e816df1dSMatti Vaittinen 92*e816df1dSMatti Vaittinen regulators: 93*e816df1dSMatti Vaittinen $ref: /schemas/regulator/rohm,bd72720-regulator.yaml 94*e816df1dSMatti Vaittinen description: 95*e816df1dSMatti Vaittinen List of child nodes that specify the regulators. 96*e816df1dSMatti Vaittinen 97*e816df1dSMatti Vaittinen leds: 98*e816df1dSMatti Vaittinen $ref: /schemas/leds/rohm,bd71828-leds.yaml 99*e816df1dSMatti Vaittinen 100*e816df1dSMatti Vaittinen rohm,pin-fault_b: 101*e816df1dSMatti Vaittinen $ref: /schemas/types.yaml#/definitions/string 102*e816df1dSMatti Vaittinen description: 103*e816df1dSMatti Vaittinen BD72720 has an OTP option to use fault_b-pin for different 104*e816df1dSMatti Vaittinen purposes. Set this property accordingly. OTP options are 105*e816df1dSMatti Vaittinen OTP0 - bi-directional FAULT_B or READY indicator depending on a 106*e816df1dSMatti Vaittinen 'sub option' 107*e816df1dSMatti Vaittinen OTP1 - GPO 108*e816df1dSMatti Vaittinen OTP2 - Power sequencer output. 109*e816df1dSMatti Vaittinen enum: 110*e816df1dSMatti Vaittinen - faultb 111*e816df1dSMatti Vaittinen - readyind 112*e816df1dSMatti Vaittinen - gpo 113*e816df1dSMatti Vaittinen - pwrseq 114*e816df1dSMatti Vaittinen 115*e816df1dSMatti VaittinenpatternProperties: 116*e816df1dSMatti Vaittinen "^rohm,pin-dvs[0-1]$": 117*e816df1dSMatti Vaittinen $ref: /schemas/types.yaml#/definitions/string 118*e816df1dSMatti Vaittinen description: 119*e816df1dSMatti Vaittinen BD72720 has 4 different OTP options to determine the use of dvs<X>-pins. 120*e816df1dSMatti Vaittinen OTP0 - regulator RUN state control. 121*e816df1dSMatti Vaittinen OTP1 - GPI. 122*e816df1dSMatti Vaittinen OTP2 - GPO. 123*e816df1dSMatti Vaittinen OTP3 - Power sequencer output. 124*e816df1dSMatti Vaittinen This property specifies the use of the pin. 125*e816df1dSMatti Vaittinen enum: 126*e816df1dSMatti Vaittinen - dvs-input 127*e816df1dSMatti Vaittinen - gpi 128*e816df1dSMatti Vaittinen - gpo 129*e816df1dSMatti Vaittinen - pwrseq 130*e816df1dSMatti Vaittinen 131*e816df1dSMatti Vaittinen "^rohm,pin-exten[0-1]$": 132*e816df1dSMatti Vaittinen $ref: /schemas/types.yaml#/definitions/string 133*e816df1dSMatti Vaittinen description: BD72720 has an OTP option to use exten0-pin for different 134*e816df1dSMatti Vaittinen purposes. Set this property accordingly. 135*e816df1dSMatti Vaittinen OTP0 - GPO 136*e816df1dSMatti Vaittinen OTP1 - Power sequencer output. 137*e816df1dSMatti Vaittinen enum: 138*e816df1dSMatti Vaittinen - gpo 139*e816df1dSMatti Vaittinen - pwrseq 140*e816df1dSMatti Vaittinen 141*e816df1dSMatti Vaittinenrequired: 142*e816df1dSMatti Vaittinen - compatible 143*e816df1dSMatti Vaittinen - reg 144*e816df1dSMatti Vaittinen - interrupts 145*e816df1dSMatti Vaittinen - clocks 146*e816df1dSMatti Vaittinen - "#clock-cells" 147*e816df1dSMatti Vaittinen - regulators 148*e816df1dSMatti Vaittinen - gpio-controller 149*e816df1dSMatti Vaittinen - "#gpio-cells" 150*e816df1dSMatti Vaittinen 151*e816df1dSMatti VaittinenadditionalProperties: false 152*e816df1dSMatti Vaittinen 153*e816df1dSMatti Vaittinenexamples: 154*e816df1dSMatti Vaittinen - | 155*e816df1dSMatti Vaittinen #include <dt-bindings/interrupt-controller/irq.h> 156*e816df1dSMatti Vaittinen #include <dt-bindings/leds/common.h> 157*e816df1dSMatti Vaittinen i2c { 158*e816df1dSMatti Vaittinen #address-cells = <1>; 159*e816df1dSMatti Vaittinen #size-cells = <0>; 160*e816df1dSMatti Vaittinen pmic: pmic@4b { 161*e816df1dSMatti Vaittinen compatible = "rohm,bd72720"; 162*e816df1dSMatti Vaittinen reg = <0x4b>; 163*e816df1dSMatti Vaittinen 164*e816df1dSMatti Vaittinen interrupt-parent = <&gpio1>; 165*e816df1dSMatti Vaittinen interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 166*e816df1dSMatti Vaittinen 167*e816df1dSMatti Vaittinen clocks = <&osc 0>; 168*e816df1dSMatti Vaittinen #clock-cells = <0>; 169*e816df1dSMatti Vaittinen clock-output-names = "bd71828-32k-out"; 170*e816df1dSMatti Vaittinen 171*e816df1dSMatti Vaittinen gpio-controller; 172*e816df1dSMatti Vaittinen #gpio-cells = <2>; 173*e816df1dSMatti Vaittinen 174*e816df1dSMatti Vaittinen rohm,pin-dvs0 = "gpi"; 175*e816df1dSMatti Vaittinen rohm,pin-dvs1 = "gpi"; 176*e816df1dSMatti Vaittinen rohm,pin-exten0 = "gpo"; 177*e816df1dSMatti Vaittinen rohm,pin-exten1 = "gpo"; 178*e816df1dSMatti Vaittinen rohm,pin-fault_b = "faultb"; 179*e816df1dSMatti Vaittinen 180*e816df1dSMatti Vaittinen rohm,charger-sense-resistor-micro-ohms = <10000>; 181*e816df1dSMatti Vaittinen 182*e816df1dSMatti Vaittinen regulators { 183*e816df1dSMatti Vaittinen buck1 { 184*e816df1dSMatti Vaittinen regulator-name = "buck1"; 185*e816df1dSMatti Vaittinen regulator-min-microvolt = <500000>; 186*e816df1dSMatti Vaittinen regulator-max-microvolt = <2000000>; 187*e816df1dSMatti Vaittinen regulator-ramp-delay = <2500>; 188*e816df1dSMatti Vaittinen }; 189*e816df1dSMatti Vaittinen buck2 { 190*e816df1dSMatti Vaittinen regulator-name = "buck2"; 191*e816df1dSMatti Vaittinen regulator-min-microvolt = <500000>; 192*e816df1dSMatti Vaittinen regulator-max-microvolt = <2000000>; 193*e816df1dSMatti Vaittinen regulator-ramp-delay = <2500>; 194*e816df1dSMatti Vaittinen }; 195*e816df1dSMatti Vaittinen buck3 { 196*e816df1dSMatti Vaittinen regulator-name = "buck3"; 197*e816df1dSMatti Vaittinen regulator-min-microvolt = <1200000>; 198*e816df1dSMatti Vaittinen regulator-max-microvolt = <2000000>; 199*e816df1dSMatti Vaittinen }; 200*e816df1dSMatti Vaittinen buck4 { 201*e816df1dSMatti Vaittinen regulator-name = "buck4"; 202*e816df1dSMatti Vaittinen regulator-min-microvolt = <1000000>; 203*e816df1dSMatti Vaittinen regulator-max-microvolt = <1800000>; 204*e816df1dSMatti Vaittinen }; 205*e816df1dSMatti Vaittinen buck5 { 206*e816df1dSMatti Vaittinen regulator-name = "buck5"; 207*e816df1dSMatti Vaittinen regulator-min-microvolt = <2500000>; 208*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 209*e816df1dSMatti Vaittinen }; 210*e816df1dSMatti Vaittinen buck6 { 211*e816df1dSMatti Vaittinen regulator-name = "buck6"; 212*e816df1dSMatti Vaittinen regulator-min-microvolt = <500000>; 213*e816df1dSMatti Vaittinen regulator-max-microvolt = <2000000>; 214*e816df1dSMatti Vaittinen regulator-ramp-delay = <2500>; 215*e816df1dSMatti Vaittinen }; 216*e816df1dSMatti Vaittinen buck7 { 217*e816df1dSMatti Vaittinen regulator-name = "buck7"; 218*e816df1dSMatti Vaittinen regulator-min-microvolt = <500000>; 219*e816df1dSMatti Vaittinen regulator-max-microvolt = <2000000>; 220*e816df1dSMatti Vaittinen regulator-ramp-delay = <2500>; 221*e816df1dSMatti Vaittinen }; 222*e816df1dSMatti Vaittinen buck8 { 223*e816df1dSMatti Vaittinen regulator-name = "buck8"; 224*e816df1dSMatti Vaittinen regulator-min-microvolt = <500000>; 225*e816df1dSMatti Vaittinen regulator-max-microvolt = <1700000>; 226*e816df1dSMatti Vaittinen regulator-ramp-delay = <2500>; 227*e816df1dSMatti Vaittinen rohm,dvs-run-voltage = <1700000>; 228*e816df1dSMatti Vaittinen rohm,dvs-idle-voltage = <1>; 229*e816df1dSMatti Vaittinen rohm,dvs-suspend-voltage = <1>; 230*e816df1dSMatti Vaittinen rohm,dvs-lpsr-voltage = <0>; 231*e816df1dSMatti Vaittinen regulator-boot-on; 232*e816df1dSMatti Vaittinen }; 233*e816df1dSMatti Vaittinen buck9 { 234*e816df1dSMatti Vaittinen regulator-name = "buck9"; 235*e816df1dSMatti Vaittinen regulator-min-microvolt = <500000>; 236*e816df1dSMatti Vaittinen regulator-max-microvolt = <1700000>; 237*e816df1dSMatti Vaittinen regulator-ramp-delay = <2500>; 238*e816df1dSMatti Vaittinen rohm,dvs-run-voltage = <1700000>; 239*e816df1dSMatti Vaittinen rohm,dvs-idle-voltage = <1>; 240*e816df1dSMatti Vaittinen rohm,dvs-suspend-voltage = <1>; 241*e816df1dSMatti Vaittinen rohm,dvs-lpsr-voltage = <0>; 242*e816df1dSMatti Vaittinen regulator-boot-on; 243*e816df1dSMatti Vaittinen }; 244*e816df1dSMatti Vaittinen buck10 { 245*e816df1dSMatti Vaittinen regulator-name = "buck10"; 246*e816df1dSMatti Vaittinen regulator-min-microvolt = <500000>; 247*e816df1dSMatti Vaittinen regulator-max-microvolt = <1700000>; 248*e816df1dSMatti Vaittinen regulator-ramp-delay = <2500>; 249*e816df1dSMatti Vaittinen rohm,dvs-run-voltage = <1700000>; 250*e816df1dSMatti Vaittinen rohm,dvs-idle-voltage = <1>; 251*e816df1dSMatti Vaittinen rohm,dvs-suspend-voltage = <1>; 252*e816df1dSMatti Vaittinen rohm,dvs-lpsr-voltage = <0>; 253*e816df1dSMatti Vaittinen regulator-boot-on; 254*e816df1dSMatti Vaittinen }; 255*e816df1dSMatti Vaittinen ldo1 { 256*e816df1dSMatti Vaittinen regulator-name = "ldo1"; 257*e816df1dSMatti Vaittinen regulator-min-microvolt = <800000>; 258*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 259*e816df1dSMatti Vaittinen }; 260*e816df1dSMatti Vaittinen ldo2 { 261*e816df1dSMatti Vaittinen regulator-name = "ldo2"; 262*e816df1dSMatti Vaittinen regulator-min-microvolt = <800000>; 263*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 264*e816df1dSMatti Vaittinen }; 265*e816df1dSMatti Vaittinen ldo3 { 266*e816df1dSMatti Vaittinen regulator-name = "ldo3"; 267*e816df1dSMatti Vaittinen regulator-min-microvolt = <800000>; 268*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 269*e816df1dSMatti Vaittinen }; 270*e816df1dSMatti Vaittinen ldo4 { 271*e816df1dSMatti Vaittinen regulator-name = "ldo4"; 272*e816df1dSMatti Vaittinen regulator-min-microvolt = <800000>; 273*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 274*e816df1dSMatti Vaittinen }; 275*e816df1dSMatti Vaittinen ldo5 { 276*e816df1dSMatti Vaittinen regulator-name = "ldo5"; 277*e816df1dSMatti Vaittinen regulator-min-microvolt = <800000>; 278*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 279*e816df1dSMatti Vaittinen }; 280*e816df1dSMatti Vaittinen ldo6 { 281*e816df1dSMatti Vaittinen regulator-name = "ldo6"; 282*e816df1dSMatti Vaittinen regulator-min-microvolt = <1800000>; 283*e816df1dSMatti Vaittinen regulator-max-microvolt = <1800000>; 284*e816df1dSMatti Vaittinen }; 285*e816df1dSMatti Vaittinen ldo7 { 286*e816df1dSMatti Vaittinen regulator-name = "ldo7"; 287*e816df1dSMatti Vaittinen regulator-min-microvolt = <800000>; 288*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 289*e816df1dSMatti Vaittinen }; 290*e816df1dSMatti Vaittinen ldo8 { 291*e816df1dSMatti Vaittinen regulator-name = "ldo8"; 292*e816df1dSMatti Vaittinen regulator-min-microvolt = <750000>; 293*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 294*e816df1dSMatti Vaittinen rohm,dvs-suspend-voltage = <0>; 295*e816df1dSMatti Vaittinen rohm,dvs-lpsr-voltage = <1>; 296*e816df1dSMatti Vaittinen rohm,dvs-run-voltage = <750000>; 297*e816df1dSMatti Vaittinen }; 298*e816df1dSMatti Vaittinen ldo9 { 299*e816df1dSMatti Vaittinen regulator-name = "ldo9"; 300*e816df1dSMatti Vaittinen regulator-min-microvolt = <750000>; 301*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 302*e816df1dSMatti Vaittinen rohm,dvs-suspend-voltage = <0>; 303*e816df1dSMatti Vaittinen rohm,dvs-lpsr-voltage = <1>; 304*e816df1dSMatti Vaittinen rohm,dvs-run-voltage = <750000>; 305*e816df1dSMatti Vaittinen }; 306*e816df1dSMatti Vaittinen ldo10 { 307*e816df1dSMatti Vaittinen regulator-name = "ldo10"; 308*e816df1dSMatti Vaittinen regulator-min-microvolt = <750000>; 309*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 310*e816df1dSMatti Vaittinen rohm,dvs-suspend-voltage = <0>; 311*e816df1dSMatti Vaittinen rohm,dvs-lpsr-voltage = <1>; 312*e816df1dSMatti Vaittinen rohm,dvs-run-voltage = <750000>; 313*e816df1dSMatti Vaittinen }; 314*e816df1dSMatti Vaittinen ldo11 { 315*e816df1dSMatti Vaittinen regulator-name = "ldo11"; 316*e816df1dSMatti Vaittinen regulator-min-microvolt = <750000>; 317*e816df1dSMatti Vaittinen regulator-max-microvolt = <3300000>; 318*e816df1dSMatti Vaittinen rohm,dvs-suspend-voltage = <0>; 319*e816df1dSMatti Vaittinen rohm,dvs-lpsr-voltage = <1>; 320*e816df1dSMatti Vaittinen rohm,dvs-run-voltage = <750000>; 321*e816df1dSMatti Vaittinen }; 322*e816df1dSMatti Vaittinen }; 323*e816df1dSMatti Vaittinen 324*e816df1dSMatti Vaittinen leds { 325*e816df1dSMatti Vaittinen compatible = "rohm,bd71828-leds"; 326*e816df1dSMatti Vaittinen 327*e816df1dSMatti Vaittinen led-1 { 328*e816df1dSMatti Vaittinen rohm,led-compatible = "bd71828-grnled"; 329*e816df1dSMatti Vaittinen function = LED_FUNCTION_INDICATOR; 330*e816df1dSMatti Vaittinen color = <LED_COLOR_ID_GREEN>; 331*e816df1dSMatti Vaittinen }; 332*e816df1dSMatti Vaittinen led-2 { 333*e816df1dSMatti Vaittinen rohm,led-compatible = "bd71828-ambled"; 334*e816df1dSMatti Vaittinen function = LED_FUNCTION_CHARGING; 335*e816df1dSMatti Vaittinen color = <LED_COLOR_ID_AMBER>; 336*e816df1dSMatti Vaittinen }; 337*e816df1dSMatti Vaittinen }; 338*e816df1dSMatti Vaittinen }; 339*e816df1dSMatti Vaittinen }; 340