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

Matti Vaittinen posted 14 patches 2 weeks, 6 days ago
.../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         | 455 ++++++++++++--
include/linux/mfd/rohm-bd96801.h              |   2 +
include/linux/mfd/rohm-bd96802.h              |  74 +++
include/linux/mfd/rohm-generic.h              |   3 +
9 files changed, 1073 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 v3 00/14] Support ROHM Scalable PMIC family
Posted by Matti Vaittinen 2 weeks, 6 days 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:
v2 => v3:
 - Fix BD96806 voltages
 - Use defines for voltages to ease spotting (copy-paste) errors in
   regulator descs
 - Use lowercase node names in the BD96802 dt-binding
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         | 455 ++++++++++++--
 include/linux/mfd/rohm-bd96801.h              |   2 +
 include/linux/mfd/rohm-bd96802.h              |  74 +++
 include/linux/mfd/rohm-generic.h              |   3 +
 9 files changed, 1073 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: 0af2f6be1b4281385b618cb86ad946eded089ac8
-- 
2.49.0

Re: [PATCH v3 00/14] Support ROHM Scalable PMIC family
Posted by Lee Jones 2 weeks, 4 days ago
On Tue, 08 Apr 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:
> v2 => v3:
>  - Fix BD96806 voltages
>  - Use defines for voltages to ease spotting (copy-paste) errors in
>    regulator descs
>  - Use lowercase node names in the BD96802 dt-binding
> 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         | 455 ++++++++++++--
>  include/linux/mfd/rohm-bd96801.h              |   2 +
>  include/linux/mfd/rohm-bd96802.h              |  74 +++
>  include/linux/mfd/rohm-generic.h              |   3 +
>  9 files changed, 1073 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

This set good to go now?

-- 
Lee Jones [李琼斯]
Re: [PATCH v3 00/14] Support ROHM Scalable PMIC family
Posted by Matti Vaittinen 2 weeks, 4 days ago
On 10/04/2025 10:58, Lee Jones wrote:
> On Tue, 08 Apr 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:
>> v2 => v3:
>>   - Fix BD96806 voltages
>>   - Use defines for voltages to ease spotting (copy-paste) errors in
>>     regulator descs
>>   - Use lowercase node names in the BD96802 dt-binding
>> 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         | 455 ++++++++++++--
>>   include/linux/mfd/rohm-bd96801.h              |   2 +
>>   include/linux/mfd/rohm-bd96802.h              |  74 +++
>>   include/linux/mfd/rohm-generic.h              |   3 +
>>   9 files changed, 1073 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
> 
> This set good to go now?

Yes :)

Yours,
	-- Matti
Re: [PATCH v3 00/14] Support ROHM Scalable PMIC family
Posted by Lee Jones 4 days, 9 hours ago
On Tue, 08 Apr 2025 11:40:24 +0300, 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.
> 
> [...]

Applied, thanks!

[01/14] dt-bindings: regulator: Add ROHM BD96802 PMIC
        commit: 9effbfda6bfd677042434722a9c2f2e17d261dce
[02/14] dt-bindings: mfd: Add ROHM BD96802 PMIC
        commit: 9d851b2e016a13b0a673503f5600315b6601e025
[03/14] dt-bindings: mfd: bd96801: Add ROHM BD96805
        commit: d5a30228b6fa86cf841d8c12af0025c0bacb90fb
[04/14] dt-bindings: mfd: bd96802: Add ROHM BD96806
        commit: 82c218969eb0ec989d8e049878fd3d6a97ccd8ba
[05/14] mfd: rohm-bd96801: Add chip info
        commit: 7289d96ba557fb5e0a90813b7e24f3815127d14d
[06/14] mfd: bd96801: Drop IC name from the regulator IRQ resources
        commit: d082571fca4d1db5642ad4436cef22d65bfe4153
[07/14] regulator: bd96801: Drop IC name from the IRQ resources
        commit: 9cc957546e3865bc3adfd39ceeedc8074521024d
[08/14] mfd: rohm-bd96801: Support ROHM BD96802
        commit: 4094040b1a133206ed893da2cf5e17cc22f7ca7c
[09/14] regulator: bd96801: Support ROHM BD96802
        commit: 55606b9b20639b634560f44a070ff6153b59b557
[10/14] mfd: bd96801: Support ROHM BD96805
        commit: 6a309b489215f705c20cb4ed7f85d9c16f768e55
[11/14] regulator: bd96801: Support ROHM BD96805 PMIC
        commit: 7baf818d0d90e00c0688d8156bc7d9d1d1ee1dbb
[12/14] mfd: bd96801: Support ROHM BD96806
        commit: fecc18a9f59ce9c36eb3622ae77bff5fa5c6d976
[13/14] regulator: bd96801: Support ROHM BD96806 PMIC
        commit: 956e9363c8230a0dc9a83cf5de61200206a9154b
[14/14] MAINTAINERS: Add BD96802 specific header
        commit: 5d61bb1675ff7662f519ca203b1f8cdc455b9df4

--
Lee Jones [李琼斯]

Re: [PATCH v3 00/14] Support ROHM Scalable PMIC family
Posted by Lee Jones 4 days, 9 hours ago
On Thu, 24 Apr 2025, Lee Jones wrote:

> On Tue, 08 Apr 2025 11:40:24 +0300, 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.
> > 
> > [...]
> 
> Applied, thanks!
> 
> [01/14] dt-bindings: regulator: Add ROHM BD96802 PMIC
>         commit: 9effbfda6bfd677042434722a9c2f2e17d261dce
> [02/14] dt-bindings: mfd: Add ROHM BD96802 PMIC
>         commit: 9d851b2e016a13b0a673503f5600315b6601e025
> [03/14] dt-bindings: mfd: bd96801: Add ROHM BD96805
>         commit: d5a30228b6fa86cf841d8c12af0025c0bacb90fb
> [04/14] dt-bindings: mfd: bd96802: Add ROHM BD96806
>         commit: 82c218969eb0ec989d8e049878fd3d6a97ccd8ba
> [05/14] mfd: rohm-bd96801: Add chip info
>         commit: 7289d96ba557fb5e0a90813b7e24f3815127d14d
> [06/14] mfd: bd96801: Drop IC name from the regulator IRQ resources
>         commit: d082571fca4d1db5642ad4436cef22d65bfe4153
> [07/14] regulator: bd96801: Drop IC name from the IRQ resources
>         commit: 9cc957546e3865bc3adfd39ceeedc8074521024d
> [08/14] mfd: rohm-bd96801: Support ROHM BD96802
>         commit: 4094040b1a133206ed893da2cf5e17cc22f7ca7c
> [09/14] regulator: bd96801: Support ROHM BD96802
>         commit: 55606b9b20639b634560f44a070ff6153b59b557
> [10/14] mfd: bd96801: Support ROHM BD96805
>         commit: 6a309b489215f705c20cb4ed7f85d9c16f768e55
> [11/14] regulator: bd96801: Support ROHM BD96805 PMIC
>         commit: 7baf818d0d90e00c0688d8156bc7d9d1d1ee1dbb
> [12/14] mfd: bd96801: Support ROHM BD96806
>         commit: fecc18a9f59ce9c36eb3622ae77bff5fa5c6d976
> [13/14] regulator: bd96801: Support ROHM BD96806 PMIC
>         commit: 956e9363c8230a0dc9a83cf5de61200206a9154b
> [14/14] MAINTAINERS: Add BD96802 specific header
>         commit: 5d61bb1675ff7662f519ca203b1f8cdc455b9df4

Submitted for build testing.  Once they've passed, I'll submit a PR.

Note to self: ib-mfd-regulator-6.16

-- 
Lee Jones [李琼斯]