Symbol: imx_pcie
drivers/pci/controller/dwc/pci-imx6.c
1025
ret = imx_pcie_wait_for_speed_change(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1040
imx_pcie_reset_phy(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1052
static int imx_pcie_add_lut(struct imx_pcie *imx_pcie, u16 rid, u8 sid)
drivers/pci/controller/dwc/pci-imx6.c
1054
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
1065
guard(mutex)(&imx_pcie->lock);
drivers/pci/controller/dwc/pci-imx6.c
1073
regmap_write(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
1075
regmap_read(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA1, &data1);
drivers/pci/controller/dwc/pci-imx6.c
1083
regmap_read(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA2, &data2);
drivers/pci/controller/dwc/pci-imx6.c
1100
regmap_write(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA1, data1);
drivers/pci/controller/dwc/pci-imx6.c
1102
if (imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE)
drivers/pci/controller/dwc/pci-imx6.c
1107
regmap_write(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA2, data2);
drivers/pci/controller/dwc/pci-imx6.c
1109
regmap_write(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_ACSCTRL, free);
drivers/pci/controller/dwc/pci-imx6.c
1114
static void imx_pcie_remove_lut(struct imx_pcie *imx_pcie, u16 rid)
drivers/pci/controller/dwc/pci-imx6.c
1119
guard(mutex)(&imx_pcie->lock);
drivers/pci/controller/dwc/pci-imx6.c
1122
regmap_write(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
1124
regmap_read(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA2, &data2);
drivers/pci/controller/dwc/pci-imx6.c
1126
regmap_write(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
1128
regmap_write(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
1130
regmap_write(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
1138
static int imx_pcie_add_lut_by_rid(struct imx_pcie *imx_pcie, u32 rid)
drivers/pci/controller/dwc/pci-imx6.c
1140
struct device *dev = imx_pcie->pci->dev;
drivers/pci/controller/dwc/pci-imx6.c
1217
return imx_pcie_add_lut(imx_pcie, rid, sid);
drivers/pci/controller/dwc/pci-imx6.c
1222
struct imx_pcie *imx_pcie = to_imx_pcie(to_dw_pcie_from_pp(bridge->sysdata));
drivers/pci/controller/dwc/pci-imx6.c
1224
return imx_pcie_add_lut_by_rid(imx_pcie, pci_dev_id(pdev));
drivers/pci/controller/dwc/pci-imx6.c
1230
struct imx_pcie *imx_pcie;
drivers/pci/controller/dwc/pci-imx6.c
1232
imx_pcie = to_imx_pcie(to_dw_pcie_from_pp(bridge->sysdata));
drivers/pci/controller/dwc/pci-imx6.c
1233
imx_pcie_remove_lut(imx_pcie, pci_dev_id(pdev));
drivers/pci/controller/dwc/pci-imx6.c
1240
struct imx_pcie *imx_pcie = to_imx_pcie(pci);
drivers/pci/controller/dwc/pci-imx6.c
1243
if (imx_pcie->vpcie) {
drivers/pci/controller/dwc/pci-imx6.c
1244
ret = regulator_enable(imx_pcie->vpcie);
drivers/pci/controller/dwc/pci-imx6.c
125
struct imx_pcie;
drivers/pci/controller/dwc/pci-imx6.c
1252
if (pp->bridge && imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_LUT)) {
drivers/pci/controller/dwc/pci-imx6.c
1257
imx_pcie_assert_core_reset(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1259
if (imx_pcie->drvdata->init_phy)
drivers/pci/controller/dwc/pci-imx6.c
1260
imx_pcie->drvdata->init_phy(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1262
imx_pcie_configure_type(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1264
ret = imx_pcie_clk_enable(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1270
if (imx_pcie->phy) {
drivers/pci/controller/dwc/pci-imx6.c
1271
ret = phy_init(imx_pcie->phy);
drivers/pci/controller/dwc/pci-imx6.c
1277
ret = phy_set_mode_ext(imx_pcie->phy, PHY_MODE_PCIE,
drivers/pci/controller/dwc/pci-imx6.c
1278
imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE ?
drivers/pci/controller/dwc/pci-imx6.c
1285
ret = phy_power_on(imx_pcie->phy);
drivers/pci/controller/dwc/pci-imx6.c
1295
ret = imx_pcie_deassert_core_reset(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1301
if (imx_pcie->drvdata->wait_pll_lock) {
drivers/pci/controller/dwc/pci-imx6.c
1302
ret = imx_pcie->drvdata->wait_pll_lock(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1307
imx_setup_phy_mpll(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1312
phy_power_off(imx_pcie->phy);
drivers/pci/controller/dwc/pci-imx6.c
1314
phy_exit(imx_pcie->phy);
drivers/pci/controller/dwc/pci-imx6.c
1316
imx_pcie_clk_disable(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1318
if (imx_pcie->vpcie)
drivers/pci/controller/dwc/pci-imx6.c
1319
regulator_disable(imx_pcie->vpcie);
drivers/pci/controller/dwc/pci-imx6.c
1326
struct imx_pcie *imx_pcie = to_imx_pcie(pci);
drivers/pci/controller/dwc/pci-imx6.c
1328
if (imx_pcie->phy) {
drivers/pci/controller/dwc/pci-imx6.c
1329
if (phy_power_off(imx_pcie->phy))
drivers/pci/controller/dwc/pci-imx6.c
1331
phy_exit(imx_pcie->phy);
drivers/pci/controller/dwc/pci-imx6.c
1333
imx_pcie_clk_disable(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1335
if (imx_pcie->vpcie)
drivers/pci/controller/dwc/pci-imx6.c
1336
regulator_disable(imx_pcie->vpcie);
drivers/pci/controller/dwc/pci-imx6.c
1342
struct imx_pcie *imx_pcie = to_imx_pcie(pci);
drivers/pci/controller/dwc/pci-imx6.c
1345
if (imx_pcie->drvdata->flags & IMX_PCIE_FLAG_8GT_ECN_ERR051586) {
drivers/pci/controller/dwc/pci-imx6.c
1365
if (dw_pcie_link_up(pci) && imx_pcie->supports_clkreq) {
drivers/pci/controller/dwc/pci-imx6.c
1366
if (imx_pcie->drvdata->clr_clkreq_override)
drivers/pci/controller/dwc/pci-imx6.c
1367
imx_pcie->drvdata->clr_clkreq_override(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1379
struct imx_pcie *imx_pcie = to_imx_pcie(pci);
drivers/pci/controller/dwc/pci-imx6.c
138
int (*init_phy)(struct imx_pcie *pcie);
drivers/pci/controller/dwc/pci-imx6.c
1381
regmap_set_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR12, IMX6SX_GPR12_PCIE_PM_TURN_OFF);
drivers/pci/controller/dwc/pci-imx6.c
1382
regmap_clear_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR12, IMX6SX_GPR12_PCIE_PM_TURN_OFF);
drivers/pci/controller/dwc/pci-imx6.c
139
int (*enable_ref_clk)(struct imx_pcie *pcie, bool enable);
drivers/pci/controller/dwc/pci-imx6.c
140
int (*core_reset)(struct imx_pcie *pcie, bool assert);
drivers/pci/controller/dwc/pci-imx6.c
141
int (*wait_pll_lock)(struct imx_pcie *pcie);
drivers/pci/controller/dwc/pci-imx6.c
142
void (*clr_clkreq_override)(struct imx_pcie *pcie);
drivers/pci/controller/dwc/pci-imx6.c
1475
struct imx_pcie *imx_pcie = to_imx_pcie(pci);
drivers/pci/controller/dwc/pci-imx6.c
1477
return imx_pcie->drvdata->epc_features;
drivers/pci/controller/dwc/pci-imx6.c
1486
static int imx_add_pcie_ep(struct imx_pcie *imx_pcie,
drivers/pci/controller/dwc/pci-imx6.c
1491
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
1499
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_SUPPORT_64BIT))
drivers/pci/controller/dwc/pci-imx6.c
1502
ep->page_size = imx_pcie->drvdata->epc_features->align;
drivers/pci/controller/dwc/pci-imx6.c
1523
static void imx_pcie_msi_save_restore(struct imx_pcie *imx_pcie, bool save)
drivers/pci/controller/dwc/pci-imx6.c
1527
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
1533
imx_pcie->msi_ctrl = val;
drivers/pci/controller/dwc/pci-imx6.c
1536
val = imx_pcie->msi_ctrl;
drivers/pci/controller/dwc/pci-imx6.c
1543
static void imx_pcie_lut_save(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
1549
regmap_write(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_ACSCTRL,
drivers/pci/controller/dwc/pci-imx6.c
1551
regmap_read(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA1, &data1);
drivers/pci/controller/dwc/pci-imx6.c
1552
regmap_read(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA2, &data2);
drivers/pci/controller/dwc/pci-imx6.c
1554
imx_pcie->luts[i].data1 = data1;
drivers/pci/controller/dwc/pci-imx6.c
1555
imx_pcie->luts[i].data2 = data2;
drivers/pci/controller/dwc/pci-imx6.c
1557
imx_pcie->luts[i].data1 = 0;
drivers/pci/controller/dwc/pci-imx6.c
1558
imx_pcie->luts[i].data2 = 0;
drivers/pci/controller/dwc/pci-imx6.c
1563
static void imx_pcie_lut_restore(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
1568
if ((imx_pcie->luts[i].data1 & IMX95_PE0_LUT_VLD) == 0)
drivers/pci/controller/dwc/pci-imx6.c
1571
regmap_write(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA1,
drivers/pci/controller/dwc/pci-imx6.c
1572
imx_pcie->luts[i].data1);
drivers/pci/controller/dwc/pci-imx6.c
1573
regmap_write(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_DATA2,
drivers/pci/controller/dwc/pci-imx6.c
1574
imx_pcie->luts[i].data2);
drivers/pci/controller/dwc/pci-imx6.c
1575
regmap_write(imx_pcie->iomuxc_gpr, IMX95_PE0_LUT_ACSCTRL, i);
drivers/pci/controller/dwc/pci-imx6.c
1581
struct imx_pcie *imx_pcie = dev_get_drvdata(dev);
drivers/pci/controller/dwc/pci-imx6.c
1583
if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_SUPPORTS_SUSPEND))
drivers/pci/controller/dwc/pci-imx6.c
1586
imx_pcie_msi_save_restore(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
1587
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_LUT))
drivers/pci/controller/dwc/pci-imx6.c
1588
imx_pcie_lut_save(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1589
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_BROKEN_SUSPEND)) {
drivers/pci/controller/dwc/pci-imx6.c
1595
imx_pcie_assert_core_reset(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1596
imx_pcie->drvdata->enable_ref_clk(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
1598
return dw_pcie_suspend_noirq(imx_pcie->pci);
drivers/pci/controller/dwc/pci-imx6.c
1607
struct imx_pcie *imx_pcie = dev_get_drvdata(dev);
drivers/pci/controller/dwc/pci-imx6.c
1609
if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_SUPPORTS_SUSPEND))
drivers/pci/controller/dwc/pci-imx6.c
1612
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_BROKEN_SUSPEND)) {
drivers/pci/controller/dwc/pci-imx6.c
1613
ret = imx_pcie->drvdata->enable_ref_clk(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
1616
ret = imx_pcie_deassert_core_reset(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1625
ret = dw_pcie_setup_rc(&imx_pcie->pci->pp);
drivers/pci/controller/dwc/pci-imx6.c
1629
ret = dw_pcie_resume_noirq(imx_pcie->pci);
drivers/pci/controller/dwc/pci-imx6.c
1633
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_LUT))
drivers/pci/controller/dwc/pci-imx6.c
1634
imx_pcie_lut_restore(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1635
imx_pcie_msi_save_restore(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
1649
struct imx_pcie *imx_pcie;
drivers/pci/controller/dwc/pci-imx6.c
1655
imx_pcie = devm_kzalloc(dev, sizeof(*imx_pcie), GFP_KERNEL);
drivers/pci/controller/dwc/pci-imx6.c
1656
if (!imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
1666
imx_pcie->pci = pci;
drivers/pci/controller/dwc/pci-imx6.c
1667
imx_pcie->drvdata = of_device_get_match_data(dev);
drivers/pci/controller/dwc/pci-imx6.c
1669
mutex_init(&imx_pcie->lock);
drivers/pci/controller/dwc/pci-imx6.c
1671
if (imx_pcie->drvdata->ops)
drivers/pci/controller/dwc/pci-imx6.c
1672
pci->pp.ops = imx_pcie->drvdata->ops;
drivers/pci/controller/dwc/pci-imx6.c
1686
imx_pcie->phy_base = devm_ioremap_resource(dev, &res);
drivers/pci/controller/dwc/pci-imx6.c
1687
if (IS_ERR(imx_pcie->phy_base))
drivers/pci/controller/dwc/pci-imx6.c
1688
return PTR_ERR(imx_pcie->phy_base);
drivers/pci/controller/dwc/pci-imx6.c
1692
imx_pcie->reset_gpiod = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
drivers/pci/controller/dwc/pci-imx6.c
1693
if (IS_ERR(imx_pcie->reset_gpiod))
drivers/pci/controller/dwc/pci-imx6.c
1694
return dev_err_probe(dev, PTR_ERR(imx_pcie->reset_gpiod),
drivers/pci/controller/dwc/pci-imx6.c
1696
gpiod_set_consumer_name(imx_pcie->reset_gpiod, "PCIe reset");
drivers/pci/controller/dwc/pci-imx6.c
1699
imx_pcie->num_clks = devm_clk_bulk_get_all(dev, &imx_pcie->clks);
drivers/pci/controller/dwc/pci-imx6.c
1700
if (imx_pcie->num_clks < 0)
drivers/pci/controller/dwc/pci-imx6.c
1701
return dev_err_probe(dev, imx_pcie->num_clks,
drivers/pci/controller/dwc/pci-imx6.c
1703
for (i = 0; i < imx_pcie->num_clks; i++)
drivers/pci/controller/dwc/pci-imx6.c
1704
if (strncmp(imx_pcie->clks[i].id, "extref", 6) == 0)
drivers/pci/controller/dwc/pci-imx6.c
1705
imx_pcie->enable_ext_refclk = true;
drivers/pci/controller/dwc/pci-imx6.c
1707
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_PHYDRV)) {
drivers/pci/controller/dwc/pci-imx6.c
1708
imx_pcie->phy = devm_phy_get(dev, "pcie-phy");
drivers/pci/controller/dwc/pci-imx6.c
1709
if (IS_ERR(imx_pcie->phy))
drivers/pci/controller/dwc/pci-imx6.c
1710
return dev_err_probe(dev, PTR_ERR(imx_pcie->phy),
drivers/pci/controller/dwc/pci-imx6.c
1714
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_APP_RESET)) {
drivers/pci/controller/dwc/pci-imx6.c
1715
imx_pcie->apps_reset = devm_reset_control_get_exclusive(dev, "apps");
drivers/pci/controller/dwc/pci-imx6.c
1716
if (IS_ERR(imx_pcie->apps_reset))
drivers/pci/controller/dwc/pci-imx6.c
1717
return dev_err_probe(dev, PTR_ERR(imx_pcie->apps_reset),
drivers/pci/controller/dwc/pci-imx6.c
1721
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_PHY_RESET)) {
drivers/pci/controller/dwc/pci-imx6.c
1722
imx_pcie->pciephy_reset = devm_reset_control_get_exclusive(dev, "pciephy");
drivers/pci/controller/dwc/pci-imx6.c
1723
if (IS_ERR(imx_pcie->pciephy_reset))
drivers/pci/controller/dwc/pci-imx6.c
1724
return dev_err_probe(dev, PTR_ERR(imx_pcie->pciephy_reset),
drivers/pci/controller/dwc/pci-imx6.c
1728
switch (imx_pcie->drvdata->variant) {
drivers/pci/controller/dwc/pci-imx6.c
1735
imx_pcie->controller_id = domain;
drivers/pci/controller/dwc/pci-imx6.c
1741
if (imx_pcie->drvdata->gpr) {
drivers/pci/controller/dwc/pci-imx6.c
1743
imx_pcie->iomuxc_gpr =
drivers/pci/controller/dwc/pci-imx6.c
1744
syscon_regmap_lookup_by_compatible(imx_pcie->drvdata->gpr);
drivers/pci/controller/dwc/pci-imx6.c
1745
if (IS_ERR(imx_pcie->iomuxc_gpr))
drivers/pci/controller/dwc/pci-imx6.c
1746
return dev_err_probe(dev, PTR_ERR(imx_pcie->iomuxc_gpr),
drivers/pci/controller/dwc/pci-imx6.c
1750
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_SERDES)) {
drivers/pci/controller/dwc/pci-imx6.c
1763
imx_pcie->iomuxc_gpr = devm_regmap_init_mmio(dev, off, &regmap_config);
drivers/pci/controller/dwc/pci-imx6.c
1764
if (IS_ERR(imx_pcie->iomuxc_gpr))
drivers/pci/controller/dwc/pci-imx6.c
1765
return dev_err_probe(dev, PTR_ERR(imx_pcie->iomuxc_gpr),
drivers/pci/controller/dwc/pci-imx6.c
1771
&imx_pcie->tx_deemph_gen1))
drivers/pci/controller/dwc/pci-imx6.c
1772
imx_pcie->tx_deemph_gen1 = 0;
drivers/pci/controller/dwc/pci-imx6.c
1775
&imx_pcie->tx_deemph_gen2_3p5db))
drivers/pci/controller/dwc/pci-imx6.c
1776
imx_pcie->tx_deemph_gen2_3p5db = 0;
drivers/pci/controller/dwc/pci-imx6.c
1779
&imx_pcie->tx_deemph_gen2_6db))
drivers/pci/controller/dwc/pci-imx6.c
1780
imx_pcie->tx_deemph_gen2_6db = 20;
drivers/pci/controller/dwc/pci-imx6.c
1783
&imx_pcie->tx_swing_full))
drivers/pci/controller/dwc/pci-imx6.c
1784
imx_pcie->tx_swing_full = 127;
drivers/pci/controller/dwc/pci-imx6.c
1787
&imx_pcie->tx_swing_low))
drivers/pci/controller/dwc/pci-imx6.c
1788
imx_pcie->tx_swing_low = 127;
drivers/pci/controller/dwc/pci-imx6.c
1793
imx_pcie->supports_clkreq = of_property_read_bool(node, "supports-clkreq");
drivers/pci/controller/dwc/pci-imx6.c
1799
imx_pcie->vpcie = devm_regulator_get_optional(&pdev->dev, "vpcie");
drivers/pci/controller/dwc/pci-imx6.c
1800
if (IS_ERR(imx_pcie->vpcie)) {
drivers/pci/controller/dwc/pci-imx6.c
1801
if (PTR_ERR(imx_pcie->vpcie) != -ENODEV)
drivers/pci/controller/dwc/pci-imx6.c
1802
return PTR_ERR(imx_pcie->vpcie);
drivers/pci/controller/dwc/pci-imx6.c
1803
imx_pcie->vpcie = NULL;
drivers/pci/controller/dwc/pci-imx6.c
1806
imx_pcie->vph = devm_regulator_get_optional(&pdev->dev, "vph");
drivers/pci/controller/dwc/pci-imx6.c
1807
if (IS_ERR(imx_pcie->vph)) {
drivers/pci/controller/dwc/pci-imx6.c
1808
if (PTR_ERR(imx_pcie->vph) != -ENODEV)
drivers/pci/controller/dwc/pci-imx6.c
1809
return PTR_ERR(imx_pcie->vph);
drivers/pci/controller/dwc/pci-imx6.c
1810
imx_pcie->vph = NULL;
drivers/pci/controller/dwc/pci-imx6.c
1813
platform_set_drvdata(pdev, imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1820
if (imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE) {
drivers/pci/controller/dwc/pci-imx6.c
1821
ret = imx_add_pcie_ep(imx_pcie, pdev);
drivers/pci/controller/dwc/pci-imx6.c
1829
imx_pcie_add_lut_by_rid(imx_pcie, 0);
drivers/pci/controller/dwc/pci-imx6.c
1831
if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_SKIP_L23_READY))
drivers/pci/controller/dwc/pci-imx6.c
1852
struct imx_pcie *imx_pcie = platform_get_drvdata(pdev);
drivers/pci/controller/dwc/pci-imx6.c
1855
imx_pcie_assert_core_reset(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
2082
struct imx_pcie *imx_pcie = to_imx_pcie(pci);
drivers/pci/controller/dwc/pci-imx6.c
2088
if (imx_pcie->drvdata->dbi_length) {
drivers/pci/controller/dwc/pci-imx6.c
2089
dev->cfg_size = imx_pcie->drvdata->dbi_length;
drivers/pci/controller/dwc/pci-imx6.c
237
static unsigned int imx_pcie_grp_offset(const struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
239
WARN_ON(imx_pcie->drvdata->variant != IMX8MQ &&
drivers/pci/controller/dwc/pci-imx6.c
240
imx_pcie->drvdata->variant != IMX8MQ_EP &&
drivers/pci/controller/dwc/pci-imx6.c
241
imx_pcie->drvdata->variant != IMX8MM &&
drivers/pci/controller/dwc/pci-imx6.c
242
imx_pcie->drvdata->variant != IMX8MM_EP &&
drivers/pci/controller/dwc/pci-imx6.c
243
imx_pcie->drvdata->variant != IMX8MP &&
drivers/pci/controller/dwc/pci-imx6.c
244
imx_pcie->drvdata->variant != IMX8MP_EP);
drivers/pci/controller/dwc/pci-imx6.c
245
return imx_pcie->controller_id == 1 ? IOMUXC_GPR16 : IOMUXC_GPR14;
drivers/pci/controller/dwc/pci-imx6.c
248
static int imx95_pcie_init_phy(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
250
bool ext = imx_pcie->enable_ext_refclk;
drivers/pci/controller/dwc/pci-imx6.c
262
regmap_set_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_SS_RW_REG_1,
drivers/pci/controller/dwc/pci-imx6.c
265
regmap_update_bits(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
270
regmap_update_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_PHY_GEN_CTRL,
drivers/pci/controller/dwc/pci-imx6.c
273
regmap_update_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_SS_RW_REG_0,
drivers/pci/controller/dwc/pci-imx6.c
280
static void imx_pcie_configure_type(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
282
const struct imx_pcie_drvdata *drvdata = imx_pcie->drvdata;
drivers/pci/controller/dwc/pci-imx6.c
290
id = imx_pcie->controller_id;
drivers/pci/controller/dwc/pci-imx6.c
303
regmap_update_bits(imx_pcie->iomuxc_gpr, drvdata->mode_off[id], mask, val);
drivers/pci/controller/dwc/pci-imx6.c
306
static int pcie_phy_poll_ack(struct imx_pcie *imx_pcie, bool exp_val)
drivers/pci/controller/dwc/pci-imx6.c
308
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
327
static int pcie_phy_wait_ack(struct imx_pcie *imx_pcie, int addr)
drivers/pci/controller/dwc/pci-imx6.c
329
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
339
ret = pcie_phy_poll_ack(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
346
return pcie_phy_poll_ack(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
350
static int pcie_phy_read(struct imx_pcie *imx_pcie, int addr, u16 *data)
drivers/pci/controller/dwc/pci-imx6.c
352
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
356
ret = pcie_phy_wait_ack(imx_pcie, addr);
drivers/pci/controller/dwc/pci-imx6.c
364
ret = pcie_phy_poll_ack(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
373
return pcie_phy_poll_ack(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
376
static int pcie_phy_write(struct imx_pcie *imx_pcie, int addr, u16 data)
drivers/pci/controller/dwc/pci-imx6.c
378
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
384
ret = pcie_phy_wait_ack(imx_pcie, addr);
drivers/pci/controller/dwc/pci-imx6.c
395
ret = pcie_phy_poll_ack(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
404
ret = pcie_phy_poll_ack(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
413
ret = pcie_phy_poll_ack(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
422
ret = pcie_phy_poll_ack(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
431
static int imx8mq_pcie_init_phy(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
434
regmap_update_bits(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
435
imx_pcie_grp_offset(imx_pcie),
drivers/pci/controller/dwc/pci-imx6.c
443
if (imx_pcie->vph && regulator_get_voltage(imx_pcie->vph) > 3000000)
drivers/pci/controller/dwc/pci-imx6.c
444
regmap_update_bits(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
445
imx_pcie_grp_offset(imx_pcie),
drivers/pci/controller/dwc/pci-imx6.c
452
static int imx_pcie_init_phy(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
454
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR12,
drivers/pci/controller/dwc/pci-imx6.c
458
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR12,
drivers/pci/controller/dwc/pci-imx6.c
461
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR8,
drivers/pci/controller/dwc/pci-imx6.c
463
imx_pcie->tx_deemph_gen1 << 0);
drivers/pci/controller/dwc/pci-imx6.c
464
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR8,
drivers/pci/controller/dwc/pci-imx6.c
466
imx_pcie->tx_deemph_gen2_3p5db << 6);
drivers/pci/controller/dwc/pci-imx6.c
467
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR8,
drivers/pci/controller/dwc/pci-imx6.c
469
imx_pcie->tx_deemph_gen2_6db << 12);
drivers/pci/controller/dwc/pci-imx6.c
470
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR8,
drivers/pci/controller/dwc/pci-imx6.c
472
imx_pcie->tx_swing_full << 18);
drivers/pci/controller/dwc/pci-imx6.c
473
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR8,
drivers/pci/controller/dwc/pci-imx6.c
475
imx_pcie->tx_swing_low << 25);
drivers/pci/controller/dwc/pci-imx6.c
479
static int imx6sx_pcie_init_phy(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
481
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR12,
drivers/pci/controller/dwc/pci-imx6.c
484
return imx_pcie_init_phy(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
487
static void imx7d_pcie_wait_for_phy_pll_lock(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
490
struct device *dev = imx_pcie->pci->dev;
drivers/pci/controller/dwc/pci-imx6.c
492
if (regmap_read_poll_timeout(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
500
static int imx95_pcie_wait_for_phy_pll_lock(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
503
struct device *dev = imx_pcie->pci->dev;
drivers/pci/controller/dwc/pci-imx6.c
505
if (regmap_read_poll_timeout(imx_pcie->iomuxc_gpr,
drivers/pci/controller/dwc/pci-imx6.c
517
static int imx_setup_phy_mpll(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
523
struct clk_bulk_data *clks = imx_pcie->clks;
drivers/pci/controller/dwc/pci-imx6.c
525
if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_IMX_PHY))
drivers/pci/controller/dwc/pci-imx6.c
528
for (i = 0; i < imx_pcie->num_clks; i++)
drivers/pci/controller/dwc/pci-imx6.c
548
dev_err(imx_pcie->pci->dev,
drivers/pci/controller/dwc/pci-imx6.c
553
pcie_phy_read(imx_pcie, PCIE_PHY_MPLL_OVRD_IN_LO, &val);
drivers/pci/controller/dwc/pci-imx6.c
558
pcie_phy_write(imx_pcie, PCIE_PHY_MPLL_OVRD_IN_LO, val);
drivers/pci/controller/dwc/pci-imx6.c
560
pcie_phy_read(imx_pcie, PCIE_PHY_ATEOVRD, &val);
drivers/pci/controller/dwc/pci-imx6.c
565
pcie_phy_write(imx_pcie, PCIE_PHY_ATEOVRD, val);
drivers/pci/controller/dwc/pci-imx6.c
570
static void imx_pcie_reset_phy(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
574
if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_IMX_PHY))
drivers/pci/controller/dwc/pci-imx6.c
577
pcie_phy_read(imx_pcie, PHY_RX_OVRD_IN_LO, &tmp);
drivers/pci/controller/dwc/pci-imx6.c
580
pcie_phy_write(imx_pcie, PHY_RX_OVRD_IN_LO, tmp);
drivers/pci/controller/dwc/pci-imx6.c
584
pcie_phy_read(imx_pcie, PHY_RX_OVRD_IN_LO, &tmp);
drivers/pci/controller/dwc/pci-imx6.c
587
pcie_phy_write(imx_pcie, PHY_RX_OVRD_IN_LO, tmp);
drivers/pci/controller/dwc/pci-imx6.c
628
struct imx_pcie *imx_pcie = dev_get_drvdata(dev);
drivers/pci/controller/dwc/pci-imx6.c
635
imx_pcie->pd_pcie = dev_pm_domain_attach_by_name(dev, "pcie");
drivers/pci/controller/dwc/pci-imx6.c
636
if (IS_ERR(imx_pcie->pd_pcie))
drivers/pci/controller/dwc/pci-imx6.c
637
return PTR_ERR(imx_pcie->pd_pcie);
drivers/pci/controller/dwc/pci-imx6.c
639
if (!imx_pcie->pd_pcie)
drivers/pci/controller/dwc/pci-imx6.c
641
link = device_link_add(dev, imx_pcie->pd_pcie,
drivers/pci/controller/dwc/pci-imx6.c
650
imx_pcie->pd_pcie_phy = dev_pm_domain_attach_by_name(dev, "pcie_phy");
drivers/pci/controller/dwc/pci-imx6.c
651
if (IS_ERR(imx_pcie->pd_pcie_phy))
drivers/pci/controller/dwc/pci-imx6.c
652
return PTR_ERR(imx_pcie->pd_pcie_phy);
drivers/pci/controller/dwc/pci-imx6.c
654
link = device_link_add(dev, imx_pcie->pd_pcie_phy,
drivers/pci/controller/dwc/pci-imx6.c
666
static int imx6sx_pcie_enable_ref_clk(struct imx_pcie *imx_pcie, bool enable)
drivers/pci/controller/dwc/pci-imx6.c
668
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR12,
drivers/pci/controller/dwc/pci-imx6.c
674
static int imx6q_pcie_enable_ref_clk(struct imx_pcie *imx_pcie, bool enable)
drivers/pci/controller/dwc/pci-imx6.c
678
regmap_clear_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR1, IMX6Q_GPR1_PCIE_TEST_PD);
drivers/pci/controller/dwc/pci-imx6.c
686
regmap_set_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR1, IMX6Q_GPR1_PCIE_REF_CLK_EN);
drivers/pci/controller/dwc/pci-imx6.c
688
regmap_clear_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR1, IMX6Q_GPR1_PCIE_REF_CLK_EN);
drivers/pci/controller/dwc/pci-imx6.c
689
regmap_set_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR1, IMX6Q_GPR1_PCIE_TEST_PD);
drivers/pci/controller/dwc/pci-imx6.c
695
static void imx8mm_pcie_clkreq_override(struct imx_pcie *imx_pcie, bool enable)
drivers/pci/controller/dwc/pci-imx6.c
697
int offset = imx_pcie_grp_offset(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
699
regmap_update_bits(imx_pcie->iomuxc_gpr, offset,
drivers/pci/controller/dwc/pci-imx6.c
702
regmap_update_bits(imx_pcie->iomuxc_gpr, offset,
drivers/pci/controller/dwc/pci-imx6.c
707
static int imx8mm_pcie_enable_ref_clk(struct imx_pcie *imx_pcie, bool enable)
drivers/pci/controller/dwc/pci-imx6.c
709
imx8mm_pcie_clkreq_override(imx_pcie, enable);
drivers/pci/controller/dwc/pci-imx6.c
713
static int imx7d_pcie_enable_ref_clk(struct imx_pcie *imx_pcie, bool enable)
drivers/pci/controller/dwc/pci-imx6.c
715
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR12,
drivers/pci/controller/dwc/pci-imx6.c
721
static void imx95_pcie_clkreq_override(struct imx_pcie *imx_pcie, bool enable)
drivers/pci/controller/dwc/pci-imx6.c
723
regmap_update_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_SS_RW_REG_1,
drivers/pci/controller/dwc/pci-imx6.c
726
regmap_update_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_SS_RW_REG_1,
drivers/pci/controller/dwc/pci-imx6.c
731
static int imx95_pcie_enable_ref_clk(struct imx_pcie *imx_pcie, bool enable)
drivers/pci/controller/dwc/pci-imx6.c
733
imx95_pcie_clkreq_override(imx_pcie, enable);
drivers/pci/controller/dwc/pci-imx6.c
737
static void imx8mm_pcie_clr_clkreq_override(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
739
imx8mm_pcie_clkreq_override(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
742
static void imx95_pcie_clr_clkreq_override(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
744
imx95_pcie_clkreq_override(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
747
static int imx_pcie_clk_enable(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
749
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
753
ret = clk_bulk_prepare_enable(imx_pcie->num_clks, imx_pcie->clks);
drivers/pci/controller/dwc/pci-imx6.c
757
if (imx_pcie->drvdata->enable_ref_clk) {
drivers/pci/controller/dwc/pci-imx6.c
758
ret = imx_pcie->drvdata->enable_ref_clk(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
770
clk_bulk_disable_unprepare(imx_pcie->num_clks, imx_pcie->clks);
drivers/pci/controller/dwc/pci-imx6.c
775
static void imx_pcie_clk_disable(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
777
if (imx_pcie->drvdata->enable_ref_clk)
drivers/pci/controller/dwc/pci-imx6.c
778
imx_pcie->drvdata->enable_ref_clk(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
779
clk_bulk_disable_unprepare(imx_pcie->num_clks, imx_pcie->clks);
drivers/pci/controller/dwc/pci-imx6.c
782
static int imx6sx_pcie_core_reset(struct imx_pcie *imx_pcie, bool assert)
drivers/pci/controller/dwc/pci-imx6.c
785
regmap_set_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR12,
drivers/pci/controller/dwc/pci-imx6.c
789
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR5, IMX6SX_GPR5_PCIE_BTNRST_RESET,
drivers/pci/controller/dwc/pci-imx6.c
794
static int imx6qp_pcie_core_reset(struct imx_pcie *imx_pcie, bool assert)
drivers/pci/controller/dwc/pci-imx6.c
796
regmap_update_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR1, IMX6Q_GPR1_PCIE_SW_RST,
drivers/pci/controller/dwc/pci-imx6.c
804
static int imx6q_pcie_core_reset(struct imx_pcie *imx_pcie, bool assert)
drivers/pci/controller/dwc/pci-imx6.c
809
regmap_set_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR1, IMX6Q_GPR1_PCIE_TEST_PD);
drivers/pci/controller/dwc/pci-imx6.c
810
regmap_set_bits(imx_pcie->iomuxc_gpr, IOMUXC_GPR1, IMX6Q_GPR1_PCIE_REF_CLK_EN);
drivers/pci/controller/dwc/pci-imx6.c
815
static int imx7d_pcie_core_reset(struct imx_pcie *imx_pcie, bool assert)
drivers/pci/controller/dwc/pci-imx6.c
817
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
846
if (likely(imx_pcie->phy_base)) {
drivers/pci/controller/dwc/pci-imx6.c
848
writel(PCIE_PHY_CMN_REG4_DCC_FB_EN, imx_pcie->phy_base + PCIE_PHY_CMN_REG4);
drivers/pci/controller/dwc/pci-imx6.c
851
imx_pcie->phy_base + PCIE_PHY_CMN_REG24);
drivers/pci/controller/dwc/pci-imx6.c
853
writel(PCIE_PHY_CMN_REG26_ATT_MODE, imx_pcie->phy_base + PCIE_PHY_CMN_REG26);
drivers/pci/controller/dwc/pci-imx6.c
857
imx7d_pcie_wait_for_phy_pll_lock(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
861
static int imx95_pcie_core_reset(struct imx_pcie *imx_pcie, bool assert)
drivers/pci/controller/dwc/pci-imx6.c
878
regmap_set_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_RST_CTRL,
drivers/pci/controller/dwc/pci-imx6.c
885
regmap_read_bypassed(imx_pcie->iomuxc_gpr, IMX95_PCIE_RST_CTRL,
drivers/pci/controller/dwc/pci-imx6.c
888
regmap_clear_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_RST_CTRL,
drivers/pci/controller/dwc/pci-imx6.c
890
regmap_read_bypassed(imx_pcie->iomuxc_gpr, IMX95_PCIE_RST_CTRL,
drivers/pci/controller/dwc/pci-imx6.c
898
static void imx_pcie_assert_core_reset(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
900
reset_control_assert(imx_pcie->pciephy_reset);
drivers/pci/controller/dwc/pci-imx6.c
902
if (imx_pcie->drvdata->core_reset)
drivers/pci/controller/dwc/pci-imx6.c
903
imx_pcie->drvdata->core_reset(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
906
gpiod_set_value_cansleep(imx_pcie->reset_gpiod, 1);
drivers/pci/controller/dwc/pci-imx6.c
909
static int imx_pcie_deassert_core_reset(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
911
reset_control_deassert(imx_pcie->pciephy_reset);
drivers/pci/controller/dwc/pci-imx6.c
913
if (imx_pcie->drvdata->core_reset)
drivers/pci/controller/dwc/pci-imx6.c
914
imx_pcie->drvdata->core_reset(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
917
if (imx_pcie->reset_gpiod) {
drivers/pci/controller/dwc/pci-imx6.c
919
gpiod_set_value_cansleep(imx_pcie->reset_gpiod, 0);
drivers/pci/controller/dwc/pci-imx6.c
927
static int imx_pcie_wait_for_speed_change(struct imx_pcie *imx_pcie)
drivers/pci/controller/dwc/pci-imx6.c
929
struct dw_pcie *pci = imx_pcie->pci;
drivers/pci/controller/dwc/pci-imx6.c
948
struct imx_pcie *imx_pcie = dev_get_drvdata(dev);
drivers/pci/controller/dwc/pci-imx6.c
949
const struct imx_pcie_drvdata *drvdata = imx_pcie->drvdata;
drivers/pci/controller/dwc/pci-imx6.c
950
u8 offset = dw_pcie_find_capability(imx_pcie->pci, PCI_CAP_ID_EXP);
drivers/pci/controller/dwc/pci-imx6.c
953
tmp = dw_pcie_readl_dbi(imx_pcie->pci, offset + PCI_EXP_LNKCAP);
drivers/pci/controller/dwc/pci-imx6.c
954
phy_set_speed(imx_pcie->phy, FIELD_GET(PCI_EXP_LNKCAP_SLS, tmp));
drivers/pci/controller/dwc/pci-imx6.c
956
regmap_update_bits(imx_pcie->iomuxc_gpr, drvdata->ltssm_off, drvdata->ltssm_mask,
drivers/pci/controller/dwc/pci-imx6.c
959
reset_control_deassert(imx_pcie->apps_reset);
drivers/pci/controller/dwc/pci-imx6.c
964
struct imx_pcie *imx_pcie = dev_get_drvdata(dev);
drivers/pci/controller/dwc/pci-imx6.c
965
const struct imx_pcie_drvdata *drvdata = imx_pcie->drvdata;
drivers/pci/controller/dwc/pci-imx6.c
967
phy_set_speed(imx_pcie->phy, 0);
drivers/pci/controller/dwc/pci-imx6.c
969
regmap_update_bits(imx_pcie->iomuxc_gpr, drvdata->ltssm_off,
drivers/pci/controller/dwc/pci-imx6.c
972
reset_control_assert(imx_pcie->apps_reset);
drivers/pci/controller/dwc/pci-imx6.c
977
struct imx_pcie *imx_pcie = to_imx_pcie(pci);
drivers/pci/controller/dwc/pci-imx6.c
983
if (!(imx_pcie->drvdata->flags &