[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <2d18b7bc-7d94-4e45-8c7d-9a8acf4089eb@gmail.com>
Date: Mon, 7 Apr 2025 08:09:41 +0300
From: Matti Vaittinen <mazziesaccount@...il.com>
To: Lee Jones <lee@...nel.org>
Cc: Matti Vaittinen <matti.vaittinen@...rohmeurope.com>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 00/14] Support ROHM Scalable PMIC family
On 04/04/2025 18:43, Lee Jones wrote:
> 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@gmail.com/
>>
>> 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@gmail.com/
>>
>> ---
>>
>> 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! =:-)
Well, adding the BD96805 and the BD96806 were _very_ minor changes. More
or less just adding new voltage range tables. (After the support for
different ICs was done for the BD96802). All of the ICs, BD96801,2,5 and
6 are 'same family' of "scalable PMICs" - which all share similar
digital logic. Hence, bundling them into one series didn't seem like too
big if a chunk.
>
>> .../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.
Thanks! I'll translate this to ACK tag for the v3 :) Please, let me know
if you feel that's not Ok.
> Let me know when everything else is ready to go.
I still need Mark's ack for the patches 7 and 9, and I need to fix the
voltages for BD96806 - meaning at least 1 more version.
Yours,
-- Matti
Powered by blists - more mailing lists