[PATCH v1 00/14] Add support for TI TPS65219 PMIC.

From: Jerome Neanne
Date: Tue Jul 19 2022 - 05:17:57 EST


Not implemented
- DVS

1-Regulators:
Full implementation and test
Visual check: cat /sys/kernel/debug/regulator/regulator_summary
Full validation requires userspace-consumer and virtual-regulator
LDO1 is not used and output can be probbed on TP84.

Changes vs RFC:
Use standard regmap helpers only.
Reshaped integrating review feedbacks.

2-Reset WARM/COLD
test procedure: launch reboot on the console and check visually

warm vs. cold can be configured on the kernel command-line at boot time.
Default is cold, but adding `reboot=w`
to kernel command allow testing warm reboot.

Alternative:
`# echo warm > /sys/kernel/reboot/mode`

Changes vs RFC:
Hooked to standard linux/reboot.h
Add pr_flush to ensure output to console happens.


3-SW Shutdown
test procedure: launch halt on the console and check visually

Note: enters in competition with other source during probe

Board Test Points can be used to check voltage after system shutdown.
baseport is not handling wakeup.
A power OFF/ON cycle is needed to recover.

Changes vs RFC:
Standard system-power-controller has been implemented to enable override.

4-Interrupt Pin (nINT): NEW, was not implemented in RFC

Interrupt occurring on PMIC TPS65219 is propagated to SOC
through EXTINTn pin connected to gic500 interrupt controller

Interrupt lines for TPS65219 shows-up on console:
cat /proc/interrupts

Validation:
Create a Residual Voltage interrupt and handling and interrupt source is cleared.
`tps65219 0-0030: Registered residual voltage for LDO1`
`533: 1 0 tps65219_irq 35 Edge LDO1_RV`

Mapped to power button (use TP90 to GND to emulate a physical button)

5-PB Startup and Shutdown: NEW, was not implemented in RFC
New implementation to support both rising and falling edge.

TPS65219 has different interrupts compared to other TPS6521* chips.
TPS65219 defines two interrupts for the powerbutton one for push and one
for release.


Interrupt support: cat proc/interrupts
`557: 0 0 tps65219_irq 47 Edge tps65219-pwrbutton.1.auto`
`558: 0 0 tps65219_irq 48 Edge tps65219-pwrbutton.1.auto`

Jerome Neanne (9):
regulator: dt-bindings: Add TI TPS65219 PMIC bindings
regulator: dt-bindings: Add interrupts support to TPS65219 PMIC
bindings
mfd: drivers: Add TI TPS65219 PMIC support
mfd: drivers: Add interrupts support to TI TPS65219 PMIC
regulator: drivers: Add TI TPS65219 PMIC regulators support
arm64: defconfig: Add tps65219 as modules
arm64: dts: ti: Add TI TPS65219 PMIC support for AM642 SK board.
arm64: dts: ti: Add pinmux and irq mapping for TPS65219 external
interrupts
arm64: defconfig: Add tps65219 power-button as module

Markus Schneider-Pargmann (5):
MAINTAINERS: OMAP2+ support, add tps65218-pwrbutton
regulator: dt-bindings: tps65219: Add power-button property
mfd: tps65219: Add power-button support
Input: Add tps65219 interrupt driven powerbutton
arm64: dts: ti: k3-am642-sk: Enable tps65219 power-button

.../bindings/regulator/ti,tps65219.yaml | 178 +++++++
MAINTAINERS | 4 +
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 117 +++++
arch/arm64/configs/defconfig | 3 +
drivers/input/misc/Kconfig | 10 +
drivers/input/misc/Makefile | 1 +
drivers/input/misc/tps65219-pwrbutton.c | 150 ++++++
drivers/mfd/Kconfig | 15 +
drivers/mfd/Makefile | 1 +
drivers/mfd/tps65219.c | 438 ++++++++++++++++++
drivers/regulator/Kconfig | 9 +
drivers/regulator/Makefile | 1 +
drivers/regulator/tps65219-regulator.c | 414 +++++++++++++++++
include/linux/mfd/tps65219.h | 364 +++++++++++++++
14 files changed, 1705 insertions(+)
create mode 100644 Documentation/devicetree/bindings/regulator/ti,tps65219.yaml
create mode 100644 drivers/input/misc/tps65219-pwrbutton.c
create mode 100644 drivers/mfd/tps65219.c
create mode 100644 drivers/regulator/tps65219-regulator.c
create mode 100644 include/linux/mfd/tps65219.h

--
2.17.1