# SPDX-License-Identifier: GPL-2.0 %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/hisilicon,hi6421-spmi-pmic.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: HiSilicon 6421v600 SPMI PMIC maintainers: - Mauro Carvalho Chehab description: | HiSilicon 6421v600 should be connected inside a MIPI System Power Management (SPMI) bus. It provides interrupts and power supply. The GPIO and interrupt settings are represented as part of the top-level PMIC node. The SPMI controller part is provided by drivers/staging/hikey9xx/hisilicon,hisi-spmi-controller.yaml. properties: $nodename: pattern: "pmic@[0-9a-f]" compatible: const: hisilicon,hi6421v600-spmi reg: maxItems: 1 '#interrupt-cells': const: 2 interrupt-controller: description: Identify that the PMIC is capable of behaving as an interrupt controller. gpios: maxItems: 1 regulators: type: object properties: '#address-cells': const: 1 '#size-cells': const: 0 patternProperties: '^ldo[0-9]+@[0-9a-f]$': type: object $ref: "/schemas/regulator/regulator.yaml#" properties: reg: description: Enable register. '#address-cells': const: 1 '#size-cells': const: 0 vsel-reg: description: Voltage selector register. enable-mask: description: Bitmask used to enable the regulator. voltage-table: description: Table with the selector items for the voltage regulator. minItems: 2 maxItems: 16 off-on-delay-us: description: Time required for changing state to enabled in microseconds. startup-delay-us: description: Startup time in microseconds. idle-mode-mask: description: Bitmask used to put the regulator on idle mode. eco-microamp: description: Maximum current while on idle mode. required: - reg - vsel-reg - enable-mask - voltage-table - off-on-delay-us - startup-delay-us required: - compatible - reg - regulators examples: - | /* pmic properties */ pmic: pmic@0 { compatible = "hisilicon,hi6421-spmi"; reg = <0 0>; #interrupt-cells = <2>; interrupt-controller; gpios = <&gpio28 0 0>; regulators { #address-cells = <1>; #size-cells = <0>; ldo3: ldo3@16 { reg = <0x16>; vsel-reg = <0x51>; regulator-name = "ldo3"; regulator-min-microvolt = <1500000>; regulator-max-microvolt = <2000000>; regulator-boot-on; enable-mask = <0x01>; voltage-table = <1500000>, <1550000>, <1600000>, <1650000>, <1700000>, <1725000>, <1750000>, <1775000>, <1800000>, <1825000>, <1850000>, <1875000>, <1900000>, <1925000>, <1950000>, <2000000>; off-on-delay-us = <20000>; startup-delay-us = <120>; }; ldo4: ldo4@17 { /* 40 PIN */ reg = <0x17>; vsel-reg = <0x52>; regulator-name = "ldo4"; regulator-min-microvolt = <1725000>; regulator-max-microvolt = <1900000>; regulator-boot-on; enable-mask = <0x01>; idle-mode-mask = <0x10>; eco-microamp = <10000>; hi6421-vsel = <0x52 0x07>; voltage-table = <1725000>, <1750000>, <1775000>, <1800000>, <1825000>, <1850000>, <1875000>, <1900000>; off-on-delay-us = <20000>; startup-delay-us = <120>; }; }; };