PCI: imx6: Add workaround for errata ERR051624
[ Upstream commit ce0c43e855c7f652b6351110aaaabf9b521debd7 ] ERR051624: The Controller Without Vaux Cannot Exit L23 Ready Through Beacon or PERST# De-assertion When the auxiliary power is not available, the controller cannot exit from L23 Ready with beacon or PERST# de-assertion when main power is not removed. So the workaround is to set SS_RW_REG_1[SYS_AUX_PWR_DET] to 1. This workaround is required irrespective of whether Vaux is supplied to the link partner or not. Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com> [mani: subject and description rewording] Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Reviewed-by: Frank Li <Frank.Li@nxp.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Link: https://patch.msgid.link/20250416081314.3929794-5-hongxing.zhu@nxp.com Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1d34f7fb7a
commit
519ab9c725
@@ -48,6 +48,8 @@
|
|||||||
#define IMX95_PCIE_SS_RW_REG_0 0xf0
|
#define IMX95_PCIE_SS_RW_REG_0 0xf0
|
||||||
#define IMX95_PCIE_REF_CLKEN BIT(23)
|
#define IMX95_PCIE_REF_CLKEN BIT(23)
|
||||||
#define IMX95_PCIE_PHY_CR_PARA_SEL BIT(9)
|
#define IMX95_PCIE_PHY_CR_PARA_SEL BIT(9)
|
||||||
|
#define IMX95_PCIE_SS_RW_REG_1 0xf4
|
||||||
|
#define IMX95_PCIE_SYS_AUX_PWR_DET BIT(31)
|
||||||
|
|
||||||
#define IMX95_PE0_GEN_CTRL_1 0x1050
|
#define IMX95_PE0_GEN_CTRL_1 0x1050
|
||||||
#define IMX95_PCIE_DEVICE_TYPE GENMASK(3, 0)
|
#define IMX95_PCIE_DEVICE_TYPE GENMASK(3, 0)
|
||||||
@@ -206,6 +208,19 @@ static unsigned int imx_pcie_grp_offset(const struct imx_pcie *imx_pcie)
|
|||||||
|
|
||||||
static int imx95_pcie_init_phy(struct imx_pcie *imx_pcie)
|
static int imx95_pcie_init_phy(struct imx_pcie *imx_pcie)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* ERR051624: The Controller Without Vaux Cannot Exit L23 Ready
|
||||||
|
* Through Beacon or PERST# De-assertion
|
||||||
|
*
|
||||||
|
* When the auxiliary power is not available, the controller
|
||||||
|
* cannot exit from L23 Ready with beacon or PERST# de-assertion
|
||||||
|
* when main power is not removed.
|
||||||
|
*
|
||||||
|
* Workaround: Set SS_RW_REG_1[SYS_AUX_PWR_DET] to 1.
|
||||||
|
*/
|
||||||
|
regmap_set_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_SS_RW_REG_1,
|
||||||
|
IMX95_PCIE_SYS_AUX_PWR_DET);
|
||||||
|
|
||||||
regmap_update_bits(imx_pcie->iomuxc_gpr,
|
regmap_update_bits(imx_pcie->iomuxc_gpr,
|
||||||
IMX95_PCIE_SS_RW_REG_0,
|
IMX95_PCIE_SS_RW_REG_0,
|
||||||
IMX95_PCIE_PHY_CR_PARA_SEL,
|
IMX95_PCIE_PHY_CR_PARA_SEL,
|
||||||
|
|||||||
Reference in New Issue
Block a user