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 #include <dt-bindings/leds/common.h> 134 135 i2c { 136 #address-cells = <1>; 137 #size-cells = <0>; 138 pmic: pmic@4b { 139 compatible = "rohm,bd71847"; 140 reg = <0x4b>; 141 interrupt-parent = <&gpio1>; 142 interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 143 #clock-cells = <0>; 144 clocks = <&osc 0>; 145 rohm,reset-snvs-powered; 146 rohm,short-press-ms = <10>; 147 rohm,long-press-ms = <2000>; 148 149 regulators { 150 buck1: BUCK1 { 151 regulator-name = "buck1"; 152 regulator-min-microvolt = <700000>; 153 regulator-max-microvolt = <1300000>; 154 regulator-boot-on; 155 regulator-always-on; 156 regulator-ramp-delay = <1250>; 157 rohm,dvs-run-voltage = <900000>; 158 rohm,dvs-idle-voltage = <850000>; 159 rohm,dvs-suspend-voltage = <800000>; 160 }; 161 buck2: BUCK2 { 162 regulator-name = "buck2"; 163 regulator-min-microvolt = <700000>; 164 regulator-max-microvolt = <1300000>; 165 regulator-boot-on; 166 regulator-always-on; 167 regulator-ramp-delay = <1250>; 168 rohm,dvs-run-voltage = <1000000>; 169 rohm,dvs-idle-voltage = <900000>; 170 }; 171 buck3: BUCK3 { 172 regulator-name = "buck3"; 173 regulator-min-microvolt = <550000>; 174 regulator-max-microvolt = <1350000>; 175 regulator-boot-on; 176 }; 177 buck4: BUCK4 { 178 regulator-name = "buck4"; 179 regulator-min-microvolt = <2600000>; 180 regulator-max-microvolt = <3300000>; 181 regulator-boot-on; 182 }; 183 buck5: BUCK5 { 184 regulator-name = "buck5"; 185 regulator-min-microvolt = <1605000>; 186 regulator-max-microvolt = <1995000>; 187 regulator-boot-on; 188 }; 189 buck8: BUCK6 { 190 regulator-name = "buck6"; 191 regulator-min-microvolt = <800000>; 192 regulator-max-microvolt = <1400000>; 193 }; 194 195 ldo1: LDO1 { 196 regulator-name = "ldo1"; 197 regulator-min-microvolt = <1600000>; 198 regulator-max-microvolt = <3300000>; 199 regulator-boot-on; 200 }; 201 ldo2: LDO2 { 202 regulator-name = "ldo2"; 203 regulator-min-microvolt = <800000>; 204 regulator-max-microvolt = <900000>; 205 regulator-boot-on; 206 }; 207 ldo3: LDO3 { 208 regulator-name = "ldo3"; 209 regulator-min-microvolt = <1800000>; 210 regulator-max-microvolt = <3300000>; 211 }; 212 ldo4: LDO4 { 213 regulator-name = "ldo4"; 214 regulator-min-microvolt = <900000>; 215 regulator-max-microvolt = <1800000>; 216 }; 217 ldo5: LDO5 { 218 regulator-name = "ldo5"; 219 regulator-min-microvolt = <800000>; 220 regulator-max-microvolt = <3300000>; 221 }; 222 ldo6: LDO6 { 223 regulator-name = "ldo6"; 224 regulator-min-microvolt = <900000>; 225 regulator-max-microvolt = <1800000>; 226 }; 227 }; 228 }; 229 }; 230