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 >