Re: [PATCH v8 0/5] TH1520 SoC: Add AON firmware & power-domain support
From: Ulf Hansson
Date: Wed Mar 12 2025 - 09:40:54 EST
On Tue, 11 Mar 2025 at 18:20, Michal Wilczynski
<m.wilczynski@xxxxxxxxxxx> wrote:
>
> 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:
I can pick up patch1 -> patch4 via my pmdomain tree, assuming I can
get an ack from some of the thead-SoC maintainers.
Patch5 is probably better to be routed through the SoC maintainers
tree, but let me know if you prefer me to take this one too.
Kind regards
Uffe
>
> v8:
> - add proper cleanup in the th1520_pd_probe()
> - add "suppress_bind_attrs = true", since there is no need to unbound the driver
> during runtime. This simplifies the code by eliminating the remove function
>
> 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 | 218 +++++++++++++++
> .../dt-bindings/power/thead,th1520-power.h | 19 ++
> .../linux/firmware/thead/thead,th1520-aon.h | 200 ++++++++++++++
> 13 files changed, 770 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
>