Loading drivers/platform/msm/ep_pcie/ep_pcie_com.h +6 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,12 @@ #define PCIE20_MHICFG 0x110 #define PCIE20_BHI_EXECENV 0x228 #define PCIE20_MHIVER 0x108 #define PCIE20_MHICTRL 0x138 #define PCIE20_MHISTATUS 0x148 #define PCIE20_BHI_VERSION_LOWER 0x200 #define PCIE20_BHI_VERSION_UPPER 0x204 #define PCIE20_BHI_INTVEC 0x220 #define PCIE20_AUX_CLK_FREQ_REG 0xB40 Loading drivers/platform/msm/ep_pcie/ep_pcie_core.c +26 −3 Original line number Diff line number Diff line Loading @@ -497,6 +497,22 @@ static void ep_pcie_bar_init(struct ep_pcie_dev_t *dev) ep_pcie_write_mask(dev->dm_core + PCIE20_MISC_CONTROL_1, BIT(0), 0); } static void ep_pcie_config_mmio(struct ep_pcie_dev_t *dev) { EP_PCIE_DBG(dev, "Initial version of MMIO is:0x%x\n", readl_relaxed(dev->mmio + PCIE20_MHIVER)); ep_pcie_write_reg(dev->mmio, PCIE20_MHICFG, 0x02800880); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_EXECENV, 0x2); ep_pcie_write_reg(dev->mmio, PCIE20_MHICTRL, 0x0); ep_pcie_write_reg(dev->mmio, PCIE20_MHISTATUS, 0x0); ep_pcie_write_reg(dev->mmio, PCIE20_MHIVER, 0x1000000); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_VERSION_LOWER, 0x2); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_VERSION_UPPER, 0x1); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_INTVEC, 0xffffffff); } static void ep_pcie_core_init(struct ep_pcie_dev_t *dev, bool configured) { EP_PCIE_DBG(dev, "PCIe V%d\n", dev->rev); Loading Loading @@ -667,9 +683,6 @@ static void ep_pcie_core_init(struct ep_pcie_dev_t *dev, bool configured) /* Configure BARs */ ep_pcie_bar_init(dev); ep_pcie_write_reg(dev->mmio, PCIE20_MHICFG, 0x02800880); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_EXECENV, 0x2); } /* Configure IRQ events */ Loading @@ -690,6 +703,16 @@ static void ep_pcie_core_init(struct ep_pcie_dev_t *dev, bool configured) dev->rev, readl_relaxed(dev->parf + PCIE20_PARF_INT_ALL_MASK)); } if (dev->active_config) { ep_pcie_write_reg(dev->dm_core, PCIE20_AUX_CLK_FREQ_REG, 0x14); EP_PCIE_DBG2(dev, "PCIe V%d: Enable L1.\n", dev->rev); ep_pcie_write_mask(dev->parf + PCIE20_PARF_PM_CTRL, BIT(5), 0); } /* Configure MMIO */ ep_pcie_config_mmio(dev); } static void ep_pcie_config_inbound_iatu(struct ep_pcie_dev_t *dev) Loading Loading
drivers/platform/msm/ep_pcie/ep_pcie_com.h +6 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,12 @@ #define PCIE20_MHICFG 0x110 #define PCIE20_BHI_EXECENV 0x228 #define PCIE20_MHIVER 0x108 #define PCIE20_MHICTRL 0x138 #define PCIE20_MHISTATUS 0x148 #define PCIE20_BHI_VERSION_LOWER 0x200 #define PCIE20_BHI_VERSION_UPPER 0x204 #define PCIE20_BHI_INTVEC 0x220 #define PCIE20_AUX_CLK_FREQ_REG 0xB40 Loading
drivers/platform/msm/ep_pcie/ep_pcie_core.c +26 −3 Original line number Diff line number Diff line Loading @@ -497,6 +497,22 @@ static void ep_pcie_bar_init(struct ep_pcie_dev_t *dev) ep_pcie_write_mask(dev->dm_core + PCIE20_MISC_CONTROL_1, BIT(0), 0); } static void ep_pcie_config_mmio(struct ep_pcie_dev_t *dev) { EP_PCIE_DBG(dev, "Initial version of MMIO is:0x%x\n", readl_relaxed(dev->mmio + PCIE20_MHIVER)); ep_pcie_write_reg(dev->mmio, PCIE20_MHICFG, 0x02800880); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_EXECENV, 0x2); ep_pcie_write_reg(dev->mmio, PCIE20_MHICTRL, 0x0); ep_pcie_write_reg(dev->mmio, PCIE20_MHISTATUS, 0x0); ep_pcie_write_reg(dev->mmio, PCIE20_MHIVER, 0x1000000); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_VERSION_LOWER, 0x2); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_VERSION_UPPER, 0x1); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_INTVEC, 0xffffffff); } static void ep_pcie_core_init(struct ep_pcie_dev_t *dev, bool configured) { EP_PCIE_DBG(dev, "PCIe V%d\n", dev->rev); Loading Loading @@ -667,9 +683,6 @@ static void ep_pcie_core_init(struct ep_pcie_dev_t *dev, bool configured) /* Configure BARs */ ep_pcie_bar_init(dev); ep_pcie_write_reg(dev->mmio, PCIE20_MHICFG, 0x02800880); ep_pcie_write_reg(dev->mmio, PCIE20_BHI_EXECENV, 0x2); } /* Configure IRQ events */ Loading @@ -690,6 +703,16 @@ static void ep_pcie_core_init(struct ep_pcie_dev_t *dev, bool configured) dev->rev, readl_relaxed(dev->parf + PCIE20_PARF_INT_ALL_MASK)); } if (dev->active_config) { ep_pcie_write_reg(dev->dm_core, PCIE20_AUX_CLK_FREQ_REG, 0x14); EP_PCIE_DBG2(dev, "PCIe V%d: Enable L1.\n", dev->rev); ep_pcie_write_mask(dev->parf + PCIE20_PARF_PM_CTRL, BIT(5), 0); } /* Configure MMIO */ ep_pcie_config_mmio(dev); } static void ep_pcie_config_inbound_iatu(struct ep_pcie_dev_t *dev) Loading