[PATCH v2 00/14] Support ROHM Scalable PMIC family

Matti Vaittinen posted 14 patches 8 months, 3 weeks ago
There is a newer version of this series
.../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
[PATCH v2 00/14] Support ROHM Scalable PMIC family
Posted by Matti Vaittinen 8 months, 3 weeks ago
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

 .../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


base-commit: 7eb172143d5508b4da468ed59ee857c6e5e01da6
-- 
2.49.0

Re: [PATCH v2 00/14] Support ROHM Scalable PMIC family
Posted by Lee Jones 8 months, 2 weeks ago
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!  =:-)

>  .../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 [李琼斯]
Re: [PATCH v2 00/14] Support ROHM Scalable PMIC family
Posted by Matti Vaittinen 8 months, 1 week ago
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!  =:-)
> 
>>   .../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.

Hi Lee,

The v3 (link below) should be good to go now. Regulator parts are 
reviewed by Mark and bindings are acked by Conor.
Please note that I translated your 'Ok' above to ACKs - I hope that was 
the right thing to do...

https://lore.kernel.org/all/cover.1744090658.git.mazziesaccount@gmail.com/

Yours
	-- Matti
Re: [PATCH v2 00/14] Support ROHM Scalable PMIC family
Posted by Matti Vaittinen 8 months, 1 week ago
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/

> 
> The MFD stuff looks okay to me now.
> 
> Let me know when everything else is ready to go.
> 

I'll treat this as an ACK for the V3. Please, let me know if that's not 
Okay.

Yours,
	-- Matti
Re: [PATCH v2 00/14] Support ROHM Scalable PMIC family
Posted by Lee Jones 8 months, 1 week ago
On Tue, 08 Apr 2025, Matti Vaittinen wrote:

> 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/
> 
> > 
> > The MFD stuff looks okay to me now.
> > 
> > Let me know when everything else is ready to go.
> > 
> 
> I'll treat this as an ACK for the V3. Please, let me know if that's not
> Okay.

Acks are tricky because another maintainer might (have have in the past)
assume that they can apply the set with my blessing, this is not the
case.  I used to use `Acked-for-MFD-by: <me>`, but these ended up being
merged.  *face palm*

Anyway, no harm done this time around I think.

-- 
Lee Jones [李琼斯]
Re: [PATCH v2 00/14] Support ROHM Scalable PMIC family
Posted by Matti Vaittinen 8 months, 1 week ago
On 10/04/2025 11:02, Lee Jones wrote:
> On Tue, 08 Apr 2025, Matti Vaittinen wrote:
> 
>> 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/
>>
>>>
>>> The MFD stuff looks okay to me now.
>>>
>>> Let me know when everything else is ready to go.
>>>
>>
>> I'll treat this as an ACK for the V3. Please, let me know if that's not
>> Okay.
> 
> Acks are tricky because another maintainer might (have have in the past)
> assume that they can apply the set with my blessing, this is not the
> case.  I used to use `Acked-for-MFD-by: <me>`, but these ended up being
> merged.  *face palm*
> 
> Anyway, no harm done this time around I think.

I remembered you used to use the "Acked-for-MFD-by". Never knew the 
rationale though. Thanks for sharing the reason - and downside :)

I try to remember to not treat your "this looks good to me" as an ACK in 
the future then, but expect explicit acks.

Yours,
	-- Matti
Re: [PATCH v2 00/14] Support ROHM Scalable PMIC family
Posted by Matti Vaittinen 8 months, 1 week ago
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