mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v1 0/2] Enable PCIe WAKE# as a system wake source on Tegra234
@ 2026-09-07 11:31 Manikanta Maddireddy
  2026-09-07 11:31 ` [PATCH v1 1/2] soc/tegra: pmc: Add PCIe wake event for Tegra234 Manikanta Maddireddy
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Manikanta Maddireddy @ 2026-09-07 11:31 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Prathamesh Shete
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
	linux-tegra, linux-kernel, Manikanta Maddireddy

The P3768 carrier board used by Jetson Orin NX and Orin Nano routes the
PCIe WAKE# signal to Tegra234 main GPIO L.2. Nothing in the kernel
currently describes that signal, so a suspended system cannot be woken
by a PCIe endpoint.

This series wires it up in two steps.

Patch 1 adds the PMC wake event mapping for GPIO L.2. This is the piece
that lets the GPIO interrupt be armed as a system wake source during
suspend, rather than being treated as an ordinary interrupt that is
masked along with the rest of the GPIO controller.

Patch 2 describes the signal in device tree, on the root port of the C8
controller. C8 is the controller with the onboard Ethernet NIC on this
carrier, so describing WAKE# there is what makes wake-on-LAN usable.
The property is consumed by the generic PCI core in
pci_configure_of_wake_gpio(), which looks it up on the OF node of the
PCI device itself, so no controller driver change is needed.

The two patches touch different subsystems but are only useful together,
so they are posted as one series. Patch 2 depends on patch 1 to have any
effect.

Testing:

  - Verification:
    - Verified suspend-to-RAM functionality with no spurious pending
      wake sources observed.
    - Verified wake up through GPIO L.2 using an Ethernet magic packet.
    - Verified the reported wake source after resume.
    - Verified that regular Ethernet traffic does not trigger an
      unintended wake-up.
    - Confirmed Ethernet connectivity and normal network operation
      after resume.
    - Repeated multiple suspend/resume cycles to verify consistent
      behavior.
  - make ARCH=arm64 CHECK_DTBS=y is clean for the two affected boards,
    tegra234-p3768-0000+p3767-0000 and -0005, with dtschema 2026.6.
  - checkpatch --strict reports no issues on either patch.

Note: the series is based on the linux-next 20260817 snapshot rather
than a maintainer tree; see the base-commit trailer below. Happy to
rebase onto whichever tree you prefer.

Manikanta Maddireddy (2):
  soc/tegra: pmc: Add PCIe wake event for Tegra234
  arm64: tegra: Add PCIe wake GPIO for Jetson Orin NX/Nano

 .../boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi     | 10 ++++++++++
 drivers/soc/tegra/pmc.c                                |  1 +
 2 files changed, 11 insertions(+)


base-commit: e6664f2b33db9b6811eb4cec109f06cb2b4f458d
-- 
2.34.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v1 1/2] soc/tegra: pmc: Add PCIe wake event for Tegra234
  2026-09-07 11:31 [PATCH v1 0/2] Enable PCIe WAKE# as a system wake source on Tegra234 Manikanta Maddireddy
@ 2026-09-07 11:31 ` Manikanta Maddireddy
  2026-09-07 11:31 ` [PATCH v1 2/2] arm64: tegra: Add PCIe wake GPIO for Jetson Orin NX/Nano Manikanta Maddireddy
  2026-10-02  8:21 ` [PATCH v1 0/2] Enable PCIe WAKE# as a system wake source on Tegra234 Thierry Reding
  2 siblings, 0 replies; 4+ messages in thread
From: Manikanta Maddireddy @ 2026-09-07 11:31 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Prathamesh Shete
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
	linux-tegra, linux-kernel, Manikanta Maddireddy

GPIO L.2 is used as the PCIe WAKE# signal on Tegra234 platforms.

Add the PMC wake event mapping so the GPIO interrupt can be armed
as a system wake source.

Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
---
 drivers/soc/tegra/pmc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
index 41ed716d5857..0ed0a928a7b2 100644
--- a/drivers/soc/tegra/pmc.c
+++ b/drivers/soc/tegra/pmc.c
@@ -4421,6 +4421,7 @@ static const char * const tegra234_reset_sources[] = {
 };
 
 static const struct tegra_wake_event tegra234_wake_events[] = {
+	TEGRA_WAKE_GPIO("pcie-wake", 1, 0, TEGRA234_MAIN_GPIO(L, 2)),
 	TEGRA_WAKE_GPIO("sd-wake", 8, 0, TEGRA234_MAIN_GPIO(G, 7)),
 	TEGRA_WAKE_GPIO("eqos", 20, 0, TEGRA234_MAIN_GPIO(G, 4)),
 	TEGRA_WAKE_IRQ("pmu", 24, 209),
-- 
2.34.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v1 2/2] arm64: tegra: Add PCIe wake GPIO for Jetson Orin NX/Nano
  2026-09-07 11:31 [PATCH v1 0/2] Enable PCIe WAKE# as a system wake source on Tegra234 Manikanta Maddireddy
  2026-09-07 11:31 ` [PATCH v1 1/2] soc/tegra: pmc: Add PCIe wake event for Tegra234 Manikanta Maddireddy
@ 2026-09-07 11:31 ` Manikanta Maddireddy
  2026-10-02  8:21 ` [PATCH v1 0/2] Enable PCIe WAKE# as a system wake source on Tegra234 Thierry Reding
  2 siblings, 0 replies; 4+ messages in thread
From: Manikanta Maddireddy @ 2026-09-07 11:31 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Prathamesh Shete
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
	linux-tegra, linux-kernel, Manikanta Maddireddy

The C8 PCIe controller on the P3768 carrier has WAKE# wired to main
GPIO L.2.

Describe the signal on the root port so PCIe devices can use it as a
wake source, enabling wake-on-LAN support.

Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
---
 .../boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi     | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi b/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi
index 41821354bbda..2af32613b16c 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi
@@ -163,6 +163,16 @@ pcie@140a0000 {
 
 			vddio-pex-ctl-supply = <&vdd_1v8_ao>;
 			vpcie3v3-supply = <&vdd_3v3_pcie>;
+
+			pci@0,0 {
+				reg = <0x0000 0 0 0 0>;
+				device_type = "pci";
+				#address-cells = <3>;
+				#size-cells = <2>;
+				ranges;
+
+				wake-gpios = <&gpio TEGRA234_MAIN_GPIO(L, 2) GPIO_ACTIVE_LOW>;
+			};
 		};
 
 		/* C1 - M.2 Key-E */
-- 
2.34.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1 0/2] Enable PCIe WAKE# as a system wake source on Tegra234
  2026-09-07 11:31 [PATCH v1 0/2] Enable PCIe WAKE# as a system wake source on Tegra234 Manikanta Maddireddy
  2026-09-07 11:31 ` [PATCH v1 1/2] soc/tegra: pmc: Add PCIe wake event for Tegra234 Manikanta Maddireddy
  2026-09-07 11:31 ` [PATCH v1 2/2] arm64: tegra: Add PCIe wake GPIO for Jetson Orin NX/Nano Manikanta Maddireddy
@ 2026-10-02  8:21 ` Thierry Reding
  2 siblings, 0 replies; 4+ messages in thread
From: Thierry Reding @ 2026-10-02  8:21 UTC (permalink / raw)
  To: Manikanta Maddireddy
  Cc: Jonathan Hunter, Prathamesh Shete, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, devicetree, linux-tegra,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2546 bytes --]

On Mon, Sep 07, 2026 at 05:01:32PM +0530, Manikanta Maddireddy wrote:
> The P3768 carrier board used by Jetson Orin NX and Orin Nano routes the
> PCIe WAKE# signal to Tegra234 main GPIO L.2. Nothing in the kernel
> currently describes that signal, so a suspended system cannot be woken
> by a PCIe endpoint.
> 
> This series wires it up in two steps.
> 
> Patch 1 adds the PMC wake event mapping for GPIO L.2. This is the piece
> that lets the GPIO interrupt be armed as a system wake source during
> suspend, rather than being treated as an ordinary interrupt that is
> masked along with the rest of the GPIO controller.
> 
> Patch 2 describes the signal in device tree, on the root port of the C8
> controller. C8 is the controller with the onboard Ethernet NIC on this
> carrier, so describing WAKE# there is what makes wake-on-LAN usable.
> The property is consumed by the generic PCI core in
> pci_configure_of_wake_gpio(), which looks it up on the OF node of the
> PCI device itself, so no controller driver change is needed.
> 
> The two patches touch different subsystems but are only useful together,
> so they are posted as one series. Patch 2 depends on patch 1 to have any
> effect.
> 
> Testing:
> 
>   - Verification:
>     - Verified suspend-to-RAM functionality with no spurious pending
>       wake sources observed.
>     - Verified wake up through GPIO L.2 using an Ethernet magic packet.
>     - Verified the reported wake source after resume.
>     - Verified that regular Ethernet traffic does not trigger an
>       unintended wake-up.
>     - Confirmed Ethernet connectivity and normal network operation
>       after resume.
>     - Repeated multiple suspend/resume cycles to verify consistent
>       behavior.
>   - make ARCH=arm64 CHECK_DTBS=y is clean for the two affected boards,
>     tegra234-p3768-0000+p3767-0000 and -0005, with dtschema 2026.6.
>   - checkpatch --strict reports no issues on either patch.
> 
> Note: the series is based on the linux-next 20260817 snapshot rather
> than a maintainer tree; see the base-commit trailer below. Happy to
> rebase onto whichever tree you prefer.
> 
> Manikanta Maddireddy (2):
>   soc/tegra: pmc: Add PCIe wake event for Tegra234
>   arm64: tegra: Add PCIe wake GPIO for Jetson Orin NX/Nano
> 
>  .../boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi     | 10 ++++++++++
>  drivers/soc/tegra/pmc.c                                |  1 +
>  2 files changed, 11 insertions(+)

Both patches applied, thanks.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-02  8:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-07 11:31 [PATCH v1 0/2] Enable PCIe WAKE# as a system wake source on Tegra234 Manikanta Maddireddy
2026-09-07 11:31 ` [PATCH v1 1/2] soc/tegra: pmc: Add PCIe wake event for Tegra234 Manikanta Maddireddy
2026-09-07 11:31 ` [PATCH v1 2/2] arm64: tegra: Add PCIe wake GPIO for Jetson Orin NX/Nano Manikanta Maddireddy
2026-10-02  8:21 ` [PATCH v1 0/2] Enable PCIe WAKE# as a system wake source on Tegra234 Thierry Reding

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®