From patchwork Sat Feb 11 21:47:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 1740968 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=denx.de header.i=@denx.de header.a=rsa-sha256 header.s=phobos-20191101 header.b=Gzr5Sckr; dkim=pass (2048-bit key) header.d=denx.de header.i=@denx.de header.a=rsa-sha256 header.s=phobos-20191101 header.b=L8Yvi0dX; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4PDkm42Dkzz23qt for ; Sun, 12 Feb 2023 08:49:56 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DFBD38576F; Sat, 11 Feb 2023 22:48:42 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1676152123; bh=ysvU1kbNZNZGRa9Ib2uecfsEwJCzDqVHZaRBNcr6m+I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=Gzr5SckroClN/fBCg/Libij4ve19cK+awTSRxxhcZd+9y8fMfHfpBKFy4JM7IQ+UH Fh5cSRFpEhVAL90UG6WSfCYZ9A+lVqJLCcOwb69B/HyA+bCoCpMLfjThpAQFBvTYXF L/F0D0k7ffAvmKFyP/vdwRArMElvOobs3rVXtrsG3vMsh0/jK9rtj016brlGGzQXZQ 7GNPlZfP9zFy3hPTveY8fOzvyY+8OLx6eXOnl4Qi5u4/P7hBB76elk1sX78X+Fl6pi LZeAEhTs+Qns80Yj+Lg/WL3UTr824onqRJkIm8NsX3nc8Zi3Pz8g6IddilewBwTM0p JpD83lePAx6IQ== Received: from tr.lan (ip-86-49-120-218.bb.vodafone.cz [86.49.120.218]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: marex@denx.de) by phobos.denx.de (Postfix) with ESMTPSA id 226CC85650; Sat, 11 Feb 2023 22:47:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1676152078; bh=ysvU1kbNZNZGRa9Ib2uecfsEwJCzDqVHZaRBNcr6m+I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L8Yvi0dXUg9kZ4X+dvgQ4CXx6eYRtdVOvypZl4SbaBh/UrguirAbUOQXPLzuSfEyz Pw0Vf7V+GSAbVAtXFcs5oVemw1CY0R8DfRcnCw/7r7MdIWLzHuNunfMAZqktBgvxAP x7xN4+83FtYydhkGZpjMbho4xe7mGDpfm6LUxMBL9tjb95EvRK0iVuUBd73Ct6LcBx tJQoFR8Yn2kr5r5UFj9w54owQt9b/889Qo/qw1FDdOGmld/GO05o3x/U3sDk9uY9rl miPq44w/I99HCIn0wfuI8aFHog1oXjYHOcYa+D384Tfwwb0kidYANcxVn7a3teIs/Q boZyJRkOuvkZA== From: Marek Vasut To: u-boot@lists.denx.de Cc: Marek Vasut , "Ariel D'Alessandro" , "NXP i.MX U-Boot Team" , Andrey Zhizhikin , Fabio Estevam , Joe Hershberger , Lukasz Majewski , Marcel Ziswiler , Michael Trimarchi , Peng Fan , Ramon Fried , Sean Anderson , Stefano Babic , Tim Harvey , Tommaso Merciai Subject: [PATCH v3 10/14] net: fec_mxc: Add ref clock setup support for i.MX8M Mini/Nano/Plus Date: Sat, 11 Feb 2023 22:47:25 +0100 Message-Id: <20230211214729.478566-10-marex@denx.de> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230211214729.478566-1-marex@denx.de> References: <20230211214729.478566-1-marex@denx.de> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean The FEC ref clock frequency on i.MX8M Mini/Nano/Plus was so far configured via ad-hoc board code. Replace that with DM clock clk_set_rate() instead. This way, the driver claims all its required clock and sets the ref clock rate, without any need of architecture specific register fiddling. Signed-off-by: Marek Vasut --- Cc: "Ariel D'Alessandro" Cc: "NXP i.MX U-Boot Team" Cc: Andrey Zhizhikin Cc: Fabio Estevam Cc: Joe Hershberger Cc: Lukasz Majewski Cc: Marcel Ziswiler Cc: Marek Vasut Cc: Michael Trimarchi Cc: Peng Fan Cc: Ramon Fried Cc: Sean Anderson Cc: Stefano Babic Cc: Tim Harvey Cc: Tommaso Merciai Cc: u-boot@lists.denx.de --- V3: New patch --- drivers/net/fec_mxc.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index 1a6c18a441f..7a8577158ae 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -1196,6 +1196,33 @@ static void fec_gpio_reset(struct fec_priv *priv) } #endif +static int fecmxc_set_ref_clk(struct clk *clk_ref, phy_interface_t interface) +{ + unsigned int freq; + int ret; + + if (!CONFIG_IS_ENABLED(CLK_CCF)) + return 0; + + if (interface == PHY_INTERFACE_MODE_MII) + freq = 25000000; + else if (interface == PHY_INTERFACE_MODE_RMII) + freq = 50000000; + else if (interface == PHY_INTERFACE_MODE_RGMII || + interface == PHY_INTERFACE_MODE_RGMII_ID || + interface == PHY_INTERFACE_MODE_RGMII_RXID || + interface == PHY_INTERFACE_MODE_RGMII_TXID) + freq = 125000000; + else + return -EINVAL; + + ret = clk_set_rate(clk_ref, freq); + if (ret < 0) + return ret; + + return 0; +} + static int fecmxc_probe(struct udevice *dev) { bool dm_mii_bus = true; @@ -1253,6 +1280,11 @@ static int fecmxc_probe(struct udevice *dev) ret = clk_get_by_name(dev, "enet_clk_ref", &priv->clk_ref); if (!ret) { + ret = fecmxc_set_ref_clk(&priv->clk_ref, + pdata->phy_interface); + if (ret) + return ret; + ret = clk_enable(&priv->clk_ref); if (ret) return ret;