mbox series

[v4,0/6] Support ROHM BD96801 Scalable PMIC

Message ID cover.1718356964.git.mazziesaccount@gmail.com
Headers show
Series Support ROHM BD96801 Scalable PMIC | expand

Message

Matti Vaittinen June 14, 2024, 9:42 a.m. UTC
Support ROHM BD96801 Scalable PMIC

The ROHM BD96801 is automotive grade PMIC, intended to be usable in
multiple solutions. The BD96801 can be used as a stand-alone, or together
with separate 'companion PMICs'. This modular approach aims to make this
PMIC suitable for various use-cases.

This series brings only limited support. The more complete set of
features was sent in the RFC:
https://lore.kernel.org/lkml/cover.1712058690.git.mazziesaccount@gmail.com/

The v3: implemented also support for ERRB interrupt and setting a name
suffix to IRQ domains. That work was postponed and will be continued
after some unrelated changes to irqdomain code are completed as
discussed here:
https://lore.kernel.org/all/87plst28yk.ffs@tglx/

Revision history still tries to summarize changes from the RFC for the
reviewers.

Revision history:
v3 => v4:
 - Drop patches 7 to 10 (inclusive) until preparatory irqdomain changes
   are done.
 - Cleanups as suggested by Lee.
	- Change the regulator subdevice name. (MFD and regulators).
	- Minor styling in MFD driver

v2 => v3: Mostly based on feedback from Thomas Gleixner
	- Added acks from Krzysztof and Mark
	- Rebased on v6.10-rc2
	- Drop name suffix support for legacy IRQ domains (both
	  irqdomain and regmap)
	- Improve the commit message for patch 7/10

v1 => v2:
	- Add support for setting a name suffix for fwnode backed IRQ domains.
	- Add support for setting a domain name suffix for regmap-IRQ.
	- Add handling of ERRB IRQs.
	- Small fixes based on feedback.

RFCv2 => v1:
	- Drop ERRB IRQ from drivers (but not DT bindings).
	- Drop configuration which requires STBY - state.
	- Fix the register lock race by moving it from the regulator
	  driver to the MFD driver.

RFCv1 => RFCv2:
	- Tidying code based on feedback form Krzysztof Kozlowski and
	  Lee Jones.
	- Documented undocumented watchdog related DT properties.
	- Added usage of the watchdog IRQ.
	- Use irq_domain_update_bus_token() to work-around debugFS name
	  collision for IRQ domains.

---


Matti Vaittinen (6):
  dt-bindings: ROHM BD96801 PMIC regulators
  dt-bindings: mfd: bd96801 PMIC core
  mfd: support ROHM BD96801 PMIC core
  regulator: bd96801: ROHM BD96801 PMIC regulators
  watchdog: ROHM BD96801 PMIC WDG driver
  MAINTAINERS: Add ROHM BD96801 'scalable PMIC' entries

 .../bindings/mfd/rohm,bd96801-pmic.yaml       | 173 ++++
 .../regulator/rohm,bd96801-regulator.yaml     |  63 ++
 MAINTAINERS                                   |   4 +
 drivers/mfd/Kconfig                           |  13 +
 drivers/mfd/Makefile                          |   1 +
 drivers/mfd/rohm-bd96801.c                    | 273 ++++++
 drivers/regulator/Kconfig                     |  12 +
 drivers/regulator/Makefile                    |   2 +
 drivers/regulator/bd96801-regulator.c         | 908 ++++++++++++++++++
 drivers/watchdog/Kconfig                      |  13 +
 drivers/watchdog/Makefile                     |   1 +
 drivers/watchdog/bd96801_wdt.c                | 416 ++++++++
 include/linux/mfd/rohm-bd96801.h              | 215 +++++
 include/linux/mfd/rohm-generic.h              |   1 +
 14 files changed, 2095 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd96801-pmic.yaml
 create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd96801-regulator.yaml
 create mode 100644 drivers/mfd/rohm-bd96801.c
 create mode 100644 drivers/regulator/bd96801-regulator.c
 create mode 100644 drivers/watchdog/bd96801_wdt.c
 create mode 100644 include/linux/mfd/rohm-bd96801.h


base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0

Comments

Lee Jones June 20, 2024, 9:35 a.m. UTC | #1
On Fri, 14 Jun 2024 12:42:35 +0300, Matti Vaittinen wrote:
> Support ROHM BD96801 Scalable PMIC
> 
> The ROHM BD96801 is automotive grade PMIC, intended to be usable in
> multiple solutions. The BD96801 can be used as a stand-alone, or together
> with separate 'companion PMICs'. This modular approach aims to make this
> PMIC suitable for various use-cases.
> 
> [...]

Applied, thanks!

[1/6] dt-bindings: ROHM BD96801 PMIC regulators
      commit: 7edf20a5380779dd47e72b68e7cfa037dfd0807d
[2/6] dt-bindings: mfd: bd96801 PMIC core
      commit: ef0c63e3e22d4c9039831236e3b189caf538b4c0
[3/6] mfd: support ROHM BD96801 PMIC core
      commit: d701779ed5effdb55b8f08051ed1c5291fb9201c
[4/6] regulator: bd96801: ROHM BD96801 PMIC regulators
      commit: 79ab65717405d535b96a7bbf04eb8c71f9372985
[5/6] watchdog: ROHM BD96801 PMIC WDG driver
      commit: 10278981a2fb81fb07635b9649f6387f6a6a5abf
[6/6] MAINTAINERS: Add ROHM BD96801 'scalable PMIC' entries
      commit: de9fa7d755fd0c5f90c5faa524db0cc13efd809e

--
Lee Jones [李琼斯]
Lee Jones June 20, 2024, 2:38 p.m. UTC | #2
On Fri, 14 Jun 2024, Matti Vaittinen wrote:

> Support ROHM BD96801 Scalable PMIC
> 
> The ROHM BD96801 is automotive grade PMIC, intended to be usable in
> multiple solutions. The BD96801 can be used as a stand-alone, or together
> with separate 'companion PMICs'. This modular approach aims to make this
> PMIC suitable for various use-cases.
> 
> This series brings only limited support. The more complete set of
> features was sent in the RFC:
> https://lore.kernel.org/lkml/cover.1712058690.git.mazziesaccount@gmail.com/
> 
> The v3: implemented also support for ERRB interrupt and setting a name
> suffix to IRQ domains. That work was postponed and will be continued
> after some unrelated changes to irqdomain code are completed as
> discussed here:
> https://lore.kernel.org/all/87plst28yk.ffs@tglx/
> 
> Revision history still tries to summarize changes from the RFC for the
> reviewers.
> 
> Revision history:
> v3 => v4:
>  - Drop patches 7 to 10 (inclusive) until preparatory irqdomain changes
>    are done.
>  - Cleanups as suggested by Lee.
> 	- Change the regulator subdevice name. (MFD and regulators).
> 	- Minor styling in MFD driver
> 
> v2 => v3: Mostly based on feedback from Thomas Gleixner
> 	- Added acks from Krzysztof and Mark
> 	- Rebased on v6.10-rc2
> 	- Drop name suffix support for legacy IRQ domains (both
> 	  irqdomain and regmap)
> 	- Improve the commit message for patch 7/10
> 
> v1 => v2:
> 	- Add support for setting a name suffix for fwnode backed IRQ domains.
> 	- Add support for setting a domain name suffix for regmap-IRQ.
> 	- Add handling of ERRB IRQs.
> 	- Small fixes based on feedback.
> 
> RFCv2 => v1:
> 	- Drop ERRB IRQ from drivers (but not DT bindings).
> 	- Drop configuration which requires STBY - state.
> 	- Fix the register lock race by moving it from the regulator
> 	  driver to the MFD driver.
> 
> RFCv1 => RFCv2:
> 	- Tidying code based on feedback form Krzysztof Kozlowski and
> 	  Lee Jones.
> 	- Documented undocumented watchdog related DT properties.
> 	- Added usage of the watchdog IRQ.
> 	- Use irq_domain_update_bus_token() to work-around debugFS name
> 	  collision for IRQ domains.
> 
> ---
> 
> 
> Matti Vaittinen (6):
>   dt-bindings: ROHM BD96801 PMIC regulators
>   dt-bindings: mfd: bd96801 PMIC core
>   mfd: support ROHM BD96801 PMIC core
>   regulator: bd96801: ROHM BD96801 PMIC regulators
>   watchdog: ROHM BD96801 PMIC WDG driver
>   MAINTAINERS: Add ROHM BD96801 'scalable PMIC' entries
> 
>  .../bindings/mfd/rohm,bd96801-pmic.yaml       | 173 ++++
>  .../regulator/rohm,bd96801-regulator.yaml     |  63 ++
>  MAINTAINERS                                   |   4 +
>  drivers/mfd/Kconfig                           |  13 +
>  drivers/mfd/Makefile                          |   1 +
>  drivers/mfd/rohm-bd96801.c                    | 273 ++++++
>  drivers/regulator/Kconfig                     |  12 +
>  drivers/regulator/Makefile                    |   2 +
>  drivers/regulator/bd96801-regulator.c         | 908 ++++++++++++++++++
>  drivers/watchdog/Kconfig                      |  13 +
>  drivers/watchdog/Makefile                     |   1 +
>  drivers/watchdog/bd96801_wdt.c                | 416 ++++++++
>  include/linux/mfd/rohm-bd96801.h              | 215 +++++
>  include/linux/mfd/rohm-generic.h              |   1 +
>  14 files changed, 2095 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd96801-pmic.yaml
>  create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd96801-regulator.yaml
>  create mode 100644 drivers/mfd/rohm-bd96801.c
>  create mode 100644 drivers/regulator/bd96801-regulator.c
>  create mode 100644 drivers/watchdog/bd96801_wdt.c
>  create mode 100644 include/linux/mfd/rohm-bd96801.h

allmodconfig and allyesconfig builds fail with:

  make[5]: *** No rule to make target 'drivers/regulator/da903x.o', needed by 'drivers/regulator/built-in.a'.
  make[5]: Target 'drivers/regulator/' not remade because of errors.
Matti Vaittinen June 26, 2024, 9:07 a.m. UTC | #3
On 6/20/24 17:38, Lee Jones wrote:
> On Fri, 14 Jun 2024, Matti Vaittinen wrote:
> 
>> Support ROHM BD96801 Scalable PMIC
>>
>> The ROHM BD96801 is automotive grade PMIC, intended to be usable in
>> multiple solutions. The BD96801 can be used as a stand-alone, or together
>> with separate 'companion PMICs'. This modular approach aims to make this
>> PMIC suitable for various use-cases.
>>
>> This series brings only limited support. The more complete set of
>> features was sent in the RFC:
>> https://lore.kernel.org/lkml/cover.1712058690.git.mazziesaccount@gmail.com/
>>
>> The v3: implemented also support for ERRB interrupt and setting a name
>> suffix to IRQ domains. That work was postponed and will be continued
>> after some unrelated changes to irqdomain code are completed as
>> discussed here:
>> https://lore.kernel.org/all/87plst28yk.ffs@tglx/
>>
>> Revision history still tries to summarize changes from the RFC for the
>> reviewers.
>>
>> Revision history:
>> v3 => v4:
>>   - Drop patches 7 to 10 (inclusive) until preparatory irqdomain changes
>>     are done.
>>   - Cleanups as suggested by Lee.
>> 	- Change the regulator subdevice name. (MFD and regulators).
>> 	- Minor styling in MFD driver
>>
>> v2 => v3: Mostly based on feedback from Thomas Gleixner
>> 	- Added acks from Krzysztof and Mark
>> 	- Rebased on v6.10-rc2
>> 	- Drop name suffix support for legacy IRQ domains (both
>> 	  irqdomain and regmap)
>> 	- Improve the commit message for patch 7/10
>>
>> v1 => v2:
>> 	- Add support for setting a name suffix for fwnode backed IRQ domains.
>> 	- Add support for setting a domain name suffix for regmap-IRQ.
>> 	- Add handling of ERRB IRQs.
>> 	- Small fixes based on feedback.
>>
>> RFCv2 => v1:
>> 	- Drop ERRB IRQ from drivers (but not DT bindings).
>> 	- Drop configuration which requires STBY - state.
>> 	- Fix the register lock race by moving it from the regulator
>> 	  driver to the MFD driver.
>>
>> RFCv1 => RFCv2:
>> 	- Tidying code based on feedback form Krzysztof Kozlowski and
>> 	  Lee Jones.
>> 	- Documented undocumented watchdog related DT properties.
>> 	- Added usage of the watchdog IRQ.
>> 	- Use irq_domain_update_bus_token() to work-around debugFS name
>> 	  collision for IRQ domains.
>>
>> ---
>>
>>
>> Matti Vaittinen (6):
>>    dt-bindings: ROHM BD96801 PMIC regulators
>>    dt-bindings: mfd: bd96801 PMIC core
>>    mfd: support ROHM BD96801 PMIC core
>>    regulator: bd96801: ROHM BD96801 PMIC regulators
>>    watchdog: ROHM BD96801 PMIC WDG driver
>>    MAINTAINERS: Add ROHM BD96801 'scalable PMIC' entries
>>
>>   .../bindings/mfd/rohm,bd96801-pmic.yaml       | 173 ++++
>>   .../regulator/rohm,bd96801-regulator.yaml     |  63 ++
>>   MAINTAINERS                                   |   4 +
>>   drivers/mfd/Kconfig                           |  13 +
>>   drivers/mfd/Makefile                          |   1 +
>>   drivers/mfd/rohm-bd96801.c                    | 273 ++++++
>>   drivers/regulator/Kconfig                     |  12 +
>>   drivers/regulator/Makefile                    |   2 +
>>   drivers/regulator/bd96801-regulator.c         | 908 ++++++++++++++++++
>>   drivers/watchdog/Kconfig                      |  13 +
>>   drivers/watchdog/Makefile                     |   1 +
>>   drivers/watchdog/bd96801_wdt.c                | 416 ++++++++
>>   include/linux/mfd/rohm-bd96801.h              | 215 +++++
>>   include/linux/mfd/rohm-generic.h              |   1 +
>>   14 files changed, 2095 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd96801-pmic.yaml
>>   create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd96801-regulator.yaml
>>   create mode 100644 drivers/mfd/rohm-bd96801.c
>>   create mode 100644 drivers/regulator/bd96801-regulator.c
>>   create mode 100644 drivers/watchdog/bd96801_wdt.c
>>   create mode 100644 include/linux/mfd/rohm-bd96801.h
> 
> allmodconfig and allyesconfig builds fail with:
> 
>    make[5]: *** No rule to make target 'drivers/regulator/da903x.o', needed by 'drivers/regulator/built-in.a'.
>    make[5]: Target 'drivers/regulator/' not remade because of errors.

Bummer!

There is unrelated change in the Makefile. I must've messed up a rebase! 
Sorry! I'll send new version with corrected Makefile - latest early next 
week. (I suppose new version is appropriate instead of a follow-up as 
this breaks the build).

Thanks for the heads-up Lee!

Yours,
	-- Matti