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

Jerome Neanne jneanne at baylibre.com
Tue Jul 19 02:17:28 PDT 2022


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




More information about the linux-arm-kernel mailing list