-1

ネットワークドライバーソースを調べて、プローブ機能でこれを見つけます

    priv->busclk = devm_clk_get(&pdev->dev, "ahb2_gmac");
    if (IS_ERR(priv->busclk)) {
            ret = PTR_ERR(priv->busclk);
            dev_err(&pdev->dev, "Cannot get AHB clock err=%d\n", ret);
            return ret;
    }
    ret = clk_prepare_enable(priv->busclk);
    if (ret != 0) {
            dev_err(&pdev->dev, "Cannot prepare_enable busclk\n");
            return ret;
    }

    cr = clk_get_rate(priv->miiclk);
    dev_info(&pdev->dev, "Current MII clkrate %lu\n", cr);

    ret = clk_set_rate(priv->miiclk, cr / 4); 

最初のステートメント devm_clk_get(&pdev->dev, "ahb2_gmac") では、Bus(AHB2) クロックを取得しています。ここでは clk_get_rate(priv->miiclk) で mii インターフェイス クロックを取得しています。

それが提供する目的 (バスと mii クロックの取得)、適切な emac 操作にどのように役立つのですか?

4

1 に答える 1

0

DTB で指定されたデバイス クロック設定を取得し、デバイス クロック レートを有効にして同じ値に設定します。クロックを有効にしないと、ペリフェラルは機能しません。最終的なクロック レート設定の詳細については、データ シートを参照する必要がある場合があります。

于 2016-03-22T03:56:38.950 に答える