* [PATCH 0/2] Poweroff/reboot support for TH1520 via AON
@ 2025-08-18 7:49 Icenowy Zheng
2025-08-18 7:49 ` [PATCH 1/2] driver: reset: th1520-aon: add driver for poweroff/reboot via AON FW Icenowy Zheng
2025-08-18 7:49 ` [PATCH 2/2] pmdomain: thead: create auxiliary device for rebooting Icenowy Zheng
0 siblings, 2 replies; 6+ messages in thread
From: Icenowy Zheng @ 2025-08-18 7:49 UTC (permalink / raw)
To: Drew Fustini, Guo Ren, Fu Wei, Michal Wilczynski, Ulf Hansson,
Sebastian Reichel
Cc: Han Gao, Yao Zi, linux-kernel, linux-riscv, linux-pm,
Icenowy Zheng
This patchset tries to add support for poweroff/reboot on T-Head TH1520
SoC by calling the AON firmware.
The first patch creates an auxiliary driver for this, and the second
patch makes the driver currently matching thead,th1520-aon create an
auxiliary device.
Icenowy Zheng (2):
driver: reset: th1520-aon: add driver for poweroff/reboot via AON FW
pmdomain: thead: create auxiliary device for rebooting
MAINTAINERS | 1 +
drivers/pmdomain/thead/th1520-pm-domains.c | 35 +++++++-
drivers/power/reset/Kconfig | 7 ++
drivers/power/reset/Makefile | 1 +
drivers/power/reset/th1520-aon-reboot.c | 98 ++++++++++++++++++++++
5 files changed, 140 insertions(+), 2 deletions(-)
create mode 100644 drivers/power/reset/th1520-aon-reboot.c
--
2.50.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] driver: reset: th1520-aon: add driver for poweroff/reboot via AON FW
2025-08-18 7:49 [PATCH 0/2] Poweroff/reboot support for TH1520 via AON Icenowy Zheng
@ 2025-08-18 7:49 ` Icenowy Zheng
2025-08-18 9:43 ` Yao Zi
2025-08-18 7:49 ` [PATCH 2/2] pmdomain: thead: create auxiliary device for rebooting Icenowy Zheng
1 sibling, 1 reply; 6+ messages in thread
From: Icenowy Zheng @ 2025-08-18 7:49 UTC (permalink / raw)
To: Drew Fustini, Guo Ren, Fu Wei, Michal Wilczynski, Ulf Hansson,
Sebastian Reichel
Cc: Han Gao, Yao Zi, linux-kernel, linux-riscv, linux-pm,
Icenowy Zheng
This driver implements poweroff/reboot support for T-Head TH1520 SoCs
running the AON firmware by sending a message to the AON firmware's WDG
part.
This is a auxiliary device driver, and expects the AON channel to be
passed via the platform_data of the auxiliary device.
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
---
MAINTAINERS | 1 +
drivers/power/reset/Kconfig | 7 ++
drivers/power/reset/Makefile | 1 +
drivers/power/reset/th1520-aon-reboot.c | 98 +++++++++++++++++++++++++
4 files changed, 107 insertions(+)
create mode 100644 drivers/power/reset/th1520-aon-reboot.c
diff --git a/MAINTAINERS b/MAINTAINERS
index daf520a13bdf6..e138a1e96ceea 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -21730,6 +21730,7 @@ F: drivers/mailbox/mailbox-th1520.c
F: drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c
F: drivers/pinctrl/pinctrl-th1520.c
F: drivers/pmdomain/thead/
+F: drivers/power/reset/th1520-aon-reboot.c
F: drivers/power/sequencing/pwrseq-thead-gpu.c
F: drivers/reset/reset-th1520.c
F: include/dt-bindings/clock/thead,th1520-clk-ap.h
diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
index 77ea3129c7080..8248895ca9038 100644
--- a/drivers/power/reset/Kconfig
+++ b/drivers/power/reset/Kconfig
@@ -225,6 +225,13 @@ config POWER_RESET_ST
help
Reset support for STMicroelectronics boards.
+config POWER_RESET_TH1520_AON
+ tristate "T-Head TH1520 AON firmware poweroff and reset driver"
+ depends on TH1520_PM_DOMAINS
+ help
+ This driver supports power-off and reset operations for T-Head
+ TH1520 SoCs running the AON firmware.
+
config POWER_RESET_TORADEX_EC
tristate "Toradex Embedded Controller power-off and reset driver"
depends on ARCH_MXC || COMPILE_TEST
diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
index b7c2b5940be99..51da87e05ce76 100644
--- a/drivers/power/reset/Makefile
+++ b/drivers/power/reset/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o
obj-$(CONFIG_POWER_RESET_REGULATOR) += regulator-poweroff.o
obj-$(CONFIG_POWER_RESET_RESTART) += restart-poweroff.o
obj-$(CONFIG_POWER_RESET_ST) += st-poweroff.o
+obj-$(CONFIG_POWER_RESET_TH1520_AON) += th1520-aon-reboot.o
obj-$(CONFIG_POWER_RESET_TORADEX_EC) += tdx-ec-poweroff.o
obj-$(CONFIG_POWER_RESET_TPS65086) += tps65086-restart.o
obj-$(CONFIG_POWER_RESET_VERSATILE) += arm-versatile-reboot.o
diff --git a/drivers/power/reset/th1520-aon-reboot.c b/drivers/power/reset/th1520-aon-reboot.c
new file mode 100644
index 0000000000000..8256c1703ebe8
--- /dev/null
+++ b/drivers/power/reset/th1520-aon-reboot.c
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * T-HEAD TH1520 AON Firmware Reboot Driver
+ *
+ * Copyright (c) 2025 Icenowy Zheng <uwu@icenowy.me>
+ */
+
+#include <linux/auxiliary_bus.h>
+#include <linux/firmware/thead/thead,th1520-aon.h>
+#include <linux/module.h>
+#include <linux/notifier.h>
+#include <linux/of.h>
+#include <linux/reboot.h>
+#include <linux/slab.h>
+
+#define TH1520_AON_REBOOT_PRIORITY 200
+
+struct th1520_aon_msg_empty_body {
+ struct th1520_aon_rpc_msg_hdr hdr;
+ u16 reserved[12];
+} __packed __aligned(1);
+
+static int th1520_aon_pwroff_handler(struct sys_off_data *data)
+{
+ struct th1520_aon_chan *aon_chan = data->cb_data;
+ struct th1520_aon_msg_empty_body msg = {};
+
+ msg.hdr.svc = TH1520_AON_RPC_SVC_WDG;
+ msg.hdr.func = TH1520_AON_WDG_FUNC_POWER_OFF;
+ msg.hdr.size = TH1520_AON_RPC_MSG_NUM;
+
+ th1520_aon_call_rpc(aon_chan, &msg);
+
+ return NOTIFY_DONE;
+}
+
+static int th1520_aon_restart_handler(struct sys_off_data *data)
+{
+ struct th1520_aon_chan *aon_chan = data->cb_data;
+ struct th1520_aon_msg_empty_body msg = {};
+
+ msg.hdr.svc = TH1520_AON_RPC_SVC_WDG;
+ msg.hdr.func = TH1520_AON_WDG_FUNC_RESTART;
+ msg.hdr.size = TH1520_AON_RPC_MSG_NUM;
+
+ th1520_aon_call_rpc(aon_chan, &msg);
+
+ return NOTIFY_DONE;
+}
+
+static int th1520_aon_reboot_probe(struct auxiliary_device *adev,
+ const struct auxiliary_device_id *id)
+{
+ struct device *dev = &adev->dev;
+ int ret;
+
+ /* Expect struct th1520_aon_chan to be passed via platform_data */
+ ret = devm_register_sys_off_handler(dev, SYS_OFF_MODE_POWER_OFF,
+ TH1520_AON_REBOOT_PRIORITY,
+ th1520_aon_pwroff_handler,
+ adev->dev.platform_data);
+
+ if (ret) {
+ dev_err(dev, "Failed to register power off handler\n");
+ return ret;
+ }
+
+ ret = devm_register_sys_off_handler(dev, SYS_OFF_MODE_RESTART,
+ TH1520_AON_REBOOT_PRIORITY,
+ th1520_aon_restart_handler,
+ adev->dev.platform_data);
+
+ if (ret) {
+ dev_err(dev, "Failed to register restart handler\n");
+ return ret;
+ }
+
+ return 0;
+}
+
+static const struct auxiliary_device_id th1520_aon_reboot_id_table[] = {
+ { .name = "th1520_pm_domains.reboot" },
+ {},
+};
+MODULE_DEVICE_TABLE(auxiliary, th1520_aon_reboot_id_table);
+
+static struct auxiliary_driver th1520_aon_reboot_driver = {
+ .driver = {
+ .name = "th1520-aon-reboot",
+ },
+ .probe = th1520_aon_reboot_probe,
+ .id_table = th1520_aon_reboot_id_table,
+};
+module_auxiliary_driver(th1520_aon_reboot_driver);
+
+MODULE_AUTHOR("Icenowy Zheng <uwu@icenowy.me>");
+MODULE_DESCRIPTION("T-HEAD TH1520 AON-firmware-based reboot driver");
+MODULE_LICENSE("GPL");
--
2.50.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] pmdomain: thead: create auxiliary device for rebooting
2025-08-18 7:49 [PATCH 0/2] Poweroff/reboot support for TH1520 via AON Icenowy Zheng
2025-08-18 7:49 ` [PATCH 1/2] driver: reset: th1520-aon: add driver for poweroff/reboot via AON FW Icenowy Zheng
@ 2025-08-18 7:49 ` Icenowy Zheng
2025-08-18 9:55 ` Troy Mitchell
2025-09-04 10:14 ` Ulf Hansson
1 sibling, 2 replies; 6+ messages in thread
From: Icenowy Zheng @ 2025-08-18 7:49 UTC (permalink / raw)
To: Drew Fustini, Guo Ren, Fu Wei, Michal Wilczynski, Ulf Hansson,
Sebastian Reichel
Cc: Han Gao, Yao Zi, linux-kernel, linux-riscv, linux-pm,
Icenowy Zheng
The reboot / power off operations require communication with the AON
firmware too.
As the driver is already present, create an auxiliary device with name
"reboot" to match that driver, and pass the AON channel by using
platform_data.
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
---
drivers/pmdomain/thead/th1520-pm-domains.c | 35 ++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
diff --git a/drivers/pmdomain/thead/th1520-pm-domains.c b/drivers/pmdomain/thead/th1520-pm-domains.c
index 9040b698e7f7f..8285f552897b0 100644
--- a/drivers/pmdomain/thead/th1520-pm-domains.c
+++ b/drivers/pmdomain/thead/th1520-pm-domains.c
@@ -129,12 +129,39 @@ static void th1520_pd_init_all_off(struct generic_pm_domain **domains,
}
}
-static void th1520_pd_pwrseq_unregister_adev(void *adev)
+static void th1520_pd_unregister_adev(void *adev)
{
auxiliary_device_delete(adev);
auxiliary_device_uninit(adev);
}
+static int th1520_pd_reboot_init(struct device *dev, struct th1520_aon_chan *aon_chan)
+{
+ struct auxiliary_device *adev;
+ int ret;
+
+ adev = devm_kzalloc(dev, sizeof(*adev), GFP_KERNEL);
+ if (!adev)
+ return -ENOMEM;
+
+ adev->name = "reboot";
+ adev->dev.parent = dev;
+ adev->dev.platform_data = aon_chan;
+
+ ret = auxiliary_device_init(adev);
+ if (ret)
+ return ret;
+
+ ret = auxiliary_device_add(adev);
+ if (ret) {
+ auxiliary_device_uninit(adev);
+ return ret;
+ }
+
+ return devm_add_action_or_reset(dev, th1520_pd_unregister_adev,
+ adev);
+}
+
static int th1520_pd_pwrseq_gpu_init(struct device *dev)
{
struct auxiliary_device *adev;
@@ -169,7 +196,7 @@ static int th1520_pd_pwrseq_gpu_init(struct device *dev)
return ret;
}
- return devm_add_action_or_reset(dev, th1520_pd_pwrseq_unregister_adev,
+ return devm_add_action_or_reset(dev, th1520_pd_unregister_adev,
adev);
}
@@ -235,6 +262,10 @@ static int th1520_pd_probe(struct platform_device *pdev)
if (ret)
goto err_clean_provider;
+ ret = th1520_pd_reboot_init(dev, aon_chan);
+ if (ret)
+ goto err_clean_provider;
+
return 0;
err_clean_provider:
--
2.50.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] driver: reset: th1520-aon: add driver for poweroff/reboot via AON FW
2025-08-18 7:49 ` [PATCH 1/2] driver: reset: th1520-aon: add driver for poweroff/reboot via AON FW Icenowy Zheng
@ 2025-08-18 9:43 ` Yao Zi
0 siblings, 0 replies; 6+ messages in thread
From: Yao Zi @ 2025-08-18 9:43 UTC (permalink / raw)
To: Icenowy Zheng, Drew Fustini, Guo Ren, Fu Wei, Michal Wilczynski,
Ulf Hansson, Sebastian Reichel
Cc: Han Gao, linux-kernel, linux-riscv, linux-pm
On Mon, Aug 18, 2025 at 03:49:05PM +0800, Icenowy Zheng wrote:
> This driver implements poweroff/reboot support for T-Head TH1520 SoCs
> running the AON firmware by sending a message to the AON firmware's WDG
> part.
>
> This is a auxiliary device driver, and expects the AON channel to be
> passed via the platform_data of the auxiliary device.
>
> Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
> ---
> MAINTAINERS | 1 +
> drivers/power/reset/Kconfig | 7 ++
> drivers/power/reset/Makefile | 1 +
> drivers/power/reset/th1520-aon-reboot.c | 98 +++++++++++++++++++++++++
> 4 files changed, 107 insertions(+)
> create mode 100644 drivers/power/reset/th1520-aon-reboot.c
...
> diff --git a/drivers/power/reset/th1520-aon-reboot.c b/drivers/power/reset/th1520-aon-reboot.c
> new file mode 100644
> index 0000000000000..8256c1703ebe8
> --- /dev/null
> +++ b/drivers/power/reset/th1520-aon-reboot.c
> @@ -0,0 +1,98 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * T-HEAD TH1520 AON Firmware Reboot Driver
> + *
> + * Copyright (c) 2025 Icenowy Zheng <uwu@icenowy.me>
> + */
> +
> +#include <linux/auxiliary_bus.h>
> +#include <linux/firmware/thead/thead,th1520-aon.h>
> +#include <linux/module.h>
> +#include <linux/notifier.h>
> +#include <linux/of.h>
> +#include <linux/reboot.h>
> +#include <linux/slab.h>
> +
> +#define TH1520_AON_REBOOT_PRIORITY 200
> +
> +struct th1520_aon_msg_empty_body {
> + struct th1520_aon_rpc_msg_hdr hdr;
> + u16 reserved[12];
> +} __packed __aligned(1);
> +
> +static int th1520_aon_pwroff_handler(struct sys_off_data *data)
> +{
> + struct th1520_aon_chan *aon_chan = data->cb_data;
> + struct th1520_aon_msg_empty_body msg = {};
> +
> + msg.hdr.svc = TH1520_AON_RPC_SVC_WDG;
> + msg.hdr.func = TH1520_AON_WDG_FUNC_POWER_OFF;
> + msg.hdr.size = TH1520_AON_RPC_MSG_NUM;
> +
> + th1520_aon_call_rpc(aon_chan, &msg);
It's possible for th1520_aon_call_rpc() to fail. Should we check for its
return value and emit a warning/error if it fails? Though in case of
failure there may not be much we could do...
> + return NOTIFY_DONE;
> +}
Best regards,
Yao Zi
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] pmdomain: thead: create auxiliary device for rebooting
2025-08-18 7:49 ` [PATCH 2/2] pmdomain: thead: create auxiliary device for rebooting Icenowy Zheng
@ 2025-08-18 9:55 ` Troy Mitchell
2025-09-04 10:14 ` Ulf Hansson
1 sibling, 0 replies; 6+ messages in thread
From: Troy Mitchell @ 2025-08-18 9:55 UTC (permalink / raw)
To: Icenowy Zheng, Drew Fustini, Guo Ren, Fu Wei, Michal Wilczynski,
Ulf Hansson, Sebastian Reichel
Cc: Han Gao, Yao Zi, linux-kernel, linux-riscv, linux-pm,
Troy Mitchell
On Mon, Aug 18, 2025 at 03:49:06PM +0800, Icenowy Zheng wrote:
> The reboot / power off operations require communication with the AON
> firmware too.
>
> As the driver is already present, create an auxiliary device with name
> "reboot" to match that driver, and pass the AON channel by using
> platform_data.
>
> Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Acked-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
Best regards,
Troy
> ---
> drivers/pmdomain/thead/th1520-pm-domains.c | 35 ++++++++++++++++++++--
> 1 file changed, 33 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pmdomain/thead/th1520-pm-domains.c b/drivers/pmdomain/thead/th1520-pm-domains.c
> index 9040b698e7f7f..8285f552897b0 100644
> --- a/drivers/pmdomain/thead/th1520-pm-domains.c
> +++ b/drivers/pmdomain/thead/th1520-pm-domains.c
> @@ -129,12 +129,39 @@ static void th1520_pd_init_all_off(struct generic_pm_domain **domains,
> }
> }
>
> -static void th1520_pd_pwrseq_unregister_adev(void *adev)
> +static void th1520_pd_unregister_adev(void *adev)
> {
> auxiliary_device_delete(adev);
> auxiliary_device_uninit(adev);
> }
>
> +static int th1520_pd_reboot_init(struct device *dev, struct th1520_aon_chan *aon_chan)
> +{
> + struct auxiliary_device *adev;
> + int ret;
> +
> + adev = devm_kzalloc(dev, sizeof(*adev), GFP_KERNEL);
> + if (!adev)
> + return -ENOMEM;
> +
> + adev->name = "reboot";
> + adev->dev.parent = dev;
> + adev->dev.platform_data = aon_chan;
> +
> + ret = auxiliary_device_init(adev);
> + if (ret)
> + return ret;
> +
> + ret = auxiliary_device_add(adev);
> + if (ret) {
> + auxiliary_device_uninit(adev);
> + return ret;
> + }
> +
> + return devm_add_action_or_reset(dev, th1520_pd_unregister_adev,
> + adev);
> +}
> +
> static int th1520_pd_pwrseq_gpu_init(struct device *dev)
> {
> struct auxiliary_device *adev;
> @@ -169,7 +196,7 @@ static int th1520_pd_pwrseq_gpu_init(struct device *dev)
> return ret;
> }
>
> - return devm_add_action_or_reset(dev, th1520_pd_pwrseq_unregister_adev,
> + return devm_add_action_or_reset(dev, th1520_pd_unregister_adev,
> adev);
> }
>
> @@ -235,6 +262,10 @@ static int th1520_pd_probe(struct platform_device *pdev)
> if (ret)
> goto err_clean_provider;
>
> + ret = th1520_pd_reboot_init(dev, aon_chan);
> + if (ret)
> + goto err_clean_provider;
> +
> return 0;
>
> err_clean_provider:
> --
> 2.50.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] pmdomain: thead: create auxiliary device for rebooting
2025-08-18 7:49 ` [PATCH 2/2] pmdomain: thead: create auxiliary device for rebooting Icenowy Zheng
2025-08-18 9:55 ` Troy Mitchell
@ 2025-09-04 10:14 ` Ulf Hansson
1 sibling, 0 replies; 6+ messages in thread
From: Ulf Hansson @ 2025-09-04 10:14 UTC (permalink / raw)
To: Icenowy Zheng
Cc: Drew Fustini, Guo Ren, Fu Wei, Michal Wilczynski,
Sebastian Reichel, Han Gao, Yao Zi, linux-kernel, linux-riscv,
linux-pm
On Mon, 18 Aug 2025 at 09:49, Icenowy Zheng <uwu@icenowy.me> wrote:
>
> The reboot / power off operations require communication with the AON
> firmware too.
>
> As the driver is already present, create an auxiliary device with name
> "reboot" to match that driver, and pass the AON channel by using
> platform_data.
>
> Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
> ---
> drivers/pmdomain/thead/th1520-pm-domains.c | 35 ++++++++++++++++++++--
> 1 file changed, 33 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pmdomain/thead/th1520-pm-domains.c b/drivers/pmdomain/thead/th1520-pm-domains.c
> index 9040b698e7f7f..8285f552897b0 100644
> --- a/drivers/pmdomain/thead/th1520-pm-domains.c
> +++ b/drivers/pmdomain/thead/th1520-pm-domains.c
> @@ -129,12 +129,39 @@ static void th1520_pd_init_all_off(struct generic_pm_domain **domains,
> }
> }
>
> -static void th1520_pd_pwrseq_unregister_adev(void *adev)
> +static void th1520_pd_unregister_adev(void *adev)
> {
> auxiliary_device_delete(adev);
> auxiliary_device_uninit(adev);
> }
>
> +static int th1520_pd_reboot_init(struct device *dev, struct th1520_aon_chan *aon_chan)
> +{
> + struct auxiliary_device *adev;
> + int ret;
> +
> + adev = devm_kzalloc(dev, sizeof(*adev), GFP_KERNEL);
> + if (!adev)
> + return -ENOMEM;
> +
> + adev->name = "reboot";
> + adev->dev.parent = dev;
> + adev->dev.platform_data = aon_chan;
> +
> + ret = auxiliary_device_init(adev);
> + if (ret)
> + return ret;
> +
> + ret = auxiliary_device_add(adev);
> + if (ret) {
> + auxiliary_device_uninit(adev);
> + return ret;
> + }
> +
> + return devm_add_action_or_reset(dev, th1520_pd_unregister_adev,
> + adev);
We have devm_auxiliary_device_create() now, I suggest we use that instead.
That said, I think it would make sense to convert the pwrseq-gpu
auxiliary device to be registered with devm_auxiliary_device_create()
too, but that's a separate change, of course.
> +}
> +
> static int th1520_pd_pwrseq_gpu_init(struct device *dev)
> {
> struct auxiliary_device *adev;
> @@ -169,7 +196,7 @@ static int th1520_pd_pwrseq_gpu_init(struct device *dev)
> return ret;
> }
>
> - return devm_add_action_or_reset(dev, th1520_pd_pwrseq_unregister_adev,
> + return devm_add_action_or_reset(dev, th1520_pd_unregister_adev,
> adev);
> }
>
> @@ -235,6 +262,10 @@ static int th1520_pd_probe(struct platform_device *pdev)
> if (ret)
> goto err_clean_provider;
>
> + ret = th1520_pd_reboot_init(dev, aon_chan);
> + if (ret)
> + goto err_clean_provider;
> +
> return 0;
>
> err_clean_provider:
> --
> 2.50.1
>
Otherwise this looks good to me!
Kind regards
Uffe
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-09-04 10:15 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-18 7:49 [PATCH 0/2] Poweroff/reboot support for TH1520 via AON Icenowy Zheng
2025-08-18 7:49 ` [PATCH 1/2] driver: reset: th1520-aon: add driver for poweroff/reboot via AON FW Icenowy Zheng
2025-08-18 9:43 ` Yao Zi
2025-08-18 7:49 ` [PATCH 2/2] pmdomain: thead: create auxiliary device for rebooting Icenowy Zheng
2025-08-18 9:55 ` Troy Mitchell
2025-09-04 10:14 ` Ulf Hansson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).