• Home
  • Raw
  • Download

Lines Matching refs:pcie

176 	int (*get_resources)(struct qcom_pcie *pcie);
177 int (*init)(struct qcom_pcie *pcie);
178 int (*post_init)(struct qcom_pcie *pcie);
179 void (*deinit)(struct qcom_pcie *pcie);
180 void (*post_deinit)(struct qcom_pcie *pcie);
181 void (*ltssm_enable)(struct qcom_pcie *pcie);
196 static void qcom_ep_reset_assert(struct qcom_pcie *pcie) in qcom_ep_reset_assert() argument
198 gpiod_set_value_cansleep(pcie->reset, 1); in qcom_ep_reset_assert()
202 static void qcom_ep_reset_deassert(struct qcom_pcie *pcie) in qcom_ep_reset_deassert() argument
206 gpiod_set_value_cansleep(pcie->reset, 0); in qcom_ep_reset_deassert()
210 static int qcom_pcie_establish_link(struct qcom_pcie *pcie) in qcom_pcie_establish_link() argument
212 struct dw_pcie *pci = pcie->pci; in qcom_pcie_establish_link()
218 if (pcie->ops->ltssm_enable) in qcom_pcie_establish_link()
219 pcie->ops->ltssm_enable(pcie); in qcom_pcie_establish_link()
224 static void qcom_pcie_2_1_0_ltssm_enable(struct qcom_pcie *pcie) in qcom_pcie_2_1_0_ltssm_enable() argument
229 val = readl(pcie->elbi + PCIE20_ELBI_SYS_CTRL); in qcom_pcie_2_1_0_ltssm_enable()
231 writel(val, pcie->elbi + PCIE20_ELBI_SYS_CTRL); in qcom_pcie_2_1_0_ltssm_enable()
234 static int qcom_pcie_get_resources_2_1_0(struct qcom_pcie *pcie) in qcom_pcie_get_resources_2_1_0() argument
236 struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0; in qcom_pcie_get_resources_2_1_0()
237 struct dw_pcie *pci = pcie->pci; in qcom_pcie_get_resources_2_1_0()
289 static void qcom_pcie_deinit_2_1_0(struct qcom_pcie *pcie) in qcom_pcie_deinit_2_1_0() argument
291 struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0; in qcom_pcie_deinit_2_1_0()
301 writel(1, pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_deinit_2_1_0()
306 static int qcom_pcie_init_2_1_0(struct qcom_pcie *pcie) in qcom_pcie_init_2_1_0() argument
308 struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0; in qcom_pcie_init_2_1_0()
309 struct dw_pcie *pci = pcie->pci; in qcom_pcie_init_2_1_0()
366 val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_1_0()
368 writel(val, pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_1_0()
379 pcie->parf + PCIE20_PARF_PCS_DEEMPH); in qcom_pcie_init_2_1_0()
382 pcie->parf + PCIE20_PARF_PCS_SWING); in qcom_pcie_init_2_1_0()
383 writel(PHY_RX0_EQ(4), pcie->parf + PCIE20_PARF_CONFIG_BITS); in qcom_pcie_init_2_1_0()
388 val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_1_0()
391 writel(val, pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_1_0()
395 val = readl(pcie->parf + PCIE20_PARF_PHY_REFCLK); in qcom_pcie_init_2_1_0()
400 writel(val, pcie->parf + PCIE20_PARF_PHY_REFCLK); in qcom_pcie_init_2_1_0()
431 static int qcom_pcie_get_resources_1_0_0(struct qcom_pcie *pcie) in qcom_pcie_get_resources_1_0_0() argument
433 struct qcom_pcie_resources_1_0_0 *res = &pcie->res.v1_0_0; in qcom_pcie_get_resources_1_0_0()
434 struct dw_pcie *pci = pcie->pci; in qcom_pcie_get_resources_1_0_0()
461 static void qcom_pcie_deinit_1_0_0(struct qcom_pcie *pcie) in qcom_pcie_deinit_1_0_0() argument
463 struct qcom_pcie_resources_1_0_0 *res = &pcie->res.v1_0_0; in qcom_pcie_deinit_1_0_0()
473 static int qcom_pcie_init_1_0_0(struct qcom_pcie *pcie) in qcom_pcie_init_1_0_0() argument
475 struct qcom_pcie_resources_1_0_0 *res = &pcie->res.v1_0_0; in qcom_pcie_init_1_0_0()
476 struct dw_pcie *pci = pcie->pci; in qcom_pcie_init_1_0_0()
517 writel(0, pcie->parf + PCIE20_PARF_DBI_BASE_ADDR); in qcom_pcie_init_1_0_0()
520 u32 val = readl(pcie->parf + PCIE20_PARF_AXI_MSTR_WR_ADDR_HALT); in qcom_pcie_init_1_0_0()
523 writel(val, pcie->parf + PCIE20_PARF_AXI_MSTR_WR_ADDR_HALT); in qcom_pcie_init_1_0_0()
541 static void qcom_pcie_2_3_2_ltssm_enable(struct qcom_pcie *pcie) in qcom_pcie_2_3_2_ltssm_enable() argument
546 val = readl(pcie->parf + PCIE20_PARF_LTSSM); in qcom_pcie_2_3_2_ltssm_enable()
548 writel(val, pcie->parf + PCIE20_PARF_LTSSM); in qcom_pcie_2_3_2_ltssm_enable()
551 static int qcom_pcie_get_resources_2_3_2(struct qcom_pcie *pcie) in qcom_pcie_get_resources_2_3_2() argument
553 struct qcom_pcie_resources_2_3_2 *res = &pcie->res.v2_3_2; in qcom_pcie_get_resources_2_3_2()
554 struct dw_pcie *pci = pcie->pci; in qcom_pcie_get_resources_2_3_2()
585 static void qcom_pcie_deinit_2_3_2(struct qcom_pcie *pcie) in qcom_pcie_deinit_2_3_2() argument
587 struct qcom_pcie_resources_2_3_2 *res = &pcie->res.v2_3_2; in qcom_pcie_deinit_2_3_2()
597 static void qcom_pcie_post_deinit_2_3_2(struct qcom_pcie *pcie) in qcom_pcie_post_deinit_2_3_2() argument
599 struct qcom_pcie_resources_2_3_2 *res = &pcie->res.v2_3_2; in qcom_pcie_post_deinit_2_3_2()
604 static int qcom_pcie_init_2_3_2(struct qcom_pcie *pcie) in qcom_pcie_init_2_3_2() argument
606 struct qcom_pcie_resources_2_3_2 *res = &pcie->res.v2_3_2; in qcom_pcie_init_2_3_2()
607 struct dw_pcie *pci = pcie->pci; in qcom_pcie_init_2_3_2()
643 val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_3_2()
645 writel(val, pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_3_2()
648 writel(0, pcie->parf + PCIE20_PARF_DBI_BASE_ADDR); in qcom_pcie_init_2_3_2()
651 val = readl(pcie->parf + PCIE20_PARF_SYS_CTRL); in qcom_pcie_init_2_3_2()
653 writel(val, pcie->parf + PCIE20_PARF_SYS_CTRL); in qcom_pcie_init_2_3_2()
655 val = readl(pcie->parf + PCIE20_PARF_MHI_CLOCK_RESET_CTRL); in qcom_pcie_init_2_3_2()
657 writel(val, pcie->parf + PCIE20_PARF_MHI_CLOCK_RESET_CTRL); in qcom_pcie_init_2_3_2()
659 val = readl(pcie->parf + PCIE20_PARF_AXI_MSTR_WR_ADDR_HALT_V2); in qcom_pcie_init_2_3_2()
661 writel(val, pcie->parf + PCIE20_PARF_AXI_MSTR_WR_ADDR_HALT_V2); in qcom_pcie_init_2_3_2()
678 static int qcom_pcie_post_init_2_3_2(struct qcom_pcie *pcie) in qcom_pcie_post_init_2_3_2() argument
680 struct qcom_pcie_resources_2_3_2 *res = &pcie->res.v2_3_2; in qcom_pcie_post_init_2_3_2()
681 struct dw_pcie *pci = pcie->pci; in qcom_pcie_post_init_2_3_2()
694 static int qcom_pcie_get_resources_2_4_0(struct qcom_pcie *pcie) in qcom_pcie_get_resources_2_4_0() argument
696 struct qcom_pcie_resources_2_4_0 *res = &pcie->res.v2_4_0; in qcom_pcie_get_resources_2_4_0()
697 struct dw_pcie *pci = pcie->pci; in qcom_pcie_get_resources_2_4_0()
777 static void qcom_pcie_deinit_2_4_0(struct qcom_pcie *pcie) in qcom_pcie_deinit_2_4_0() argument
779 struct qcom_pcie_resources_2_4_0 *res = &pcie->res.v2_4_0; in qcom_pcie_deinit_2_4_0()
793 static int qcom_pcie_init_2_4_0(struct qcom_pcie *pcie) in qcom_pcie_init_2_4_0() argument
795 struct qcom_pcie_resources_2_4_0 *res = &pcie->res.v2_4_0; in qcom_pcie_init_2_4_0()
796 struct dw_pcie *pci = pcie->pci; in qcom_pcie_init_2_4_0()
924 val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_4_0()
926 writel(val, pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_4_0()
929 writel(0, pcie->parf + PCIE20_PARF_DBI_BASE_ADDR); in qcom_pcie_init_2_4_0()
932 val = readl(pcie->parf + PCIE20_PARF_SYS_CTRL); in qcom_pcie_init_2_4_0()
934 writel(val, pcie->parf + PCIE20_PARF_SYS_CTRL); in qcom_pcie_init_2_4_0()
936 val = readl(pcie->parf + PCIE20_PARF_MHI_CLOCK_RESET_CTRL); in qcom_pcie_init_2_4_0()
938 writel(val, pcie->parf + PCIE20_PARF_MHI_CLOCK_RESET_CTRL); in qcom_pcie_init_2_4_0()
940 val = readl(pcie->parf + PCIE20_PARF_AXI_MSTR_WR_ADDR_HALT_V2); in qcom_pcie_init_2_4_0()
942 writel(val, pcie->parf + PCIE20_PARF_AXI_MSTR_WR_ADDR_HALT_V2); in qcom_pcie_init_2_4_0()
967 static int qcom_pcie_get_resources_2_3_3(struct qcom_pcie *pcie) in qcom_pcie_get_resources_2_3_3() argument
969 struct qcom_pcie_resources_2_3_3 *res = &pcie->res.v2_3_3; in qcom_pcie_get_resources_2_3_3()
970 struct dw_pcie *pci = pcie->pci; in qcom_pcie_get_resources_2_3_3()
1006 static void qcom_pcie_deinit_2_3_3(struct qcom_pcie *pcie) in qcom_pcie_deinit_2_3_3() argument
1008 struct qcom_pcie_resources_2_3_3 *res = &pcie->res.v2_3_3; in qcom_pcie_deinit_2_3_3()
1017 static int qcom_pcie_init_2_3_3(struct qcom_pcie *pcie) in qcom_pcie_init_2_3_3() argument
1019 struct qcom_pcie_resources_2_3_3 *res = &pcie->res.v2_3_3; in qcom_pcie_init_2_3_3()
1020 struct dw_pcie *pci = pcie->pci; in qcom_pcie_init_2_3_3()
1082 pcie->parf + PCIE20_v3_PARF_SLV_ADDR_SPACE_SIZE); in qcom_pcie_init_2_3_3()
1084 val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_3_3()
1086 writel(val, pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_3_3()
1088 writel(0, pcie->parf + PCIE20_PARF_DBI_BASE_ADDR); in qcom_pcie_init_2_3_3()
1093 pcie->parf + PCIE20_PARF_SYS_CTRL); in qcom_pcie_init_2_3_3()
1094 writel(0, pcie->parf + PCIE20_PARF_Q2A_FLUSH); in qcom_pcie_init_2_3_3()
1128 static int qcom_pcie_get_resources_2_7_0(struct qcom_pcie *pcie) in qcom_pcie_get_resources_2_7_0() argument
1130 struct qcom_pcie_resources_2_7_0 *res = &pcie->res.v2_7_0; in qcom_pcie_get_resources_2_7_0()
1131 struct dw_pcie *pci = pcie->pci; in qcom_pcie_get_resources_2_7_0()
1161 static int qcom_pcie_init_2_7_0(struct qcom_pcie *pcie) in qcom_pcie_init_2_7_0() argument
1163 struct qcom_pcie_resources_2_7_0 *res = &pcie->res.v2_7_0; in qcom_pcie_init_2_7_0()
1164 struct dw_pcie *pci = pcie->pci; in qcom_pcie_init_2_7_0()
1194 writel(DEVICE_TYPE_RC, pcie->parf + PCIE20_PARF_DEVICE_TYPE); in qcom_pcie_init_2_7_0()
1197 val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_7_0()
1199 writel(val, pcie->parf + PCIE20_PARF_PHY_CTRL); in qcom_pcie_init_2_7_0()
1202 writel(0, pcie->parf + PCIE20_PARF_DBI_BASE_ADDR); in qcom_pcie_init_2_7_0()
1205 val = readl(pcie->parf + PCIE20_PARF_SYS_CTRL); in qcom_pcie_init_2_7_0()
1207 writel(val, pcie->parf + PCIE20_PARF_SYS_CTRL); in qcom_pcie_init_2_7_0()
1209 val = readl(pcie->parf + PCIE20_PARF_MHI_CLOCK_RESET_CTRL); in qcom_pcie_init_2_7_0()
1211 writel(val, pcie->parf + PCIE20_PARF_MHI_CLOCK_RESET_CTRL); in qcom_pcie_init_2_7_0()
1214 val = readl(pcie->parf + PCIE20_PARF_AXI_MSTR_WR_ADDR_HALT); in qcom_pcie_init_2_7_0()
1216 writel(val, pcie->parf + PCIE20_PARF_AXI_MSTR_WR_ADDR_HALT); in qcom_pcie_init_2_7_0()
1228 static void qcom_pcie_deinit_2_7_0(struct qcom_pcie *pcie) in qcom_pcie_deinit_2_7_0() argument
1230 struct qcom_pcie_resources_2_7_0 *res = &pcie->res.v2_7_0; in qcom_pcie_deinit_2_7_0()
1236 static int qcom_pcie_post_init_2_7_0(struct qcom_pcie *pcie) in qcom_pcie_post_init_2_7_0() argument
1238 struct qcom_pcie_resources_2_7_0 *res = &pcie->res.v2_7_0; in qcom_pcie_post_init_2_7_0()
1243 static void qcom_pcie_post_deinit_2_7_0(struct qcom_pcie *pcie) in qcom_pcie_post_deinit_2_7_0() argument
1245 struct qcom_pcie_resources_2_7_0 *res = &pcie->res.v2_7_0; in qcom_pcie_post_deinit_2_7_0()
1261 struct qcom_pcie *pcie = to_qcom_pcie(pci); in qcom_pcie_host_init() local
1264 qcom_ep_reset_assert(pcie); in qcom_pcie_host_init()
1266 ret = pcie->ops->init(pcie); in qcom_pcie_host_init()
1270 ret = phy_power_on(pcie->phy); in qcom_pcie_host_init()
1274 if (pcie->ops->post_init) { in qcom_pcie_host_init()
1275 ret = pcie->ops->post_init(pcie); in qcom_pcie_host_init()
1283 qcom_ep_reset_deassert(pcie); in qcom_pcie_host_init()
1285 ret = qcom_pcie_establish_link(pcie); in qcom_pcie_host_init()
1291 qcom_ep_reset_assert(pcie); in qcom_pcie_host_init()
1292 if (pcie->ops->post_deinit) in qcom_pcie_host_init()
1293 pcie->ops->post_deinit(pcie); in qcom_pcie_host_init()
1295 phy_power_off(pcie->phy); in qcom_pcie_host_init()
1297 pcie->ops->deinit(pcie); in qcom_pcie_host_init()
1368 struct qcom_pcie *pcie; in qcom_pcie_probe() local
1371 pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); in qcom_pcie_probe()
1372 if (!pcie) in qcom_pcie_probe()
1388 pcie->pci = pci; in qcom_pcie_probe()
1390 pcie->ops = of_device_get_match_data(dev); in qcom_pcie_probe()
1392 pcie->reset = devm_gpiod_get_optional(dev, "perst", GPIOD_OUT_HIGH); in qcom_pcie_probe()
1393 if (IS_ERR(pcie->reset)) { in qcom_pcie_probe()
1394 ret = PTR_ERR(pcie->reset); in qcom_pcie_probe()
1398 pcie->parf = devm_platform_ioremap_resource_byname(pdev, "parf"); in qcom_pcie_probe()
1399 if (IS_ERR(pcie->parf)) { in qcom_pcie_probe()
1400 ret = PTR_ERR(pcie->parf); in qcom_pcie_probe()
1411 pcie->elbi = devm_platform_ioremap_resource_byname(pdev, "elbi"); in qcom_pcie_probe()
1412 if (IS_ERR(pcie->elbi)) { in qcom_pcie_probe()
1413 ret = PTR_ERR(pcie->elbi); in qcom_pcie_probe()
1417 pcie->phy = devm_phy_optional_get(dev, "pciephy"); in qcom_pcie_probe()
1418 if (IS_ERR(pcie->phy)) { in qcom_pcie_probe()
1419 ret = PTR_ERR(pcie->phy); in qcom_pcie_probe()
1423 ret = pcie->ops->get_resources(pcie); in qcom_pcie_probe()
1437 ret = phy_init(pcie->phy); in qcom_pcie_probe()
1441 platform_set_drvdata(pdev, pcie); in qcom_pcie_probe()
1452 phy_exit(pcie->phy); in qcom_pcie_probe()