PCI: layerscape: Add suspend/resume for ls1043a
authorFrank Li <Frank.Li@nxp.com>
Mon, 4 Dec 2023 16:08:29 +0000 (11:08 -0500)
committerLorenzo Pieralisi <lpieralisi@kernel.org>
Tue, 12 Dec 2023 10:17:25 +0000 (11:17 +0100)
commit27b3bcbf8a797d3b18c2aa95928fe65a50066159
treea8045cca1b086d3431bd2f1c338f9861b16aa51a
parent762ef94b45d97c220f865f4ea288d2c488c9fd3c
PCI: layerscape: Add suspend/resume for ls1043a

Add suspend/resume support for Layerscape LS1043a.

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-5-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