From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F9232E92BA; Wed, 18 Mar 2026 16:38:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773851882; cv=none; b=oIddwiyCbNn8XzkdzSuNqgrGEDkpGnWMHi54lZ+KvzEA1mJShn18U8y4sj//oVrLd0pWsbSsWAr5/h1f412k1782CU/3KVR+Zx5+a6Fc+Ow0+ZOFN+VTXJIYrZu+5uZGk3fIU5R1crzqilhjaZj+p73b5qC+Ip/GcxOhyaLRl4w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773851882; c=relaxed/simple; bh=5Jkuep/vLlDigVeWmTs/DhOngIlPtkb5pESGRVTgEIQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YR60iJlSyAwjjYZAQJ4zMAe9/OjCd4RZg2gbvyJgAQMWMgCaA76EoZSxYBXRHuTOeOnbjqUxxri5iQs2IJnrooGmM2DgVtgZMDmL3qP3PwlFxuY4+9+LZBNx5fPh0LrxscajtvOBSsgRH+BKDWwzSGykn3y4tLr1TnpBRNP4cEk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R11D7cUG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="R11D7cUG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B9F06C19421; Wed, 18 Mar 2026 16:37:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773851882; bh=5Jkuep/vLlDigVeWmTs/DhOngIlPtkb5pESGRVTgEIQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R11D7cUGj838U+xpeXLlsCxJr/XekmKgJJk7HqS7714JcjbIuT2usuSxRrk1l43BI Su39Mbs0abv0vo87tP+pPSCKBO/h1SmhQfaRKiqf6DHT9vv+QVtS1a3ll36TMh7L3D zrUJg7H1VyI21u5VvZBL4Diuwf5B6jrehPFq/zfkRd85mJwddWeUowGXwDCjvafU+7 JGJgjHqitfv0OqBuhp4C3DpRaRvaLlUteUC0KuYctOfOYOZxJoRc/gg5Clc/tCuOFK JiNfpJ3v1IJdY/nT/Ur8jratU0RDcFq8XpN0pYT2FReNy9Bk9Ao6nIL/N1Dzxc5RbM R00vY3LUFE11A== From: Conor Dooley To: netdev@vger.kernel.org Cc: conor@kernel.org, Conor Dooley , Valentina.FernandezAlanis@microchip.com, Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daire McNamara , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Nicolas Ferre , Claudiu Beznea , Richard Cochran , Samuel Holland , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, Dave Stevenson , Sean Anderson , Vineeth Karumanchi , Abin Joseph , =?UTF-8?q?Th=C3=A9o=20Lebrun?= , Ryan.Wanner@microchip.com Subject: [PATCH net-next v4 02/13] net: macb: split USRIO_HAS_CLKEN capability in two Date: Wed, 18 Mar 2026 16:37:33 +0000 Message-ID: <20260318-produce-canopener-0b61c538fabf@spud> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260318-surpass-puzzle-f94b46aa8808@spud> References: <20260318-surpass-puzzle-f94b46aa8808@spud> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3502; i=conor.dooley@microchip.com; h=from:subject:message-id; bh=TDcEt4gO7nw+FrU/aV4qA0N2hA+cJ3rWCHECrYVPXVw=; b=owGbwMvMwCVWscWwfUFT0iXG02pJDJm7rlwIcI4IO3397/mXHPze10UbH99d8XL9m10NeR8lE u6k7np0rKOUhUGMi0FWTJEl8XZfi9T6Py47nHvewsxhZQIZwsDFKQATWevCyLChjFklz2BpwMkL 8coc2Z55HPpiUilXS6Kfrvea9+d2UhUjw+PQ34euWJZ399xSa2IrN77x7/DGg6ICrkefNT+Tjw8 +wA0A X-Developer-Key: i=conor.dooley@microchip.com; a=openpgp; fpr=F9ECA03CF54F12CD01F1655722E2C55B37CF380C Content-Transfer-Encoding: 8bit From: Conor Dooley While trying to rework the internal/external refclk selection on sama7g5, Ryan and I noticed that the sama7g5 was "overloading" the meaning of MACB_CAPS_USRIO_HAS_CLKEN, using it differently to how it was originally intended. Originally, on the macb hardware on sam9620 et al, MACB_CAPS_USRIO_HAS_CLKEN represented the hardware having a bit that needed to be set to turn on the input clock to the transceivers. The sama7g5 doesn't have this bit, so for some reason the decision was made to reuse this capability flag to control selection of internal/external references. Split the caps in two, so that capabilities do what they say on the tin, and allow reworking the refclk selection handling without impacting the older devices that use MACB_CAPS_USRIO_CLKEN for its original purpose. Signed-off-by: Conor Dooley --- drivers/net/ethernet/cadence/macb.h | 2 ++ drivers/net/ethernet/cadence/macb_main.c | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h index 8cb0b3778ee9e..baf48f02d7e27 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -780,6 +780,7 @@ #define MACB_CAPS_RSC BIT(23) #define MACB_CAPS_NO_LSO BIT(24) #define MACB_CAPS_USRIO_HAS_MII BIT(25) +#define MACB_CAPS_USRIO_HAS_REFCLK_SOURCE BIT(26) /* LSO settings */ #define MACB_LSO_UFO_ENABLE 0x01 @@ -1211,6 +1212,7 @@ struct macb_usrio_config { u32 rmii; u32 rgmii; u32 refclk; + u32 clken; u32 hdfctlen; }; diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 778d2115f66fc..d908850c59498 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -4357,7 +4357,7 @@ static void macb_configure_caps(struct macb *bp, } if (refclk_ext) - bp->caps |= MACB_CAPS_USRIO_HAS_CLKEN; + bp->caps |= MACB_CAPS_USRIO_HAS_REFCLK_SOURCE; dev_dbg(&bp->pdev->dev, "Cadence caps 0x%08x\n", bp->caps); } @@ -4624,6 +4624,9 @@ static int macb_init(struct platform_device *pdev) } if (bp->caps & MACB_CAPS_USRIO_HAS_CLKEN) + val |= bp->usrio->clken; + + if (bp->caps & MACB_CAPS_USRIO_HAS_REFCLK_SOURCE) val |= bp->usrio->refclk; macb_or_gem_writel(bp, USRIO, val); @@ -5217,7 +5220,7 @@ static const struct macb_usrio_config at91_default_usrio = { .mii = MACB_BIT(MII), .rmii = MACB_BIT(RMII), .rgmii = GEM_BIT(RGMII), - .refclk = MACB_BIT(CLKEN), + .clken = MACB_BIT(CLKEN), }; static const struct macb_usrio_config sama7g5_usrio = { @@ -5355,6 +5358,7 @@ static const struct macb_config mpfs_config = { static const struct macb_config sama7g5_gem_config = { .caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_CLK_HW_CHG | MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | + MACB_CAPS_USRIO_HAS_REFCLK_SOURCE | MACB_CAPS_MIIONRGMII | MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_USRIO_HAS_MII, .dma_burst_length = 16, @@ -5365,7 +5369,8 @@ static const struct macb_config sama7g5_gem_config = { static const struct macb_config sama7g5_emac_config = { .caps = MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | - MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_MIIONRGMII | + MACB_CAPS_MIIONRGMII | + MACB_CAPS_USRIO_HAS_REFCLK_SOURCE | MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_USRIO_HAS_MII, .dma_burst_length = 16, -- 2.51.0