[PATCH v7 0/5] TH1520 SoC: Add AON firmware & power-domain support
From: Michal Wilczynski
Date: Mon Mar 10 2025 - 05:02:40 EST
This patch series introduces and documents power management (PM) support and
the AON firmware driver for the T-Head TH1520 SoC, as used on the LicheePi 4A
board. While part of a larger effort to enable the Imagination BXM-4-64 GPU
upstream, these patches can merge independently.
Bigger series cover letter:
https://lore.kernel.org/all/20250219140239.1378758-1-m.wilczynski@xxxxxxxxxxx/
This series is versioned to maintain continuity with the bigger patchset it is
a subseries of. Please find below a changelog for the AON & power-domain:
v7:
- add '#include <linux/slab.h", due to kernel robot issue
v6:
- split the firmware & power-domain patches into a separate series
v5:
- changed the AON driver to be a set of library functions rather than a
standalone driver
v4:
- added workaround to disable AUDIO power domain to prevent firmware crashes
v3:
- consolidated device tree representation by merging aon and power-domain nodes
while maintaining separate drivers internally
- power-domain driver is now instantiated from within the aon driver
- fixed optional module dependencies in Kconfig
- added kernel-doc comments for all exported functions
- implemented th1520_aon_remove() to properly clean up mailbox channel
resources
v2:
- introduced a new firmware driver to manage power-related operations.
- rewrote the power-domain driver to function alongside the firmware driver.
These nodes in the device tree lack direct address spaces, despite
representing HW blocks. Control is achieved via firmware protocol messages
transmitted through a mailbox to the E902 core.
- added new dt-bindings for power and firmware nodes.
- ran dtbs_check and dt_binding_check to ensure compliance.
Michal Wilczynski (5):
dt-bindings: firmware: thead,th1520: Add support for firmware node
firmware: thead: Add AON firmware protocol driver
dt-bindings: power: Add TH1520 SoC power domains
pmdomain: thead: Add power-domain driver for TH1520
riscv: Enable PM_GENERIC_DOMAINS for T-Head SoCs
.../bindings/firmware/thead,th1520-aon.yaml | 53 ++++
MAINTAINERS | 5 +
arch/riscv/Kconfig.socs | 1 +
drivers/firmware/Kconfig | 9 +
drivers/firmware/Makefile | 1 +
drivers/firmware/thead,th1520-aon.c | 248 ++++++++++++++++++
drivers/pmdomain/Kconfig | 1 +
drivers/pmdomain/Makefile | 1 +
drivers/pmdomain/thead/Kconfig | 12 +
drivers/pmdomain/thead/Makefile | 2 +
drivers/pmdomain/thead/th1520-pm-domains.c | 209 +++++++++++++++
.../dt-bindings/power/thead,th1520-power.h | 19 ++
.../linux/firmware/thead/thead,th1520-aon.h | 200 ++++++++++++++
13 files changed, 761 insertions(+)
create mode 100644 Documentation/devicetree/bindings/firmware/thead,th1520-aon.yaml
create mode 100644 drivers/firmware/thead,th1520-aon.c
create mode 100644 drivers/pmdomain/thead/Kconfig
create mode 100644 drivers/pmdomain/thead/Makefile
create mode 100644 drivers/pmdomain/thead/th1520-pm-domains.c
create mode 100644 include/dt-bindings/power/thead,th1520-power.h
create mode 100644 include/linux/firmware/thead/thead,th1520-aon.h
--
2.34.1