From c3a35eed3e102b399da4f4480eb47ec9f7b46b7d Mon Sep 17 00:00:00 2001 From: Heinrich Toews Date: Thu, 2 Apr 2026 14:45:36 +0200 Subject: [PATCH] remoteproc: ti_k3_m4: add ti,no-auto-boot DT property support Add a new optional boolean device tree property 'ti,no-auto-boot' for the TI K3 M4F remoteproc driver. When present, this property disables automatic firmware loading and booting at probe time by setting the rproc->auto_boot flag to false. This is useful in scenarios where the M4F firmware depends on resources that are only available after the filesystem is mounted (e.g. firmware files in /lib/firmware). In such cases, an external driver such as 'wago,m4-led-wrapper' can explicitly call rproc_boot() once all dependencies are satisfied. The corresponding YAML binding documentation is updated to describe the new property and its intended use case. Signed-off-by: Heinrich Toews --- .../devicetree/bindings/remoteproc/ti,k3-m4f-rproc.yaml | 8 ++++++++ drivers/remoteproc/ti_k3_m4_remoteproc.c | 1 + 2 files changed, 9 insertions(+) diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-m4f-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-m4f-rproc.yaml index 2bd0752b6ba9..176d9a7dde61 100644 --- a/Documentation/devicetree/bindings/remoteproc/ti,k3-m4f-rproc.yaml +++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-m4f-rproc.yaml @@ -50,6 +50,14 @@ properties: maxItems: 1 description: Name of firmware to load for the M4F core + ti,no-auto-boot: + type: boolean + description: + If present, the remoteproc will not automatically load and boot the + M4F firmware at probe time. Firmware loading is then delegated to an + external driver (e.g. wago,m4-led-wrapper) that calls rproc_boot() + explicitly once the filesystem is available. + mboxes: description: OMAP Mailbox specifier denoting the sub-mailbox, to be used for diff --git a/drivers/remoteproc/ti_k3_m4_remoteproc.c b/drivers/remoteproc/ti_k3_m4_remoteproc.c index a12df3c59826..c97ade021c22 100644 --- a/drivers/remoteproc/ti_k3_m4_remoteproc.c +++ b/drivers/remoteproc/ti_k3_m4_remoteproc.c @@ -899,6 +899,7 @@ static int k3_m4_rproc_probe(struct platform_device *pdev) rproc->has_iommu = false; rproc->recovery_disabled = true; + rproc->auto_boot = !of_property_read_bool(np, "ti,no-auto-boot"); if (data->uses_lreset) { rproc->ops->prepare = k3_m4_rproc_prepare; rproc->ops->unprepare = k3_m4_rproc_unprepare;