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@xxxxxxxxx/
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
--
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland
~~ When things go utterly wrong vim users can always type :help! ~~