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