On Wed, Mar 12, 2025 at 03:31:04PM +0100, Michal Wilczynski wrote: > > > On 3/12/25 14:40, Ulf Hansson wrote: > > 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. > > Thanks, I don't have a preference, I'll leave it up to SoC maintainers. > I haven't included the device tree changes in this mini-series, as then > the PM & firmware, clock, and reset mini-series might conflict with each > other in th1520.dtsi file, but SoC maintainers might also find it useful > to pick this commit [1], along with the patch5. > > [1] - https://lore.kernel.org/all/20250219140239.1378758-20-m.wilczynski@xxxxxxxxxxx/ I applied this series on top of next along with the above dts patch. The existing functionality of ethernet and emmc continues to work correctly. I can apply the dts to my for-next tree once this series lands in next. root@lpi4amain:/sys/kernel/debug/pm_genpd# cat pm_genpd_summary domain status children performance /device runtime status managed by ------------------------------------------------------------------------------ dsp1 off-0 0 dsp0 off-0 0 gpu off-0 0 venc off-0 0 npu off-0 0 vdec off-0 0 Thanks, Drew > > > > > 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 > >> > >