From: Matti Vaittinen <matti.vaittinen@linux.dev>
To: Matti Vaittinen <mazziesaccount@gmail.com>,
Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>,
Matti Vaittinen <matti.vaittinen@linux.dev>
Cc: Lee Jones <lee@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>,
Matti Vaittinen <mazziesaccount@gmail.com>,
Stephen Boyd <sboyd@kernel.org>,
Brian Masney <bmasney+clk@redhat.com>,
Jerome Brunet <jbrunet+clk@baylibre.com>,
Linus Walleij <linusw@kernel.org>,
Bartosz Golaszewski <brgl@kernel.org>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Michael Walle <mwalle@kernel.org>,
mfd@lists.linux.dev, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-rtc@vger.kernel.org
Subject: [PATCH v3 04/10] dt-bindings: mfd: ROHM BD73800 PMIC
Date: Wed, 2 Sep 2026 14:04:30 +0300 [thread overview]
Message-ID: <bcb75af1ca9c030df83846528e896640f53eaa5b.1788346553.git.mazziesaccount@gmail.com> (raw)
In-Reply-To: <cover.1788346553.git.mazziesaccount@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 9174 bytes --]
From: Matti Vaittinen <mazziesaccount@gmail.com>
The ROHM BD73800 is a power management IC which integrates 8 BUCKs and 4
LDOs. There is also an ADC and operation amplifier intended for current
/ temperature measurement and accumulation. RTC and 32.768 kHz clock
gate are also included. The PMIC can be customized via OTP and it has
options for operating as a main PMIC in multi-PMIC installation. Some
of the pins can also be used for GPO or GPI (including interrupt support).
There are also ROHM BD71851 and BD71885 PMICs out there. These are, from
the SW-perspective, similar to the BD73800. There is only some different
default values and OTP settings. The driver should be able to handle them
just fine.
Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
---
Revision history:
v3:
- No changes
v1 => v2:
- Reference commonly used ROHM bindings from a common binding file
- Simplify compatible list
- Move relevant comments to description so they can be shown in
generated human-readable doc.
- Allow other clock-output-names besides "bd73800-32k-out"
---
.../bindings/mfd/rohm,bd73800-pmic.yaml | 218 ++++++++++++++++++
1 file changed, 218 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd73800-pmic.yaml
diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd73800-pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd73800-pmic.yaml
new file mode 100644
index 000000000000..8371e7f2ab84
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/rohm,bd73800-pmic.yaml
@@ -0,0 +1,218 @@
+# 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 <mazziesaccount@gmail.com>
+
+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 <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/leds/common.h>
+ 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;
+ };
+ };
+ };
+ };
--
2.55.0
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2026-09-02 11:04 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-02 11:03 [PATCH v3 00/10] Support ROHM BD73800 Matti Vaittinen
2026-09-02 11:03 ` [PATCH v3 01/10] dt-bindings: mfd: common ROHM PMIC properties Matti Vaittinen
2026-09-02 11:04 ` [PATCH v3 02/10] dt-bindings: rohm,bd*: Ref common ROHM bindings Matti Vaittinen
2026-09-02 11:04 ` [PATCH v3 03/10] dt-bindings: regulator: ROHM BD73800 regulators Matti Vaittinen
2026-09-04 14:34 ` Rob Herring (Arm)
2026-09-02 11:04 ` Matti Vaittinen [this message]
2026-09-04 14:34 ` [PATCH v3 04/10] dt-bindings: mfd: ROHM BD73800 PMIC Rob Herring
2026-09-02 11:04 ` [PATCH v3 05/10] mfd: Support for ROHM BD73800 PMIC core Matti Vaittinen
2026-09-02 13:24 ` Bartosz Golaszewski
2026-09-02 11:05 ` [PATCH v3 06/10] rtc: bd70528: Support RTC on ROHM BD73800 Matti Vaittinen
2026-09-02 11:05 ` [PATCH v3 07/10] regulator: bd71828: Support " Matti Vaittinen
2026-09-02 11:05 ` [PATCH v3 08/10] clk: bd718x7: " Matti Vaittinen
2026-09-04 8:24 ` Jerome Brunet
2026-09-08 12:01 ` Sverdlin, Alexander
2026-09-02 11:07 ` [PATCH v3 09/10] gpio: bd73800: Support ROHM BD73800 PMIC GPIOs Matti Vaittinen
2026-09-02 12:39 ` Linus Walleij
2026-09-03 5:02 ` Matti Vaittinen
2026-09-02 12:58 ` Bartosz Golaszewski
2026-09-03 5:00 ` Matti Vaittinen
2026-09-03 7:53 ` Bartosz Golaszewski
2026-09-02 11:07 ` [PATCH v3 10/10] MAINTAINERS: Add ROHM BD73800 PMIC files Matti Vaittinen
2026-09-08 11:44 ` Sverdlin, Alexander
2026-09-10 16:03 ` [PATCH v3 00/10] Support ROHM BD73800 Lee Jones
2026-09-11 4:27 ` Matti Vaittinen
2026-09-15 11:20 ` Lee Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bcb75af1ca9c030df83846528e896640f53eaa5b.1788346553.git.mazziesaccount@gmail.com \
--to=matti.vaittinen@linux.dev \
--cc=alexandre.belloni@bootlin.com \
--cc=bmasney+clk@redhat.com \
--cc=brgl@kernel.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jbrunet+clk@baylibre.com \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linusw@kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=matti.vaittinen@fi.rohmeurope.com \
--cc=mazziesaccount@gmail.com \
--cc=mfd@lists.linux.dev \
--cc=mwalle@kernel.org \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®