phy_common 119 drivers/phy/qualcomm/phy-qcom-ufs-i.h int ufs_qcom_phy_init_clks(struct ufs_qcom_phy *phy_common); phy_common 120 drivers/phy/qualcomm/phy-qcom-ufs-i.h int ufs_qcom_phy_init_vregulators(struct ufs_qcom_phy *phy_common); phy_common 30 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c void ufs_qcom_phy_qmp_14nm_advertise_quirks(struct ufs_qcom_phy *phy_common) phy_common 32 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c phy_common->quirks = phy_common 40 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c struct ufs_qcom_phy *phy_common = get_ufs_qcom_phy(generic_phy); phy_common 42 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c phy_common->mode = PHY_MODE_INVALID; phy_common 45 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c phy_common->mode = mode; phy_common 82 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c static int ufs_qcom_phy_qmp_14nm_is_pcs_ready(struct ufs_qcom_phy *phy_common) phy_common 87 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c err = readl_poll_timeout(phy_common->mmio + UFS_PHY_PCS_READY_STATUS, phy_common 90 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c dev_err(phy_common->dev, "%s: poll for pcs failed err = %d\n", phy_common 115 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c struct ufs_qcom_phy *phy_common; phy_common 123 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c phy_common = &phy->common_cfg; phy_common 125 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c generic_phy = ufs_qcom_phy_generic_probe(pdev, phy_common, phy_common 133 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c err = ufs_qcom_phy_init_clks(phy_common); phy_common 137 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c err = ufs_qcom_phy_init_vregulators(phy_common); phy_common 141 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c phy_common->vdda_phy.max_uV = UFS_PHY_VDDA_PHY_UV; phy_common 142 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c phy_common->vdda_phy.min_uV = UFS_PHY_VDDA_PHY_UV; phy_common 144 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c ufs_qcom_phy_qmp_14nm_advertise_quirks(phy_common); phy_common 148 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c strlcpy(phy_common->name, UFS_PHY_NAME, sizeof(phy_common->name)); phy_common 49 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c void ufs_qcom_phy_qmp_20nm_advertise_quirks(struct ufs_qcom_phy *phy_common) phy_common 51 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c phy_common->quirks = phy_common 59 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c struct ufs_qcom_phy *phy_common = get_ufs_qcom_phy(generic_phy); phy_common 61 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c phy_common->mode = PHY_MODE_INVALID; phy_common 64 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c phy_common->mode = mode; phy_common 140 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c static int ufs_qcom_phy_qmp_20nm_is_pcs_ready(struct ufs_qcom_phy *phy_common) phy_common 145 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c err = readl_poll_timeout(phy_common->mmio + UFS_PHY_PCS_READY_STATUS, phy_common 148 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c dev_err(phy_common->dev, "%s: poll for pcs failed err = %d\n", phy_common 173 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c struct ufs_qcom_phy *phy_common; phy_common 181 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c phy_common = &phy->common_cfg; phy_common 183 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c generic_phy = ufs_qcom_phy_generic_probe(pdev, phy_common, phy_common 191 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c err = ufs_qcom_phy_init_clks(phy_common); phy_common 195 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c err = ufs_qcom_phy_init_vregulators(phy_common); phy_common 199 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c ufs_qcom_phy_qmp_20nm_advertise_quirks(phy_common); phy_common 203 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c strlcpy(phy_common->name, UFS_PHY_NAME, sizeof(phy_common->name)); phy_common 76 drivers/phy/qualcomm/phy-qcom-ufs.c struct ufs_qcom_phy *phy_common) phy_common 83 drivers/phy/qualcomm/phy-qcom-ufs.c phy_common->mmio = devm_ioremap_resource(dev, res); phy_common 84 drivers/phy/qualcomm/phy-qcom-ufs.c if (IS_ERR((void const *)phy_common->mmio)) { phy_common 85 drivers/phy/qualcomm/phy-qcom-ufs.c err = PTR_ERR((void const *)phy_common->mmio); phy_common 86 drivers/phy/qualcomm/phy-qcom-ufs.c phy_common->mmio = NULL; phy_common 95 drivers/phy/qualcomm/phy-qcom-ufs.c phy_common->dev_ref_clk_ctrl_mmio = devm_ioremap_resource(dev, res); phy_common 96 drivers/phy/qualcomm/phy-qcom-ufs.c if (IS_ERR((void const *)phy_common->dev_ref_clk_ctrl_mmio)) phy_common 97 drivers/phy/qualcomm/phy-qcom-ufs.c phy_common->dev_ref_clk_ctrl_mmio = NULL; phy_common 141 drivers/phy/qualcomm/phy-qcom-ufs.c static int ufs_qcom_phy_get_reset(struct ufs_qcom_phy *phy_common) phy_common 145 drivers/phy/qualcomm/phy-qcom-ufs.c if (phy_common->ufs_reset) phy_common 148 drivers/phy/qualcomm/phy-qcom-ufs.c reset = devm_reset_control_get_exclusive_by_index(phy_common->dev, 0); phy_common 152 drivers/phy/qualcomm/phy-qcom-ufs.c phy_common->ufs_reset = reset; phy_common 180 drivers/phy/qualcomm/phy-qcom-ufs.c int ufs_qcom_phy_init_clks(struct ufs_qcom_phy *phy_common) phy_common 184 drivers/phy/qualcomm/phy-qcom-ufs.c if (of_device_is_compatible(phy_common->dev->of_node, phy_common 188 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_clk_get(phy_common->dev, "tx_iface_clk", phy_common 189 drivers/phy/qualcomm/phy-qcom-ufs.c &phy_common->tx_iface_clk); phy_common 193 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_clk_get(phy_common->dev, "rx_iface_clk", phy_common 194 drivers/phy/qualcomm/phy-qcom-ufs.c &phy_common->rx_iface_clk); phy_common 199 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_clk_get(phy_common->dev, "ref_clk_src", phy_common 200 drivers/phy/qualcomm/phy-qcom-ufs.c &phy_common->ref_clk_src); phy_common 208 drivers/phy/qualcomm/phy-qcom-ufs.c __ufs_qcom_phy_clk_get(phy_common->dev, "ref_clk_parent", phy_common 209 drivers/phy/qualcomm/phy-qcom-ufs.c &phy_common->ref_clk_parent, false); phy_common 211 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_clk_get(phy_common->dev, "ref_clk", phy_common 212 drivers/phy/qualcomm/phy-qcom-ufs.c &phy_common->ref_clk); phy_common 268 drivers/phy/qualcomm/phy-qcom-ufs.c int ufs_qcom_phy_init_vregulators(struct ufs_qcom_phy *phy_common) phy_common 272 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_init_vreg(phy_common->dev, &phy_common->vdda_pll, phy_common 277 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_init_vreg(phy_common->dev, &phy_common->vdda_phy, phy_common 283 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_init_vreg(phy_common->dev, &phy_common->vddp_ref_clk, phy_common 535 drivers/phy/qualcomm/phy-qcom-ufs.c struct ufs_qcom_phy *phy_common = get_ufs_qcom_phy(generic_phy); phy_common 536 drivers/phy/qualcomm/phy-qcom-ufs.c struct device *dev = phy_common->dev; phy_common 540 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_get_reset(phy_common); phy_common 544 drivers/phy/qualcomm/phy-qcom-ufs.c err = reset_control_assert(phy_common->ufs_reset); phy_common 548 drivers/phy/qualcomm/phy-qcom-ufs.c if (phy_common->mode == PHY_MODE_UFS_HS_B) phy_common 551 drivers/phy/qualcomm/phy-qcom-ufs.c err = phy_common->phy_spec_ops->calibrate(phy_common, is_rate_B); phy_common 555 drivers/phy/qualcomm/phy-qcom-ufs.c err = reset_control_deassert(phy_common->ufs_reset); phy_common 561 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_start_serdes(phy_common); phy_common 565 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_is_pcs_ready(phy_common); phy_common 569 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_enable_vreg(dev, &phy_common->vdda_phy); phy_common 576 drivers/phy/qualcomm/phy-qcom-ufs.c phy_common->phy_spec_ops->power_control(phy_common, true); phy_common 579 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_enable_vreg(dev, &phy_common->vdda_pll); phy_common 586 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_enable_iface_clk(phy_common); phy_common 593 drivers/phy/qualcomm/phy-qcom-ufs.c err = ufs_qcom_phy_enable_ref_clk(phy_common); phy_common 601 drivers/phy/qualcomm/phy-qcom-ufs.c if (phy_common->vddp_ref_clk.reg) { phy_common 603 drivers/phy/qualcomm/phy-qcom-ufs.c &phy_common->vddp_ref_clk); phy_common 614 drivers/phy/qualcomm/phy-qcom-ufs.c ufs_qcom_phy_disable_ref_clk(phy_common); phy_common 616 drivers/phy/qualcomm/phy-qcom-ufs.c ufs_qcom_phy_disable_iface_clk(phy_common); phy_common 618 drivers/phy/qualcomm/phy-qcom-ufs.c ufs_qcom_phy_disable_vreg(dev, &phy_common->vdda_pll); phy_common 620 drivers/phy/qualcomm/phy-qcom-ufs.c ufs_qcom_phy_disable_vreg(dev, &phy_common->vdda_phy); phy_common 628 drivers/phy/qualcomm/phy-qcom-ufs.c struct ufs_qcom_phy *phy_common = get_ufs_qcom_phy(generic_phy); phy_common 630 drivers/phy/qualcomm/phy-qcom-ufs.c phy_common->phy_spec_ops->power_control(phy_common, false); phy_common 632 drivers/phy/qualcomm/phy-qcom-ufs.c if (phy_common->vddp_ref_clk.reg) phy_common 633 drivers/phy/qualcomm/phy-qcom-ufs.c ufs_qcom_phy_disable_vreg(phy_common->dev, phy_common 634 drivers/phy/qualcomm/phy-qcom-ufs.c &phy_common->vddp_ref_clk); phy_common 635 drivers/phy/qualcomm/phy-qcom-ufs.c ufs_qcom_phy_disable_ref_clk(phy_common); phy_common 636 drivers/phy/qualcomm/phy-qcom-ufs.c ufs_qcom_phy_disable_iface_clk(phy_common); phy_common 638 drivers/phy/qualcomm/phy-qcom-ufs.c ufs_qcom_phy_disable_vreg(phy_common->dev, &phy_common->vdda_pll); phy_common 639 drivers/phy/qualcomm/phy-qcom-ufs.c ufs_qcom_phy_disable_vreg(phy_common->dev, &phy_common->vdda_phy); phy_common 640 drivers/phy/qualcomm/phy-qcom-ufs.c reset_control_assert(phy_common->ufs_reset);