Skip to content

Commit ce0c43e

Browse files
Richard ZhuMani-Sadhasivam
authored andcommitted
PCI: imx6: Add workaround for errata ERR051624
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 <[email protected]> [mani: subject and description rewording] Signed-off-by: Manivannan Sadhasivam <[email protected]> Reviewed-by: Frank Li <[email protected]> Reviewed-by: Manivannan Sadhasivam <[email protected]> Link: https://patch.msgid.link/[email protected]
1 parent 47f54a9 commit ce0c43e

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

drivers/pci/controller/dwc/pci-imx6.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848
#define IMX95_PCIE_SS_RW_REG_0 0xf0
4949
#define IMX95_PCIE_REF_CLKEN BIT(23)
5050
#define IMX95_PCIE_PHY_CR_PARA_SEL BIT(9)
51+
#define IMX95_PCIE_SS_RW_REG_1 0xf4
52+
#define IMX95_PCIE_SYS_AUX_PWR_DET BIT(31)
5153

5254
#define IMX95_PE0_GEN_CTRL_1 0x1050
5355
#define IMX95_PCIE_DEVICE_TYPE GENMASK(3, 0)
@@ -227,6 +229,19 @@ static unsigned int imx_pcie_grp_offset(const struct imx_pcie *imx_pcie)
227229

228230
static int imx95_pcie_init_phy(struct imx_pcie *imx_pcie)
229231
{
232+
/*
233+
* ERR051624: The Controller Without Vaux Cannot Exit L23 Ready
234+
* Through Beacon or PERST# De-assertion
235+
*
236+
* When the auxiliary power is not available, the controller
237+
* cannot exit from L23 Ready with beacon or PERST# de-assertion
238+
* when main power is not removed.
239+
*
240+
* Workaround: Set SS_RW_REG_1[SYS_AUX_PWR_DET] to 1.
241+
*/
242+
regmap_set_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_SS_RW_REG_1,
243+
IMX95_PCIE_SYS_AUX_PWR_DET);
244+
230245
regmap_update_bits(imx_pcie->iomuxc_gpr,
231246
IMX95_PCIE_SS_RW_REG_0,
232247
IMX95_PCIE_PHY_CR_PARA_SEL,

0 commit comments

Comments
 (0)