Lines Matching refs:qphy

337 static int qmp_pcie_msm8996_serdes_init(struct qmp_phy *qphy)  in qmp_pcie_msm8996_serdes_init()  argument
339 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_serdes_init()
340 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_serdes_init()
341 void __iomem *serdes = qphy->serdes; in qmp_pcie_msm8996_serdes_init()
366 static int qmp_pcie_msm8996_com_init(struct qmp_phy *qphy) in qmp_pcie_msm8996_com_init() argument
368 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_com_init()
369 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_com_init()
370 void __iomem *serdes = qphy->serdes; in qmp_pcie_msm8996_com_init()
418 static int qmp_pcie_msm8996_com_exit(struct qmp_phy *qphy) in qmp_pcie_msm8996_com_exit() argument
420 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_com_exit()
421 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_com_exit()
422 void __iomem *serdes = qphy->serdes; in qmp_pcie_msm8996_com_exit()
450 struct qmp_phy *qphy = phy_get_drvdata(phy); in qmp_pcie_msm8996_init() local
451 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_init()
455 ret = qmp_pcie_msm8996_com_init(qphy); in qmp_pcie_msm8996_init()
464 struct qmp_phy *qphy = phy_get_drvdata(phy); in qmp_pcie_msm8996_power_on() local
465 struct qcom_qmp *qmp = qphy->qmp; in qmp_pcie_msm8996_power_on()
466 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_power_on()
467 void __iomem *tx = qphy->tx; in qmp_pcie_msm8996_power_on()
468 void __iomem *rx = qphy->rx; in qmp_pcie_msm8996_power_on()
469 void __iomem *pcs = qphy->pcs; in qmp_pcie_msm8996_power_on()
474 qmp_pcie_msm8996_serdes_init(qphy); in qmp_pcie_msm8996_power_on()
476 ret = reset_control_deassert(qphy->lane_rst); in qmp_pcie_msm8996_power_on()
479 qphy->index); in qmp_pcie_msm8996_power_on()
483 ret = clk_prepare_enable(qphy->pipe_clk); in qmp_pcie_msm8996_power_on()
521 clk_disable_unprepare(qphy->pipe_clk); in qmp_pcie_msm8996_power_on()
523 reset_control_assert(qphy->lane_rst); in qmp_pcie_msm8996_power_on()
530 struct qmp_phy *qphy = phy_get_drvdata(phy); in qmp_pcie_msm8996_power_off() local
531 const struct qmp_phy_cfg *cfg = qphy->cfg; in qmp_pcie_msm8996_power_off()
533 clk_disable_unprepare(qphy->pipe_clk); in qmp_pcie_msm8996_power_off()
536 qphy_setbits(qphy->pcs, cfg->regs[QPHY_SW_RESET], SW_RESET); in qmp_pcie_msm8996_power_off()
539 qphy_clrbits(qphy->pcs, cfg->regs[QPHY_START_CTRL], in qmp_pcie_msm8996_power_off()
543 qphy_clrbits(qphy->pcs, QPHY_V2_PCS_POWER_DOWN_CONTROL, in qmp_pcie_msm8996_power_off()
551 struct qmp_phy *qphy = phy_get_drvdata(phy); in qmp_pcie_msm8996_exit() local
553 reset_control_assert(qphy->lane_rst); in qmp_pcie_msm8996_exit()
555 qmp_pcie_msm8996_com_exit(qphy); in qmp_pcie_msm8996_exit()
714 struct qmp_phy *qphy; in qmp_pcie_msm8996_create() local
717 qphy = devm_kzalloc(dev, sizeof(*qphy), GFP_KERNEL); in qmp_pcie_msm8996_create()
718 if (!qphy) in qmp_pcie_msm8996_create()
721 qphy->cfg = cfg; in qmp_pcie_msm8996_create()
722 qphy->serdes = serdes; in qmp_pcie_msm8996_create()
727 qphy->tx = devm_of_iomap(dev, np, 0, NULL); in qmp_pcie_msm8996_create()
728 if (IS_ERR(qphy->tx)) in qmp_pcie_msm8996_create()
729 return PTR_ERR(qphy->tx); in qmp_pcie_msm8996_create()
731 qphy->rx = devm_of_iomap(dev, np, 1, NULL); in qmp_pcie_msm8996_create()
732 if (IS_ERR(qphy->rx)) in qmp_pcie_msm8996_create()
733 return PTR_ERR(qphy->rx); in qmp_pcie_msm8996_create()
735 qphy->pcs = devm_of_iomap(dev, np, 2, NULL); in qmp_pcie_msm8996_create()
736 if (IS_ERR(qphy->pcs)) in qmp_pcie_msm8996_create()
737 return PTR_ERR(qphy->pcs); in qmp_pcie_msm8996_create()
739 qphy->pipe_clk = devm_get_clk_from_child(dev, np, NULL); in qmp_pcie_msm8996_create()
740 if (IS_ERR(qphy->pipe_clk)) { in qmp_pcie_msm8996_create()
741 return dev_err_probe(dev, PTR_ERR(qphy->pipe_clk), in qmp_pcie_msm8996_create()
745 qphy->lane_rst = of_reset_control_get_exclusive_by_index(np, 0); in qmp_pcie_msm8996_create()
746 if (IS_ERR(qphy->lane_rst)) { in qmp_pcie_msm8996_create()
748 return PTR_ERR(qphy->lane_rst); in qmp_pcie_msm8996_create()
751 qphy->lane_rst); in qmp_pcie_msm8996_create()
762 qphy->phy = generic_phy; in qmp_pcie_msm8996_create()
763 qphy->index = id; in qmp_pcie_msm8996_create()
764 qphy->qmp = qmp; in qmp_pcie_msm8996_create()
765 qmp->phys[id] = qphy; in qmp_pcie_msm8996_create()
766 phy_set_drvdata(generic_phy, qphy); in qmp_pcie_msm8996_create()