From patchwork Mon Mar 17 02:59:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacky Chou X-Patchwork-Id: 14018604 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1AEBCC28B2F for ; Mon, 17 Mar 2025 03:03:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:CC:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=P2mKceTvgTctEbOYK+iHAPv2MI86TCefahm59dGSwEs=; b=2bo07aOc2V4Jb1YlAQYP8iUNyt 0n4zcCUlQj2DaFkV2CPXplemgYMKmxPanSf3VCPMUHCm2kJ/iAvRufEU9WmHPIhIyyW+dXyngoxou HinNmt4prh/eAzmqrsAx1G6EnjXdCib7/QeU7OK9B/jE4Usty7ETtWAOPDmOTLOA/xm1lqtdhCouR VRxaPl9wT/8h+FGIi9jpq0eaxr5etfezr6d+aGBLA6+Zn9GTGU5YWGCSDIGuyuLEDssL79i0F+rmy ZuTnR/E1acq45ts2ORt/PrWuT6rN7o/h2vhApTENRn6qV5TUv9GKt+Qfxyo2NmgWkachSTWSwxxOG 87QC7UXw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tu0kr-000000010sv-0vhx; Mon, 17 Mar 2025 03:03:05 +0000 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tu0hY-00000000zyY-1cAC for linux-arm-kernel@lists.infradead.org; Mon, 17 Mar 2025 02:59:41 +0000 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Mon, 17 Mar 2025 10:59:22 +0800 Received: from mail.aspeedtech.com (192.168.10.13) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1258.12 via Frontend Transport; Mon, 17 Mar 2025 10:59:22 +0800 From: Jacky Chou To: , , , , , , , , , , , , , , , CC: Subject: [net-next 1/4] ARM: dts: aspeed-g6:add scu to mac for RGMII delay Date: Mon, 17 Mar 2025 10:59:19 +0800 Message-ID: <20250317025922.1526937-2-jacky_chou@aspeedtech.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250317025922.1526937-1-jacky_chou@aspeedtech.com> References: <20250317025922.1526937-1-jacky_chou@aspeedtech.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250316_195940_420060_281EC3A0 X-CRM114-Status: UNSURE ( 6.48 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The RGMII delay of AST2600 MAC is configured in SCU register, so add scu regmap into mac node. Signed-off-by: Jacky Chou --- arch/arm/boot/dts/aspeed/aspeed-g6.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi b/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi index 8ed715bd53aa..17e979d616dc 100644 --- a/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi +++ b/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi @@ -236,6 +236,7 @@ mac0: ethernet@1e660000 { reg = <0x1e660000 0x180>; interrupts = ; clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>; + scu = <&syscon>; status = "disabled"; }; @@ -244,6 +245,7 @@ mac1: ethernet@1e680000 { reg = <0x1e680000 0x180>; interrupts = ; clocks = <&syscon ASPEED_CLK_GATE_MAC2CLK>; + scu = <&syscon>; status = "disabled"; }; @@ -252,6 +254,7 @@ mac2: ethernet@1e670000 { reg = <0x1e670000 0x180>; interrupts = ; clocks = <&syscon ASPEED_CLK_GATE_MAC3CLK>; + scu = <&syscon>; status = "disabled"; }; @@ -260,6 +263,7 @@ mac3: ethernet@1e690000 { reg = <0x1e690000 0x180>; interrupts = ; clocks = <&syscon ASPEED_CLK_GATE_MAC4CLK>; + scu = <&syscon>; status = "disabled"; }; From patchwork Mon Mar 17 02:59:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacky Chou X-Patchwork-Id: 14018605 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BACC6C28B2F for ; Mon, 17 Mar 2025 03:04:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:CC:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=hbW5gVH0/GMypEjK6NX6CcK7rWry03g6woQ7It58TtI=; b=KjefBXi35V0V0p4K62/U/SHhyJ 9hPbKIg7blNPAhpwvQtQLgns3FbbkqGLU57ib9evM+ksZg9Y6lciNOAXIKCyY+f/utB3toA7yyJeR wxzWjUzbqFuPeMd+7zw5TmCswVYBQK+qi5VKdefaTetTMK14PlW0Aj0f87c6UvpXI31vXteOCq0Be YlZkX5tmsZ85R+7RrZKFTe0EAwGZL/r1R3CohlT13dkvpeUJFVOjP71wwhycRML5yb7bAmRwpWKyN nw+wAY7C/8uhQXC7jA0f/jJ8/KA/kUYziOdB63fJu/qj+Y18lw/L83Ksv6ReKJ2HGDQL3lL03k78Y CieFgqUw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tu0mV-0000000118T-0JRx; Mon, 17 Mar 2025 03:04:47 +0000 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tu0ha-00000000zyY-1DvU for linux-arm-kernel@lists.infradead.org; Mon, 17 Mar 2025 02:59:43 +0000 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Mon, 17 Mar 2025 10:59:22 +0800 Received: from mail.aspeedtech.com (192.168.10.13) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1258.12 via Frontend Transport; Mon, 17 Mar 2025 10:59:22 +0800 From: Jacky Chou To: , , , , , , , , , , , , , , , CC: Subject: [net-next 2/4] ARM: dts: ast2600-evb: add default RGMII delay Date: Mon, 17 Mar 2025 10:59:20 +0800 Message-ID: <20250317025922.1526937-3-jacky_chou@aspeedtech.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250317025922.1526937-1-jacky_chou@aspeedtech.com> References: <20250317025922.1526937-1-jacky_chou@aspeedtech.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250316_195942_329884_A4571E4D X-CRM114-Status: UNSURE ( 7.64 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use tx-internal-delay-ps and rx-internal-delay-ps to configure the RGMII delay on MAC. And add default value for AST2600 MAC in dts. Refer to faraday,ftgmac100yaml to know how to configure the RGMII delay. Signed-off-by: Jacky Chou --- arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dts b/arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dts index de83c0eb1d6e..1db1f2a02d91 100644 --- a/arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dts +++ b/arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dts @@ -126,6 +126,9 @@ &mac0 { phy-mode = "rgmii-rxid"; phy-handle = <ðphy0>; + tx-internal-delay-ps = <16>; + rx-internal-delay-ps = <10>; + pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rgmii1_default>; }; @@ -137,6 +140,9 @@ &mac1 { phy-mode = "rgmii-rxid"; phy-handle = <ðphy1>; + tx-internal-delay-ps = <16>; + rx-internal-delay-ps = <10>; + pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rgmii2_default>; }; @@ -147,6 +153,9 @@ &mac2 { phy-mode = "rgmii"; phy-handle = <ðphy2>; + tx-internal-delay-ps = <8>; + rx-internal-delay-ps = <4>; + pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rgmii3_default>; }; @@ -157,6 +166,9 @@ &mac3 { phy-mode = "rgmii"; phy-handle = <ðphy3>; + tx-internal-delay-ps = <8>; + rx-internal-delay-ps = <4>; + pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rgmii4_default>; }; From patchwork Mon Mar 17 02:59:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacky Chou X-Patchwork-Id: 14018606 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B072AC28B2F for ; Mon, 17 Mar 2025 03:06:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:CC:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=pbcumU2ifuiNtuXVGGwdbDs+0MQ0RaTtxOStGoUTBn8=; b=l5hxn51SO/N7btocLejD2FaYda 7VWXjIJba9sGRZoy2pEU5JtSGvnE6Q78EmnmoQNuiUr/732Ji8bmjJ/HVZTonv9UYAgDLwyPsV9mH v9PPH3meo9gKp3+kFBsBEKIrfTrmcVbsQW3LbGqv6weXug0IbsRmyia3Q7iSkJ02WMU/sDkxN2jIE TIfZ7VGNjytzK/v9rNNmYAIsH4GCqyKP/DHvEWKtMKTkZGFDfnqvPE2UyIZTGhIF/BywTJ2N/7f7z wqWl4g21At7MLwBVy0X8ecMpP7ojiLbeOdnEXTCFGcbKpMKYmxiwlSQZUu9S+SQ83A+zH3KeTOhR3 yhAz5Agw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tu0o8-000000011NN-3DC5; Mon, 17 Mar 2025 03:06:28 +0000 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tu0hb-00000000zyY-2wQS for linux-arm-kernel@lists.infradead.org; Mon, 17 Mar 2025 02:59:44 +0000 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Mon, 17 Mar 2025 10:59:22 +0800 Received: from mail.aspeedtech.com (192.168.10.13) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1258.12 via Frontend Transport; Mon, 17 Mar 2025 10:59:22 +0800 From: Jacky Chou To: , , , , , , , , , , , , , , , CC: Subject: [net-next 3/4] dt-bindings: net: ftgmac100: add rgmii delay properties Date: Mon, 17 Mar 2025 10:59:21 +0800 Message-ID: <20250317025922.1526937-4-jacky_chou@aspeedtech.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250317025922.1526937-1-jacky_chou@aspeedtech.com> References: <20250317025922.1526937-1-jacky_chou@aspeedtech.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250316_195943_737146_9857FB28 X-CRM114-Status: GOOD ( 10.17 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add tx-internal-delay-ps and rx-internal-delay-ps to configure the RGMII delay for MAC. According to ethernet-controller.yaml, they use for RGMII TX and RX delay. In Aspeed desgin, the RGMII delay is a number of ps as unit to set delay, do not use one ps as unit. The values are different from each MAC. So, here describes the property values as index to configure corresponding scu register. Signed-off-by: Jacky Chou --- .../bindings/net/faraday,ftgmac100.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml b/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml index 55d6a8379025..c5904aa84e05 100644 --- a/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml +++ b/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml @@ -66,6 +66,20 @@ properties: type: boolean deprecated: true + rx-internal-delay-ps: + description: + Setting this property to a non-zero number sets the RX internal delay + for the MAC. Use this property value as a index not a ps unit to + configure the corresponding delay register field. And the index range is + 0 to 63. + + tx-internal-delay-ps: + description: + Setting this property to a non-zero number sets the TX internal delay + for the MAC. Use this property value as a index not a ps unit to + configure the corresponding delay register field. And the index range is + 0 to 63. + mdio: $ref: /schemas/net/mdio.yaml# @@ -102,4 +116,4 @@ examples: reg = <1>; }; }; - }; + }; \ No newline at end of file From patchwork Mon Mar 17 02:59:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacky Chou X-Patchwork-Id: 14018607 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7083CC28B2F for ; Mon, 17 Mar 2025 03:08:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:CC:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=dfPNm4gjbKk/wSrXYiTAOhvmCS7f3bgH/l7AyRMHyTk=; b=hpU6hrT0TjSmY4baZ67NVYQjDp /p3EQVce48doozwu7yb1Agdp2ZjFb8cy4Vnen0dwdhAVTvbbziIHa6VsLfvJkZlg11KW8NMeVHKHX hVb5hQHvDwguiX7MmO41VXhAyFthjWPjrlVtdmL9bmPJDoIibZcfwnA2OWqXm64NHl7ZByhUQt9FR 4d5H6PMhH3rjbu0T92sgF7qBpSJpcIL+akFXzA4f1+86/k2mX6R2fQR0K/BbyafvlPCf/AjQeqvbY r5X6UQ2nwX9U3tlLmjSWbObzc2+iQT+NPgrRpcrVAr9x7P1fVS+njuw8SvniPiOccHiD0kucQxS/R YJ8DlX7Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tu0pm-000000011ar-29DG; Mon, 17 Mar 2025 03:08:10 +0000 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tu0hd-00000000zyY-0Sfy for linux-arm-kernel@lists.infradead.org; Mon, 17 Mar 2025 02:59:46 +0000 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Mon, 17 Mar 2025 10:59:22 +0800 Received: from mail.aspeedtech.com (192.168.10.13) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1258.12 via Frontend Transport; Mon, 17 Mar 2025 10:59:22 +0800 From: Jacky Chou To: , , , , , , , , , , , , , , , CC: Subject: [net-next 4/4] net: ftgmac100: add RGMII delay for AST2600 Date: Mon, 17 Mar 2025 10:59:22 +0800 Message-ID: <20250317025922.1526937-5-jacky_chou@aspeedtech.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250317025922.1526937-1-jacky_chou@aspeedtech.com> References: <20250317025922.1526937-1-jacky_chou@aspeedtech.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250316_195945_148421_7C35B51E X-CRM114-Status: GOOD ( 15.12 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use rx-internal-delay-ps and tx-internal-delay-ps properties to configue the RGMII delay into corresponding register of scu. Currently, the ftgmac100 driver only configures on AST2600 and will be by pass the other platforms. The details are in faraday,ftgmac100.yaml. Signed-off-by: Jacky Chou --- drivers/net/ethernet/faraday/ftgmac100.c | 88 ++++++++++++++++++++++++ drivers/net/ethernet/faraday/ftgmac100.h | 12 ++++ 2 files changed, 100 insertions(+) diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c index 17ec35e75a65..ea2061488cba 100644 --- a/drivers/net/ethernet/faraday/ftgmac100.c +++ b/drivers/net/ethernet/faraday/ftgmac100.c @@ -27,6 +27,9 @@ #include #include #include +#include +#include +#include #include "ftgmac100.h" @@ -1812,6 +1815,88 @@ static bool ftgmac100_has_child_node(struct device_node *np, const char *name) return ret; } +static void ftgmac100_set_internal_delay(struct platform_device *pdev) +{ + struct device_node *np = pdev->dev.of_node; + struct net_device *netdev; + struct ftgmac100 *priv; + struct regmap *scu; + u32 rgmii_tx_delay, rgmii_rx_delay; + u32 dly_reg, tx_dly_mask, rx_dly_mask; + int tx, rx; + + netdev = platform_get_drvdata(pdev); + priv = netdev_priv(netdev); + + tx = of_property_read_u32(np, "tx-internal-delay-ps", &rgmii_tx_delay); + rx = of_property_read_u32(np, "rx-internal-delay-ps", &rgmii_rx_delay); + + if (of_device_is_compatible(np, "aspeed,ast2600-mac")) { + /* According to mac base address to get mac index */ + switch (priv->res->start) { + case 0x1e660000: + dly_reg = AST2600_MAC12_CLK_DLY; + tx_dly_mask = AST2600_MAC1_TX_DLY; + rx_dly_mask = AST2600_MAC1_RX_DLY; + rgmii_tx_delay = FIELD_PREP(AST2600_MAC1_TX_DLY, rgmii_tx_delay); + rgmii_rx_delay = FIELD_PREP(AST2600_MAC1_RX_DLY, rgmii_rx_delay); + break; + case 0x1e680000: + dly_reg = AST2600_MAC12_CLK_DLY; + tx_dly_mask = AST2600_MAC2_TX_DLY; + rx_dly_mask = AST2600_MAC2_RX_DLY; + rgmii_tx_delay = FIELD_PREP(AST2600_MAC2_TX_DLY, rgmii_tx_delay); + rgmii_rx_delay = FIELD_PREP(AST2600_MAC2_RX_DLY, rgmii_rx_delay); + break; + case 0x1e670000: + dly_reg = AST2600_MAC34_CLK_DLY; + tx_dly_mask = AST2600_MAC3_TX_DLY; + rx_dly_mask = AST2600_MAC3_RX_DLY; + rgmii_tx_delay = FIELD_PREP(AST2600_MAC3_TX_DLY, rgmii_tx_delay); + rgmii_rx_delay = FIELD_PREP(AST2600_MAC3_RX_DLY, rgmii_rx_delay); + break; + case 0x1e690000: + dly_reg = AST2600_MAC34_CLK_DLY; + tx_dly_mask = AST2600_MAC4_TX_DLY; + rx_dly_mask = AST2600_MAC4_RX_DLY; + rgmii_tx_delay = FIELD_PREP(AST2600_MAC4_TX_DLY, rgmii_tx_delay); + rgmii_rx_delay = FIELD_PREP(AST2600_MAC4_RX_DLY, rgmii_rx_delay); + break; + default: + dev_warn(&pdev->dev, "Invalid mac base address"); + return; + } + } else { + return; + } + + scu = syscon_regmap_lookup_by_phandle(np, "scu"); + if (IS_ERR(scu)) { + dev_warn(&pdev->dev, "failed to map scu base"); + return; + } + + if (!tx) { + /* Use tx-internal-delay-ps as index to configure tx delay + * into scu register. + */ + if (rgmii_tx_delay > 64) + dev_warn(&pdev->dev, "Get invalid tx delay value"); + else + regmap_update_bits(scu, dly_reg, tx_dly_mask, rgmii_tx_delay); + } + + if (!rx) { + /* Use rx-internal-delay-ps as index to configure rx delay + * into scu register. + */ + if (rgmii_tx_delay > 64) + dev_warn(&pdev->dev, "Get invalid rx delay value"); + else + regmap_update_bits(scu, dly_reg, rx_dly_mask, rgmii_rx_delay); + } +} + static int ftgmac100_probe(struct platform_device *pdev) { struct resource *res; @@ -1977,6 +2062,9 @@ static int ftgmac100_probe(struct platform_device *pdev) if (of_device_is_compatible(np, "aspeed,ast2600-mac")) iowrite32(FTGMAC100_TM_DEFAULT, priv->base + FTGMAC100_OFFSET_TM); + + /* Configure RGMII delay if there are the corresponding properties */ + ftgmac100_set_internal_delay(pdev); } /* Default ring sizes */ diff --git a/drivers/net/ethernet/faraday/ftgmac100.h b/drivers/net/ethernet/faraday/ftgmac100.h index 4968f6f0bdbc..d464d287502c 100644 --- a/drivers/net/ethernet/faraday/ftgmac100.h +++ b/drivers/net/ethernet/faraday/ftgmac100.h @@ -271,4 +271,16 @@ struct ftgmac100_rxdes { #define FTGMAC100_RXDES1_UDP_CHKSUM_ERR (1 << 26) #define FTGMAC100_RXDES1_IP_CHKSUM_ERR (1 << 27) +/* Aspeed SCU */ +#define AST2600_MAC12_CLK_DLY 0x340 +#define AST2600_MAC1_TX_DLY GENMASK(5, 0) +#define AST2600_MAC1_RX_DLY GENMASK(17, 12) +#define AST2600_MAC2_TX_DLY GENMASK(11, 6) +#define AST2600_MAC2_RX_DLY GENMASK(23, 18) +#define AST2600_MAC34_CLK_DLY 0x350 +#define AST2600_MAC3_TX_DLY AST2600_MAC1_TX_DLY +#define AST2600_MAC3_RX_DLY AST2600_MAC1_RX_DLY +#define AST2600_MAC4_TX_DLY AST2600_MAC2_TX_DLY +#define AST2600_MAC4_RX_DLY AST2600_MAC2_RX_DLY + #endif /* __FTGMAC100_H */