Re: [PATCH v2 00/14] Support ROHM Scalable PMIC family
From: Lee Jones
Date: Fri Apr 04 2025 - 11:44:25 EST
On Mon, 24 Mar 2025, Matti Vaittinen wrote:
> Support ROHM BD96802, BD96805 and BD96806 PMICs
>
> The ROHM BD96801 [1] and BD96805 [2] are almost identical PMICs what comes
> to the digital interface. Main difference is voltage tuning range.
> Supporting BD96805 with BD96801 drivers is mostly just a matter of being
> able to differentiate the PMICs (done based on the devicetree
> compatible) and then providing separate voltage tables.
>
> The ROHM BD96802 [3] is a companion PMIC which is intended to be used to
> provide more capacity on systems where the BD96801 alone is not
> sufficient. Startup sequence of these PMICs can be synchronized in
> hardware level, and there seems to be some mechanisms which allow
> delivering the companion PMIC (BD96802) status to the main PMIC
> (BD96801/BD96805). This patch series does treat the companion PMIC(s) as
> individual PMICs and allows using them from software point of view as a
> stand alone ICs. From the digital point of view, the BD96802 is a subset
> of BD96801, providing only buck1 and buck2 regulators. Please see the
> data sheet
>
> The ROHM BD96806 [4] is similar to the BD96802, except that it does also
> provide different voltage tuning ranges.
>
> This series adds basic voltage monitoring and control as well as a
> watchdog support for these PMICs using the BD96801 drivers.
>
> Similarly to the BD96801, these PMICs too have a few configurations
> which can only be done when the PMIC is in STBY state. Similarly to the
> BD96801, doing these configurations isn't supported by the driver. The
> original BD96801 RFC [5] driver should be able to cover those
> configurations, if modified to support these models.
>
> [1]: ROHM BD96801 data sheet:
> https://fscdn.rohm.com/en/products/databook/datasheet/ic/power/switching_regulator_system/product_brief_bd96801qxx-c-e.pdf
> [2]: ROHM BD96805 data sheet:
> https://fscdn.rohm.com/en/products/databook/datasheet/ic/power/switching_regulator_system/product_brief_bd96805qxx-c-e.pdf
> [3]: ROHM BD96802 data sheet:
> https://fscdn.rohm.com/en/products/databook/datasheet/ic/power/switching_regulator_system/product_brief_bd96802qxx-c-e.pdf
> [4]: ROHM BD96806 data sheet:
> https://fscdn.rohm.com/en/products/databook/datasheet/ic/power/switching_regulator_system/product_brief_bd96806qxx-c-e.pdf
> [5]: Original BD96801 RFC:
> https://lore.kernel.org/all/cover.1712058690.git.mazziesaccount@xxxxxxxxx/
>
> Revision history:
>
> v1 => v2: MFD driver changes after review by Lee
> - Use enum for chip type instead of picking the data directly from the
> of_match_data.
> - rename "chip data" variable 'cd' to more widely used 'ddata'.
> link to v1:
> https://lore.kernel.org/all/cover.1741864404.git.mazziesaccount@xxxxxxxxx/
>
> ---
>
> Matti Vaittinen (14):
> dt-bindings: regulator: Add ROHM BD96802 PMIC
> dt-bindings: mfd: Add ROHM BD96802 PMIC
> dt-bindings: mfd: bd96801: Add ROHM BD96805
> dt-bindings: mfd: bd96802: Add ROHM BD96806
> mfd: rohm-bd96801: Add chip info
> mfd: bd96801: Drop IC name from the regulator IRQ resources
> regulator: bd96801: Drop IC name from the IRQ resources
> mfd: rohm-bd96801: Support ROHM BD96802
> regulator: bd96801: Support ROHM BD96802
> mfd: bd96801: Support ROHM BD96805
> regulator: bd96801: Support ROHM BD96805 PMIC
> mfd: bd96801: Support ROHM BD96806
> regulator: bd96801: Support ROHM BD96806 PMIC
> MAINTAINERS: Add BD96802 specific header
Adding support for 3 new devices in one set!
You don't like making things easy for yourself (or us) do you! =:-)
> .../bindings/mfd/rohm,bd96801-pmic.yaml | 10 +-
> .../bindings/mfd/rohm,bd96802-pmic.yaml | 101 ++++
> .../regulator/rohm,bd96802-regulator.yaml | 44 ++
> MAINTAINERS | 1 +
> drivers/mfd/rohm-bd96801.c | 565 ++++++++++++++----
> drivers/regulator/bd96801-regulator.c | 447 ++++++++++++--
> include/linux/mfd/rohm-bd96801.h | 2 +
> include/linux/mfd/rohm-bd96802.h | 74 +++
> include/linux/mfd/rohm-generic.h | 3 +
> 9 files changed, 1065 insertions(+), 182 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd96802-pmic.yaml
> create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd96802-regulator.yaml
> create mode 100644 include/linux/mfd/rohm-bd96802.h
The MFD stuff looks okay to me now.
Let me know when everything else is ready to go.
--
Lee Jones [李琼斯]