PCI: layerscape: Add suspend/resume for ls1021a
authorFrank Li <Frank.Li@nxp.com>
Mon, 4 Dec 2023 16:08:27 +0000 (11:08 -0500)
committerLorenzo Pieralisi <lpieralisi@kernel.org>
Tue, 12 Dec 2023 10:13:30 +0000 (11:13 +0100)
commit6f8a41ba26230f6c04edad7daa25bd1c254c83b4
tree5548ee51c9e1d5c797dd81d95a223bcabfa6edc4
parent123971a193d9ac70b207c24c9f4ed6908b837bb6
PCI: layerscape: Add suspend/resume for ls1021a

Add suspend/resume support for Layerscape LS1021a.

In the suspend path, PME_Turn_Off message is sent to the endpoint to
transition the link to L2/L3_Ready state. In this SoC, there is no way to
check if the controller has received the PME_To_Ack from the endpoint or
not. So to be on the safer side, the driver just waits for
PCIE_PME_TO_L2_TIMEOUT_US before asserting the SoC specific PMXMTTURNOFF
bit to complete the PME_Turn_Off handshake. Then the link would enter L2/L3
state depending on the VAUX supply.

In the resume path, the link is brought back from L2 to L0 by doing a
software reset.

Link: https://lore.kernel.org/r/20231204160829.2498703-3-Frank.Li@nxp.com
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Acked-by: Roy Zang <Roy.Zang@nxp.com>
drivers/pci/controller/dwc/pci-layerscape.c