1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: ROHM BD71837 Power Management Integrated Circuit bindings 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundescription: | 13*4882a593Smuzhiyun BD71837MWV is programmable Power Management ICs for powering single-core, 14*4882a593Smuzhiyun dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for low 15*4882a593Smuzhiyun BOM cost and compact solution footprint. BD71837MWV integrates 8 Buck 16*4882a593Smuzhiyun regulators and 7 LDOs. 17*4882a593Smuzhiyun Datasheet for BD71837 is available at 18*4882a593Smuzhiyun https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71837amwv-product 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunproperties: 21*4882a593Smuzhiyun compatible: 22*4882a593Smuzhiyun const: rohm,bd71837 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun reg: 25*4882a593Smuzhiyun description: 26*4882a593Smuzhiyun I2C slave address. 27*4882a593Smuzhiyun maxItems: 1 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun interrupts: 30*4882a593Smuzhiyun maxItems: 1 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun clocks: 33*4882a593Smuzhiyun maxItems: 1 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun "#clock-cells": 36*4882a593Smuzhiyun const: 0 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun# The BD718x7 supports two different HW states as reset target states. States 39*4882a593Smuzhiyun# are called as SNVS and READY. At READY state all the PMIC power outputs go 40*4882a593Smuzhiyun# down and OTP is reload. At the SNVS state all other logic and external 41*4882a593Smuzhiyun# devices apart from the SNVS power domain are shut off. Please refer to NXP 42*4882a593Smuzhiyun# i.MX8 documentation for further information regarding SNVS state. When a 43*4882a593Smuzhiyun# reset is done via SNVS state the PMIC OTP data is not reload. This causes 44*4882a593Smuzhiyun# power outputs that have been under SW control to stay down when reset has 45*4882a593Smuzhiyun# switched power state to SNVS. If reset is done via READY state the power 46*4882a593Smuzhiyun# outputs will be returned to HW control by OTP loading. Thus the reset 47*4882a593Smuzhiyun# target state is set to READY by default. If SNVS state is used the boot 48*4882a593Smuzhiyun# crucial regulators must have the regulator-always-on and regulator-boot-on 49*4882a593Smuzhiyun# properties set in regulator node. 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun rohm,reset-snvs-powered: 52*4882a593Smuzhiyun description: | 53*4882a593Smuzhiyun Transfer PMIC to SNVS state at reset 54*4882a593Smuzhiyun type: boolean 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun# Configure the "short press" and "long press" timers for the power button. 57*4882a593Smuzhiyun# Values are rounded to what hardware supports 58*4882a593Smuzhiyun# Short-press: 59*4882a593Smuzhiyun# Shortest being 10ms, next 500ms and then multiple of 500ms up to 7,5s 60*4882a593Smuzhiyun# Long-press: 61*4882a593Smuzhiyun# Shortest being 10ms, next 1000ms and then multiple of 1000ms up to 15s 62*4882a593Smuzhiyun# If these properties are not present the existing configuration (from 63*4882a593Smuzhiyun# bootloader or OTP) is not touched. 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun rohm,short-press-ms: 66*4882a593Smuzhiyun description: 67*4882a593Smuzhiyun Short press duration in milliseconds 68*4882a593Smuzhiyun enum: 69*4882a593Smuzhiyun - 10 70*4882a593Smuzhiyun - 500 71*4882a593Smuzhiyun - 1000 72*4882a593Smuzhiyun - 1500 73*4882a593Smuzhiyun - 2000 74*4882a593Smuzhiyun - 2500 75*4882a593Smuzhiyun - 3000 76*4882a593Smuzhiyun - 3500 77*4882a593Smuzhiyun - 4000 78*4882a593Smuzhiyun - 4500 79*4882a593Smuzhiyun - 5000 80*4882a593Smuzhiyun - 5500 81*4882a593Smuzhiyun - 6000 82*4882a593Smuzhiyun - 6500 83*4882a593Smuzhiyun - 7000 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun rohm,long-press-ms: 86*4882a593Smuzhiyun description: 87*4882a593Smuzhiyun Long press duration in milliseconds 88*4882a593Smuzhiyun enum: 89*4882a593Smuzhiyun - 10 90*4882a593Smuzhiyun - 1000 91*4882a593Smuzhiyun - 2000 92*4882a593Smuzhiyun - 3000 93*4882a593Smuzhiyun - 4000 94*4882a593Smuzhiyun - 5000 95*4882a593Smuzhiyun - 6000 96*4882a593Smuzhiyun - 7000 97*4882a593Smuzhiyun - 8000 98*4882a593Smuzhiyun - 9000 99*4882a593Smuzhiyun - 10000 100*4882a593Smuzhiyun - 11000 101*4882a593Smuzhiyun - 12000 102*4882a593Smuzhiyun - 13000 103*4882a593Smuzhiyun - 14000 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun regulators: 106*4882a593Smuzhiyun $ref: ../regulator/rohm,bd71837-regulator.yaml 107*4882a593Smuzhiyun description: 108*4882a593Smuzhiyun List of child nodes that specify the regulators. 109*4882a593Smuzhiyun 110*4882a593Smuzhiyunrequired: 111*4882a593Smuzhiyun - compatible 112*4882a593Smuzhiyun - reg 113*4882a593Smuzhiyun - interrupts 114*4882a593Smuzhiyun - clocks 115*4882a593Smuzhiyun - "#clock-cells" 116*4882a593Smuzhiyun - regulators 117*4882a593Smuzhiyun 118*4882a593SmuzhiyunadditionalProperties: false 119*4882a593Smuzhiyun 120*4882a593Smuzhiyunexamples: 121*4882a593Smuzhiyun - | 122*4882a593Smuzhiyun #include <dt-bindings/interrupt-controller/irq.h> 123*4882a593Smuzhiyun #include <dt-bindings/leds/common.h> 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun i2c { 126*4882a593Smuzhiyun #address-cells = <1>; 127*4882a593Smuzhiyun #size-cells = <0>; 128*4882a593Smuzhiyun pmic: pmic@4b { 129*4882a593Smuzhiyun compatible = "rohm,bd71837"; 130*4882a593Smuzhiyun reg = <0x4b>; 131*4882a593Smuzhiyun interrupt-parent = <&gpio1>; 132*4882a593Smuzhiyun interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 133*4882a593Smuzhiyun #clock-cells = <0>; 134*4882a593Smuzhiyun clocks = <&osc 0>; 135*4882a593Smuzhiyun rohm,reset-snvs-powered; 136*4882a593Smuzhiyun rohm,short-press-ms = <10>; 137*4882a593Smuzhiyun rohm,long-press-ms = <2000>; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun regulators { 140*4882a593Smuzhiyun buck1: BUCK1 { 141*4882a593Smuzhiyun regulator-name = "buck1"; 142*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 143*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 144*4882a593Smuzhiyun regulator-boot-on; 145*4882a593Smuzhiyun regulator-always-on; 146*4882a593Smuzhiyun regulator-ramp-delay = <1250>; 147*4882a593Smuzhiyun rohm,dvs-run-voltage = <900000>; 148*4882a593Smuzhiyun rohm,dvs-idle-voltage = <850000>; 149*4882a593Smuzhiyun rohm,dvs-suspend-voltage = <800000>; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun buck2: BUCK2 { 152*4882a593Smuzhiyun regulator-name = "buck2"; 153*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 154*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 155*4882a593Smuzhiyun regulator-boot-on; 156*4882a593Smuzhiyun regulator-always-on; 157*4882a593Smuzhiyun regulator-ramp-delay = <1250>; 158*4882a593Smuzhiyun rohm,dvs-run-voltage = <1000000>; 159*4882a593Smuzhiyun rohm,dvs-idle-voltage = <900000>; 160*4882a593Smuzhiyun }; 161*4882a593Smuzhiyun buck3: BUCK3 { 162*4882a593Smuzhiyun regulator-name = "buck3"; 163*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 164*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 165*4882a593Smuzhiyun regulator-boot-on; 166*4882a593Smuzhiyun rohm,dvs-run-voltage = <1000000>; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun buck4: BUCK4 { 169*4882a593Smuzhiyun regulator-name = "buck4"; 170*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 171*4882a593Smuzhiyun regulator-max-microvolt = <1300000>; 172*4882a593Smuzhiyun regulator-boot-on; 173*4882a593Smuzhiyun rohm,dvs-run-voltage = <1000000>; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun buck5: BUCK5 { 176*4882a593Smuzhiyun regulator-name = "buck5"; 177*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 178*4882a593Smuzhiyun regulator-max-microvolt = <1350000>; 179*4882a593Smuzhiyun regulator-boot-on; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun buck6: BUCK6 { 182*4882a593Smuzhiyun regulator-name = "buck6"; 183*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 184*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 185*4882a593Smuzhiyun regulator-boot-on; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun buck7: BUCK7 { 188*4882a593Smuzhiyun regulator-name = "buck7"; 189*4882a593Smuzhiyun regulator-min-microvolt = <1605000>; 190*4882a593Smuzhiyun regulator-max-microvolt = <1995000>; 191*4882a593Smuzhiyun regulator-boot-on; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun buck8: BUCK8 { 194*4882a593Smuzhiyun regulator-name = "buck8"; 195*4882a593Smuzhiyun regulator-min-microvolt = <800000>; 196*4882a593Smuzhiyun regulator-max-microvolt = <1400000>; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun ldo1: LDO1 { 200*4882a593Smuzhiyun regulator-name = "ldo1"; 201*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 202*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 203*4882a593Smuzhiyun regulator-boot-on; 204*4882a593Smuzhiyun }; 205*4882a593Smuzhiyun ldo2: LDO2 { 206*4882a593Smuzhiyun regulator-name = "ldo2"; 207*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 208*4882a593Smuzhiyun regulator-max-microvolt = <900000>; 209*4882a593Smuzhiyun regulator-boot-on; 210*4882a593Smuzhiyun }; 211*4882a593Smuzhiyun ldo3: LDO3 { 212*4882a593Smuzhiyun regulator-name = "ldo3"; 213*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 214*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 215*4882a593Smuzhiyun }; 216*4882a593Smuzhiyun ldo4: LDO4 { 217*4882a593Smuzhiyun regulator-name = "ldo4"; 218*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 219*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 220*4882a593Smuzhiyun }; 221*4882a593Smuzhiyun ldo5: LDO5 { 222*4882a593Smuzhiyun regulator-name = "ldo5"; 223*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 224*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 225*4882a593Smuzhiyun }; 226*4882a593Smuzhiyun ldo6: LDO6 { 227*4882a593Smuzhiyun regulator-name = "ldo6"; 228*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 229*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 230*4882a593Smuzhiyun }; 231*4882a593Smuzhiyun ldo7_reg: LDO7 { 232*4882a593Smuzhiyun regulator-name = "ldo7"; 233*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 234*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 235*4882a593Smuzhiyun }; 236*4882a593Smuzhiyun }; 237*4882a593Smuzhiyun }; 238*4882a593Smuzhiyun }; 239