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