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