lkml.org 
[lkml]   [2024]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH v3 10/18] phy: cadence-torrent: extract calls to clk_get from cdns_torrent_clk
    Extract calls to clk_get from cdns_torrent_clk into a separate function.
    It needs to call cdns_torrent_clk at resume without looking up the clock.

    Based on the work of Théo Lebrun <theo.lebrun@bootlin.com>

    Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
    ---
    drivers/phy/cadence/phy-cadence-torrent.c | 21 ++++++++++++++-------
    1 file changed, 14 insertions(+), 7 deletions(-)

    diff --git a/drivers/phy/cadence/phy-cadence-torrent.c b/drivers/phy/cadence/phy-cadence-torrent.c
    index a75c96385c57..803a76acf2fd 100644
    --- a/drivers/phy/cadence/phy-cadence-torrent.c
    +++ b/drivers/phy/cadence/phy-cadence-torrent.c
    @@ -2681,18 +2681,21 @@ static int cdns_torrent_reset(struct cdns_torrent_phy *cdns_phy)
    return 0;
    }

    +static int cdns_torrent_of_get_clk(struct cdns_torrent_phy *cdns_phy)
    +{
    + cdns_phy->clk = devm_clk_get(cdns_phy->dev, "refclk");
    + if (IS_ERR(cdns_phy->clk))
    + return dev_err_probe(cdns_phy->dev, PTR_ERR(cdns_phy->clk),
    + "phy ref clock not found\n");
    +
    + return 0;
    +}
    +
    static int cdns_torrent_clk(struct cdns_torrent_phy *cdns_phy)
    {
    - struct device *dev = cdns_phy->dev;
    unsigned long ref_clk_rate;
    int ret;

    - cdns_phy->clk = devm_clk_get(dev, "refclk");
    - if (IS_ERR(cdns_phy->clk)) {
    - dev_err(dev, "phy ref clock not found\n");
    - return PTR_ERR(cdns_phy->clk);
    - }
    -
    ret = clk_prepare_enable(cdns_phy->clk);
    if (ret) {
    dev_err(cdns_phy->dev, "Failed to prepare ref clock\n");
    @@ -2776,6 +2779,10 @@ static int cdns_torrent_phy_probe(struct platform_device *pdev)
    if (ret)
    return ret;

    + ret = cdns_torrent_of_get_clk(cdns_phy);
    + if (ret)
    + goto clk_cleanup;
    +
    regmap_field_read(cdns_phy->phy_pma_cmn_ctrl_1, &already_configured);

    if (!already_configured) {
    --
    2.39.2


    \
     
     \ /
      Last update: 2024-05-27 15:05    [W:4.071 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site