Lines Matching refs:qphy

280 static int qmp_pcie_msm8996_serdes_init(struct qmp_phy *qphy)  in qmp_pcie_msm8996_serdes_init()  argument
282 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_serdes_init()
283 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_serdes_init()
284 void __iomem *serdes = qphy->serdes; in qmp_pcie_msm8996_serdes_init()
309 static int qmp_pcie_msm8996_com_init(struct qmp_phy *qphy) in qmp_pcie_msm8996_com_init() argument
311 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_com_init()
312 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_com_init()
313 void __iomem *serdes = qphy->serdes; in qmp_pcie_msm8996_com_init()
362 static int qmp_pcie_msm8996_com_exit(struct qmp_phy *qphy) in qmp_pcie_msm8996_com_exit() argument
364 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_com_exit()
365 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_com_exit()
366 void __iomem *serdes = qphy->serdes; in qmp_pcie_msm8996_com_exit()
394 struct qmp_phy *qphy = phy_get_drvdata(phy); in qmp_pcie_msm8996_init() local
395 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_init()
399 ret = qmp_pcie_msm8996_com_init(qphy); in qmp_pcie_msm8996_init()
408 struct qmp_phy *qphy = phy_get_drvdata(phy); in qmp_pcie_msm8996_power_on() local
409 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_power_on()
410 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_power_on()
411 void __iomem *tx = qphy->tx; in qmp_pcie_msm8996_power_on()
412 void __iomem *rx = qphy->rx; in qmp_pcie_msm8996_power_on()
413 void __iomem *pcs = qphy->pcs; in qmp_pcie_msm8996_power_on()
418 qmp_pcie_msm8996_serdes_init(qphy); in qmp_pcie_msm8996_power_on()
420 ret = reset_control_deassert(qphy->lane_rst); in qmp_pcie_msm8996_power_on()
423 qphy->index); in qmp_pcie_msm8996_power_on()
427 ret = clk_prepare_enable(qphy->pipe_clk); in qmp_pcie_msm8996_power_on()
465 clk_disable_unprepare(qphy->pipe_clk); in qmp_pcie_msm8996_power_on()
467 reset_control_assert(qphy->lane_rst); in qmp_pcie_msm8996_power_on()
474 struct qmp_phy *qphy = phy_get_drvdata(phy); in qmp_pcie_msm8996_power_off() local
475 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_power_off()
477 clk_disable_unprepare(qphy->pipe_clk); in qmp_pcie_msm8996_power_off()
480 qphy_setbits(qphy->pcs, cfg->regs[QPHY_SW_RESET], SW_RESET); in qmp_pcie_msm8996_power_off()
483 qphy_clrbits(qphy->pcs, cfg->regs[QPHY_START_CTRL], in qmp_pcie_msm8996_power_off()
487 qphy_clrbits(qphy->pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL, in qmp_pcie_msm8996_power_off()
495 struct qmp_phy *qphy = phy_get_drvdata(phy); in qmp_pcie_msm8996_exit() local
497 reset_control_assert(qphy->lane_rst); in qmp_pcie_msm8996_exit()
499 qmp_pcie_msm8996_com_exit(qphy); in qmp_pcie_msm8996_exit()
658 struct qmp_phy *qphy; in qmp_pcie_msm8996_create() local
661 qphy = devm_kzalloc(dev, sizeof(*qphy), GFP_KERNEL); in qmp_pcie_msm8996_create()
662 if (!qphy) in qmp_pcie_msm8996_create()
665 qphy->cfg = cfg; in qmp_pcie_msm8996_create()
666 qphy->serdes = serdes; in qmp_pcie_msm8996_create()
671 qphy->tx = devm_of_iomap(dev, np, 0, NULL); in qmp_pcie_msm8996_create()
672 if (IS_ERR(qphy->tx)) in qmp_pcie_msm8996_create()
673 return PTR_ERR(qphy->tx); in qmp_pcie_msm8996_create()
675 qphy->rx = devm_of_iomap(dev, np, 1, NULL); in qmp_pcie_msm8996_create()
676 if (IS_ERR(qphy->rx)) in qmp_pcie_msm8996_create()
677 return PTR_ERR(qphy->rx); in qmp_pcie_msm8996_create()
679 qphy->pcs = devm_of_iomap(dev, np, 2, NULL); in qmp_pcie_msm8996_create()
680 if (IS_ERR(qphy->pcs)) in qmp_pcie_msm8996_create()
681 return PTR_ERR(qphy->pcs); in qmp_pcie_msm8996_create()
683 qphy->pipe_clk = devm_get_clk_from_child(dev, np, NULL); in qmp_pcie_msm8996_create()
684 if (IS_ERR(qphy->pipe_clk)) { in qmp_pcie_msm8996_create()
685 return dev_err_probe(dev, PTR_ERR(qphy->pipe_clk), in qmp_pcie_msm8996_create()
689 qphy->lane_rst = of_reset_control_get_exclusive_by_index(np, 0); in qmp_pcie_msm8996_create()
690 if (IS_ERR(qphy->lane_rst)) { in qmp_pcie_msm8996_create()
692 return PTR_ERR(qphy->lane_rst); in qmp_pcie_msm8996_create()
695 qphy->lane_rst); in qmp_pcie_msm8996_create()
706 qphy->phy = generic_phy; in qmp_pcie_msm8996_create()
707 qphy->index = id; in qmp_pcie_msm8996_create()
708 qphy->qmp = qmp; in qmp_pcie_msm8996_create()
709 qmp->phys[id] = qphy; in qmp_pcie_msm8996_create()
710 phy_set_drvdata(generic_phy, qphy); in qmp_pcie_msm8996_create()