Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4025443pxb; Mon, 8 Feb 2021 06:18:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJygGLQ3rBZ+NaGMOICMx1JdIjq9OGmhZGN3HAWmD4XqSOzdm3WtKqEgpbxlxmVTPlqEhDdC X-Received: by 2002:a50:fe86:: with SMTP id d6mr17514107edt.80.1612793884754; Mon, 08 Feb 2021 06:18:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612793884; cv=none; d=google.com; s=arc-20160816; b=QAiwYQ0kCY2Hhwx0U87W1d6RIODzfdGMdNqYUkGMPAMa4NZSeAfzwgqFbej6/E5ev0 zEEURr7PtpamsfRxkJDXJZLuiRYaYmVujF5qU2ZP/MSEuTxKsGuZVQCEpKZLYtB6MQPV 39arCIeZLcBtcN9UlGthAjPQSHa6Hxj+jGhFpSwXWYGz+JMoOuEAYaHadxssbbQ481HC 4JxWflCZ3qaaCN2bSIkpJwQxQ9AaxTDyfBReKQqPfIVLQ84pnLpJjB+K4fap78ONV7tS PoF/6OXaubpp+gKGSdhuijI+6KIyomgSQ8j4OfuvmYHmRIU4YdGk4K7IcVDRvasbajJB CH4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=4SYBQTdwtxa2Uo+yFhCr1koGxJVvDYdVkEfx5C0KVJw=; b=SapszCXJBen2w0hKRtlNq97AhWoYQCWKvJtGQaxv+lnm3tw9pGVoWHEQv1fC8zeFiC Jt+q3o4CJe4RDLVT+rEImWQZqoPJzXIdjEKa4EYz/lj7DM+NzloDxIXs2itcZUFqMvcI 2bsQC0FZm5zGEWSWQJPlo/67T14jhvU9NbBytlwepZATV5KZCZl8ImOMh3ZRep5KSwxr LOG05XuUiDte5q/bpxmf32H2BeFr1BYRXuVc7LoneWI9unD5V/WrsCtewTfy1X7xJ+y+ ANDS8KTzyKg64Ysc4F1ngiZd2eOIBXgFia5JQxvyam1xvtshIhiNZEEVKE/smYO4qHAq hw/A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i7si11704521edg.300.2021.02.08.06.17.40; Mon, 08 Feb 2021 06:18:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231904AbhBHOQl (ORCPT + 99 others); Mon, 8 Feb 2021 09:16:41 -0500 Received: from mail.baikalelectronics.com ([87.245.175.226]:57092 "EHLO mail.baikalelectronics.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231735AbhBHN6j (ORCPT ); Mon, 8 Feb 2021 08:58:39 -0500 From: Serge Semin To: Rob Herring , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , "David S. Miller" , Jakub Kicinski , Johan Hovold , Maxime Ripard , Joao Pinto , Lars Persson , Maxime Coquelin CC: Serge Semin , Serge Semin , Alexey Malahov , Pavel Parkhomenko , Vyacheslav Mitrofanov , , , , , Subject: [PATCH v2 23/24] net: stmmac: Use pclk to set MDC clock frequency Date: Mon, 8 Feb 2021 16:56:07 +0300 Message-ID: <20210208135609.7685-24-Sergey.Semin@baikalelectronics.ru> In-Reply-To: <20210208135609.7685-1-Sergey.Semin@baikalelectronics.ru> References: <20210208135609.7685-1-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-ClientProxiedBy: MAIL.baikal.int (192.168.51.25) To mail (192.168.51.25) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In accordance with [1] the MDC clock frequency is supposed to be selected with respect to the CSR clock frequency. CSR clock can be either tied to the DW MAC system clock (GMAC main clock) or supplied via a dedicated clk_csr_i signal. Current MDC clock selection procedure handles the former case while having no support of the later one. That's wrong for the devices which have separate system and CSR clocks. Let's fix it by first trying to get the synchro-signal rate from the "pclk" clock, if it hasn't been specified then fall-back to the "stmmaceth" clock. [1] DesignWare Cores Ethernet MAC Universal Databook, Revision 3.73a, October 2013, p. 424. Signed-off-by: Serge Semin --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index a8dec219c295..03acf14d76de 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -206,7 +206,12 @@ static void stmmac_clk_csr_set(struct stmmac_priv *priv) { u32 clk_rate; - clk_rate = clk_get_rate(priv->plat->stmmac_clk); + /* If APB clock has been specified then it is supposed to be used + * to select the CSR mode. Otherwise the application clock is the + * source of the periodic signal for the CSR interface. + */ + clk_rate = clk_get_rate(priv->plat->pclk) ?: + clk_get_rate(priv->plat->stmmac_clk); /* Platform provided default clk_csr would be assumed valid * for all other cases except for the below mentioned ones. -- 2.29.2