static int ufs_qcom_phy_qmp_20nm_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct phy *generic_phy; struct ufs_qcom_phy_qmp_20nm *phy; int err = 0; phy = devm_kzalloc(dev, sizeof(*phy), GFP_KERNEL); if (!phy) { dev_err(dev, "%s: failed to allocate phy\n", __func__); err = -ENOMEM; goto out; } generic_phy = ufs_qcom_phy_generic_probe(pdev, &phy->common_cfg, &ufs_qcom_phy_qmp_20nm_phy_ops, &phy_20nm_ops); if (!generic_phy) { dev_err(dev, "%s: ufs_qcom_phy_generic_probe() failed\n", __func__); err = -EIO; goto out; } phy_set_drvdata(generic_phy, phy); strlcpy(phy->common_cfg.name, UFS_PHY_NAME, sizeof(phy->common_cfg.name)); out: return err; }
static int ufs_qcom_phy_qmp_20nm_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct phy *generic_phy; struct ufs_qcom_phy_qmp_20nm *phy; struct ufs_qcom_phy *phy_common; int err = 0; phy = devm_kzalloc(dev, sizeof(*phy), GFP_KERNEL); if (!phy) { err = -ENOMEM; goto out; } phy_common = &phy->common_cfg; generic_phy = ufs_qcom_phy_generic_probe(pdev, phy_common, &ufs_qcom_phy_qmp_20nm_phy_ops, &phy_20nm_ops); if (!generic_phy) { err = -EIO; goto out; } err = ufs_qcom_phy_init_clks(phy_common); if (err) goto out; err = ufs_qcom_phy_init_vregulators(phy_common); if (err) goto out; ufs_qcom_phy_qmp_20nm_advertise_quirks(phy_common); phy_set_drvdata(generic_phy, phy); strlcpy(phy_common->name, UFS_PHY_NAME, sizeof(phy_common->name)); out: return err; }