# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/rohm,bd73800-pmic.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: ROHM BD73800 Power Management Integrated Circuit maintainers: - Matti Vaittinen description: BD73800GW is a single-chip power management IC for battery-powered portable devices. It integrates 8 buck converters, 4 LDOs and a current sense amplifier with ADC. Also included is a Real Time Clock (RTC) and a 32.768 kHz clock gate. Depending on the OTP configuration the BD73800 may also have interrupt controller and GPIOs. There are also different variants called BD71851 and BD71885 which are almost identical from the software point of view. allOf: - $ref: rohm,pmic-pins.yaml# properties: compatible: oneOf: - const: rohm,bd73800 - items: - enum: - rohm,bd71851 - rohm,bd71885 - const: rohm,bd73800 reg: maxItems: 1 interrupts: maxItems: 1 # The GPIO1, CLKOUT (GPIO2), FAULT_B and EXTEN_OUT pins can be # configured to interrupt pins by OTP. interrupt-controller: true "#interrupt-cells": const: 1 description: The IRQ number. 0 is GPIO1, 1 CLKOUT (GPIO2), 2 FAULT_B and 3 EXTEN_OUT. NOTE, A pin can operate as IRQ source only when the OTP configuration for it has been set to GPI. gpio-controller: true "#gpio-cells": const: 2 rohm,pin-gpio1: $ref: /schemas/types.yaml#/definitions/string description: Indicate if the GPIO1 pin has been set to GPI or GPO at manufacturing. The GPIO1, CLKOUT, FAULT_B and EXTEN_OUT pins may be configured for a specific purpose (like ADC input, 32.768 clk output, fault indicator or delivering power sequence to a companion PMIC when multiple PMICs are used) - but also to be either a GPO or GPI. (When used as a GPI the pin can also be used as an IRQ source). The pin purpose is determined by OTP (One Time Programmable memory), typically during device manufacturing. The OTP can't be read at runtime so device-tree should describe the GPIO pins. enum: [gpi, gpo] rohm,pin-clkout: enum: [gpi, gpo] rohm,pin-fault_b: enum: [gpi, gpo] rohm,pin-exten: enum: [gpi, gpo] clocks: description: The CLKOUT pin may have its purpose overridden by OTP configuration. It is possible the BD73800 does not output a clock signal. Hence the clk properties are optional. maxItems: 1 "#clock-cells": const: 0 clock-output-names: maxItems: 1 rohm,clkout-open-drain: true regulators: $ref: /schemas/regulator/rohm,bd73800-regulator.yaml description: List of child nodes that specify the regulators. required: - compatible - reg - interrupts - regulators additionalProperties: false examples: - | #include #include i2c { #address-cells = <1>; #size-cells = <0>; pmic: pmic@4b { compatible = "rohm,bd73800"; reg = <0x4b>; interrupt-parent = <&gpio1>; interrupts = <29 IRQ_TYPE_LEVEL_LOW>; clocks = <&osc 0>; #clock-cells = <0>; clock-output-names = "bd73800-32k-out"; gpio-controller; #gpio-cells = <2>; rohm,pin-gpio1 = "gpo"; rohm,pin-exten = "gpi"; regulators { buck1: buck1 { regulator-name = "buck1"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <2000000>; regulator-always-on; regulator-ramp-delay = <1250>; rohm,dvs-run-voltage = <1150000>; rohm,dvs-suspend-voltage = <950000>; }; buck2: buck2 { regulator-name = "buck2"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <2000000>; regulator-always-on; regulator-ramp-delay = <1250>; rohm,dvs-run-voltage = <1150000>; rohm,dvs-suspend-voltage = <950000>; }; buck3: buck3 { regulator-name = "buck3"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <2700000>; rohm,dvs-run-voltage = <1150000>; rohm,dvs-idle-voltage = <1100000>; rohm,dvs-suspend-voltage = <950000>; regulator-always-on; }; buck4: buck4 { regulator-name = "buck4"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1850000>; regulator-always-on; }; buck5: buck5 { regulator-name = "buck5"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; buck6: buck6 { regulator-name = "buck6"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; buck7: buck7 { regulator-name = "buck7"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; buck8: buck8 { regulator-name = "buck8"; regulator-min-microvolt = <500000>; regulator-max-microvolt = <1300000>; regulator-always-on; }; ldo1: ldo1 { regulator-name = "ldo1"; rohm,ldo-range-high; regulator-min-microvolt = <800000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; ldo2: ldo2 { regulator-name = "ldo2"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; ldo3: ldo3 { regulator-name = "ldo3"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; ldo4: ldo4 { regulator-name = "ldo4"; regulator-min-microvolt = <650000>; regulator-max-microvolt = <1750000>; regulator-always-on; }; }; }; };