コード例 #1
0
int
ufs_qcom_phy_init_clks(struct phy *generic_phy,
                       struct ufs_qcom_phy *phy_common)
{
    int err;

    err = ufs_qcom_phy_clk_get(generic_phy, "tx_iface_clk",
                               &phy_common->tx_iface_clk);
    if (err)
        goto out;

    err = ufs_qcom_phy_clk_get(generic_phy, "rx_iface_clk",
                               &phy_common->rx_iface_clk);
    if (err)
        goto out;

    err = ufs_qcom_phy_clk_get(generic_phy, "ref_clk_src",
                               &phy_common->ref_clk_src);
    if (err)
        goto out;

    /*
     * "ref_clk_parent" is optional hence don't abort init if it's not
     * found.
     */
    __ufs_qcom_phy_clk_get(generic_phy, "ref_clk_parent",
                           &phy_common->ref_clk_parent, false);

    err = ufs_qcom_phy_clk_get(generic_phy, "ref_clk",
                               &phy_common->ref_clk);

out:
    return err;
}
コード例 #2
0
ファイル: phy-qcom-ufs.c プロジェクト: kdave/btrfs-devel
int ufs_qcom_phy_init_clks(struct ufs_qcom_phy *phy_common)
{
    int err;

    if (of_device_is_compatible(phy_common->dev->of_node,
                                "qcom,msm8996-ufs-phy-qmp-14nm"))
        goto skip_txrx_clk;

    err = ufs_qcom_phy_clk_get(phy_common->dev, "tx_iface_clk",
                               &phy_common->tx_iface_clk);
    if (err)
        goto out;

    err = ufs_qcom_phy_clk_get(phy_common->dev, "rx_iface_clk",
                               &phy_common->rx_iface_clk);
    if (err)
        goto out;

    err = ufs_qcom_phy_clk_get(phy_common->dev, "ref_clk_src",
                               &phy_common->ref_clk_src);
    if (err)
        goto out;

skip_txrx_clk:
    /*
     * "ref_clk_parent" is optional hence don't abort init if it's not
     * found.
     */
    __ufs_qcom_phy_clk_get(phy_common->dev, "ref_clk_parent",
                           &phy_common->ref_clk_parent, false);

    err = ufs_qcom_phy_clk_get(phy_common->dev, "ref_clk",
                               &phy_common->ref_clk);

out:
    return err;
}
コード例 #3
0
ファイル: phy-qcom-ufs.c プロジェクト: kdave/btrfs-devel
static int ufs_qcom_phy_clk_get(struct device *dev,
                                const char *name, struct clk **clk_out)
{
    return __ufs_qcom_phy_clk_get(dev, name, clk_out, true);
}
コード例 #4
0
int ufs_qcom_phy_clk_get(struct phy *phy,
                         const char *name, struct clk **clk_out)
{
    return __ufs_qcom_phy_clk_get(phy, name, clk_out, true);
}