162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: ROHM BD71837 Power Management Integrated Circuit 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Matti Vaittinen <mazziesaccount@gmail.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci BD71837MWV is programmable Power Management ICs for powering single-core, 1462306a36Sopenharmony_ci dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for low 1562306a36Sopenharmony_ci BOM cost and compact solution footprint. BD71837MWV integrates 8 Buck 1662306a36Sopenharmony_ci regulators and 7 LDOs. 1762306a36Sopenharmony_ci Datasheet for BD71837 is available at 1862306a36Sopenharmony_ci https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71837amwv-product 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciproperties: 2162306a36Sopenharmony_ci compatible: 2262306a36Sopenharmony_ci const: rohm,bd71837 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci reg: 2562306a36Sopenharmony_ci description: 2662306a36Sopenharmony_ci I2C slave address. 2762306a36Sopenharmony_ci maxItems: 1 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci interrupts: 3062306a36Sopenharmony_ci maxItems: 1 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci clocks: 3362306a36Sopenharmony_ci maxItems: 1 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci clock-names: 3662306a36Sopenharmony_ci const: osc 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci "#clock-cells": 3962306a36Sopenharmony_ci const: 0 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci clock-output-names: 4262306a36Sopenharmony_ci const: pmic_clk 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci# The BD718x7 supports two different HW states as reset target states. States 4562306a36Sopenharmony_ci# are called as SNVS and READY. At READY state all the PMIC power outputs go 4662306a36Sopenharmony_ci# down and OTP is reload. At the SNVS state all other logic and external 4762306a36Sopenharmony_ci# devices apart from the SNVS power domain are shut off. Please refer to NXP 4862306a36Sopenharmony_ci# i.MX8 documentation for further information regarding SNVS state. When a 4962306a36Sopenharmony_ci# reset is done via SNVS state the PMIC OTP data is not reload. This causes 5062306a36Sopenharmony_ci# power outputs that have been under SW control to stay down when reset has 5162306a36Sopenharmony_ci# switched power state to SNVS. If reset is done via READY state the power 5262306a36Sopenharmony_ci# outputs will be returned to HW control by OTP loading. Thus the reset 5362306a36Sopenharmony_ci# target state is set to READY by default. If SNVS state is used the boot 5462306a36Sopenharmony_ci# crucial regulators must have the regulator-always-on and regulator-boot-on 5562306a36Sopenharmony_ci# properties set in regulator node. 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci rohm,reset-snvs-powered: 5862306a36Sopenharmony_ci description: | 5962306a36Sopenharmony_ci Transfer PMIC to SNVS state at reset 6062306a36Sopenharmony_ci type: boolean 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci# Configure the "short press" and "long press" timers for the power button. 6362306a36Sopenharmony_ci# Values are rounded to what hardware supports 6462306a36Sopenharmony_ci# Short-press: 6562306a36Sopenharmony_ci# Shortest being 10ms, next 500ms and then multiple of 500ms up to 7,5s 6662306a36Sopenharmony_ci# Long-press: 6762306a36Sopenharmony_ci# Shortest being 10ms, next 1000ms and then multiple of 1000ms up to 15s 6862306a36Sopenharmony_ci# If these properties are not present the existing configuration (from 6962306a36Sopenharmony_ci# bootloader or OTP) is not touched. 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci rohm,short-press-ms: 7262306a36Sopenharmony_ci description: 7362306a36Sopenharmony_ci Short press duration in milliseconds 7462306a36Sopenharmony_ci enum: 7562306a36Sopenharmony_ci - 10 7662306a36Sopenharmony_ci - 500 7762306a36Sopenharmony_ci - 1000 7862306a36Sopenharmony_ci - 1500 7962306a36Sopenharmony_ci - 2000 8062306a36Sopenharmony_ci - 2500 8162306a36Sopenharmony_ci - 3000 8262306a36Sopenharmony_ci - 3500 8362306a36Sopenharmony_ci - 4000 8462306a36Sopenharmony_ci - 4500 8562306a36Sopenharmony_ci - 5000 8662306a36Sopenharmony_ci - 5500 8762306a36Sopenharmony_ci - 6000 8862306a36Sopenharmony_ci - 6500 8962306a36Sopenharmony_ci - 7000 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci rohm,long-press-ms: 9262306a36Sopenharmony_ci description: 9362306a36Sopenharmony_ci Long press duration in milliseconds 9462306a36Sopenharmony_ci enum: 9562306a36Sopenharmony_ci - 10 9662306a36Sopenharmony_ci - 1000 9762306a36Sopenharmony_ci - 2000 9862306a36Sopenharmony_ci - 3000 9962306a36Sopenharmony_ci - 4000 10062306a36Sopenharmony_ci - 5000 10162306a36Sopenharmony_ci - 6000 10262306a36Sopenharmony_ci - 7000 10362306a36Sopenharmony_ci - 8000 10462306a36Sopenharmony_ci - 9000 10562306a36Sopenharmony_ci - 10000 10662306a36Sopenharmony_ci - 11000 10762306a36Sopenharmony_ci - 12000 10862306a36Sopenharmony_ci - 13000 10962306a36Sopenharmony_ci - 14000 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci regulators: 11262306a36Sopenharmony_ci $ref: ../regulator/rohm,bd71837-regulator.yaml 11362306a36Sopenharmony_ci description: 11462306a36Sopenharmony_ci List of child nodes that specify the regulators. 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_cirequired: 11762306a36Sopenharmony_ci - compatible 11862306a36Sopenharmony_ci - reg 11962306a36Sopenharmony_ci - interrupts 12062306a36Sopenharmony_ci - clocks 12162306a36Sopenharmony_ci - "#clock-cells" 12262306a36Sopenharmony_ci - regulators 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ciadditionalProperties: false 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ciexamples: 12762306a36Sopenharmony_ci - | 12862306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 12962306a36Sopenharmony_ci #include <dt-bindings/leds/common.h> 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci i2c { 13262306a36Sopenharmony_ci #address-cells = <1>; 13362306a36Sopenharmony_ci #size-cells = <0>; 13462306a36Sopenharmony_ci pmic: pmic@4b { 13562306a36Sopenharmony_ci compatible = "rohm,bd71837"; 13662306a36Sopenharmony_ci reg = <0x4b>; 13762306a36Sopenharmony_ci interrupt-parent = <&gpio1>; 13862306a36Sopenharmony_ci interrupts = <29 IRQ_TYPE_LEVEL_LOW>; 13962306a36Sopenharmony_ci #clock-cells = <0>; 14062306a36Sopenharmony_ci clocks = <&osc 0>; 14162306a36Sopenharmony_ci rohm,reset-snvs-powered; 14262306a36Sopenharmony_ci rohm,short-press-ms = <10>; 14362306a36Sopenharmony_ci rohm,long-press-ms = <2000>; 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci regulators { 14662306a36Sopenharmony_ci buck1: BUCK1 { 14762306a36Sopenharmony_ci regulator-name = "buck1"; 14862306a36Sopenharmony_ci regulator-min-microvolt = <700000>; 14962306a36Sopenharmony_ci regulator-max-microvolt = <1300000>; 15062306a36Sopenharmony_ci regulator-boot-on; 15162306a36Sopenharmony_ci regulator-always-on; 15262306a36Sopenharmony_ci regulator-ramp-delay = <1250>; 15362306a36Sopenharmony_ci rohm,dvs-run-voltage = <900000>; 15462306a36Sopenharmony_ci rohm,dvs-idle-voltage = <850000>; 15562306a36Sopenharmony_ci rohm,dvs-suspend-voltage = <800000>; 15662306a36Sopenharmony_ci }; 15762306a36Sopenharmony_ci buck2: BUCK2 { 15862306a36Sopenharmony_ci regulator-name = "buck2"; 15962306a36Sopenharmony_ci regulator-min-microvolt = <700000>; 16062306a36Sopenharmony_ci regulator-max-microvolt = <1300000>; 16162306a36Sopenharmony_ci regulator-boot-on; 16262306a36Sopenharmony_ci regulator-always-on; 16362306a36Sopenharmony_ci regulator-ramp-delay = <1250>; 16462306a36Sopenharmony_ci rohm,dvs-run-voltage = <1000000>; 16562306a36Sopenharmony_ci rohm,dvs-idle-voltage = <900000>; 16662306a36Sopenharmony_ci }; 16762306a36Sopenharmony_ci buck3: BUCK3 { 16862306a36Sopenharmony_ci regulator-name = "buck3"; 16962306a36Sopenharmony_ci regulator-min-microvolt = <700000>; 17062306a36Sopenharmony_ci regulator-max-microvolt = <1300000>; 17162306a36Sopenharmony_ci regulator-boot-on; 17262306a36Sopenharmony_ci rohm,dvs-run-voltage = <1000000>; 17362306a36Sopenharmony_ci }; 17462306a36Sopenharmony_ci buck4: BUCK4 { 17562306a36Sopenharmony_ci regulator-name = "buck4"; 17662306a36Sopenharmony_ci regulator-min-microvolt = <700000>; 17762306a36Sopenharmony_ci regulator-max-microvolt = <1300000>; 17862306a36Sopenharmony_ci regulator-boot-on; 17962306a36Sopenharmony_ci rohm,dvs-run-voltage = <1000000>; 18062306a36Sopenharmony_ci }; 18162306a36Sopenharmony_ci buck5: BUCK5 { 18262306a36Sopenharmony_ci regulator-name = "buck5"; 18362306a36Sopenharmony_ci regulator-min-microvolt = <700000>; 18462306a36Sopenharmony_ci regulator-max-microvolt = <1350000>; 18562306a36Sopenharmony_ci regulator-boot-on; 18662306a36Sopenharmony_ci }; 18762306a36Sopenharmony_ci buck6: BUCK6 { 18862306a36Sopenharmony_ci regulator-name = "buck6"; 18962306a36Sopenharmony_ci regulator-min-microvolt = <3000000>; 19062306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 19162306a36Sopenharmony_ci regulator-boot-on; 19262306a36Sopenharmony_ci }; 19362306a36Sopenharmony_ci buck7: BUCK7 { 19462306a36Sopenharmony_ci regulator-name = "buck7"; 19562306a36Sopenharmony_ci regulator-min-microvolt = <1605000>; 19662306a36Sopenharmony_ci regulator-max-microvolt = <1995000>; 19762306a36Sopenharmony_ci regulator-boot-on; 19862306a36Sopenharmony_ci }; 19962306a36Sopenharmony_ci buck8: BUCK8 { 20062306a36Sopenharmony_ci regulator-name = "buck8"; 20162306a36Sopenharmony_ci regulator-min-microvolt = <800000>; 20262306a36Sopenharmony_ci regulator-max-microvolt = <1400000>; 20362306a36Sopenharmony_ci }; 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci ldo1: LDO1 { 20662306a36Sopenharmony_ci regulator-name = "ldo1"; 20762306a36Sopenharmony_ci regulator-min-microvolt = <3000000>; 20862306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 20962306a36Sopenharmony_ci regulator-boot-on; 21062306a36Sopenharmony_ci }; 21162306a36Sopenharmony_ci ldo2: LDO2 { 21262306a36Sopenharmony_ci regulator-name = "ldo2"; 21362306a36Sopenharmony_ci regulator-min-microvolt = <900000>; 21462306a36Sopenharmony_ci regulator-max-microvolt = <900000>; 21562306a36Sopenharmony_ci regulator-boot-on; 21662306a36Sopenharmony_ci }; 21762306a36Sopenharmony_ci ldo3: LDO3 { 21862306a36Sopenharmony_ci regulator-name = "ldo3"; 21962306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 22062306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 22162306a36Sopenharmony_ci }; 22262306a36Sopenharmony_ci ldo4: LDO4 { 22362306a36Sopenharmony_ci regulator-name = "ldo4"; 22462306a36Sopenharmony_ci regulator-min-microvolt = <900000>; 22562306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 22662306a36Sopenharmony_ci }; 22762306a36Sopenharmony_ci ldo5: LDO5 { 22862306a36Sopenharmony_ci regulator-name = "ldo5"; 22962306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 23062306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 23162306a36Sopenharmony_ci }; 23262306a36Sopenharmony_ci ldo6: LDO6 { 23362306a36Sopenharmony_ci regulator-name = "ldo6"; 23462306a36Sopenharmony_ci regulator-min-microvolt = <900000>; 23562306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 23662306a36Sopenharmony_ci }; 23762306a36Sopenharmony_ci ldo7_reg: LDO7 { 23862306a36Sopenharmony_ci regulator-name = "ldo7"; 23962306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 24062306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 24162306a36Sopenharmony_ci }; 24262306a36Sopenharmony_ci }; 24362306a36Sopenharmony_ci }; 24462306a36Sopenharmony_ci }; 245