Message ID | 20231215204050.2296404-3-cristian.ciocaltea@collabora.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-1633-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:3b04:b0:fb:cd0c:d3e with SMTP id c4csp9564973dys; Fri, 15 Dec 2023 12:42:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IHgXQbr/xfsnBm7r4kylFn1i0qxJBmHhG6FaPHmItHQ+KAiCC61VNINVjXZj1JD28p7BLAm X-Received: by 2002:a17:907:da0:b0:a18:692c:cff7 with SMTP id go32-20020a1709070da000b00a18692ccff7mr6821200ejc.44.1702672941587; Fri, 15 Dec 2023 12:42:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702672941; cv=none; d=google.com; s=arc-20160816; b=QqWA/WS/YhzMvnsgAWGa/OrHSR+hzF4SqIyc0f481YN5hF0xDAFvCz8GQGVOlAySJV EvcrYR8S9JbbhZDvu/kzfkfg5xKlV2UPMOF7oKDXtNR3A4dYDTBr1zQzds5UI7LPdqq+ XzkusixT/WORxaz37IW31RgFAe5oB/2XVIhYKvscL4zpKTe/dD8KwFNhbd4Cyjxn7+Pj d7fwadjC+nfDfE3gqMnzNQchofpT/kEvDh/n782RwDSUB7JoEi1THMiLKKMEzzXx1+Vz eQSNF6xmU8CHKkeu0Z9cA3Hhq2b90mfvicBVUz2Yr8Ny4Fw3AJFOJdt+wUrr1w5hjI6o 8bhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=WpWPKN3/ChYCQwXYFW2rzp0zfTCzzxLItZjcrMvsDhk=; fh=syaDh/WjooBXvAaul+2O0Q827rHRcsPrAm5I86d1V5c=; b=d5y+PyEDreMzr9RgESUtdiTld/coqtxc+ZkGZqKXZrHbKptHeBMfOMrUQB/1R4Axog QqSmdx9s/m/sTpzba6JlBZOFPtT5V7+dQmISTZVFBQgs66qN0rlbiVcLEmO9WJqfIBHz snCmEVclmGpDg7lfMvjIgZYMlbGccxro/r+cqumRhJYxUQln6yLmBcp3Hsc60/gwRQM/ veMXP7cFFHqsLp1662kQ3o65mFVpCg9cyurGtxOUk/4pJw/R7Tn0ZaLNQJdZGa/Yp1xe g4GCLD48tZpgAcPjefGZvOj9HNvK2iWraxVAqR++VhFMLC5atJnhPxjwtStv/dYoyFBp v4iw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=nL0R3sCG; spf=pass (google.com: domain of linux-kernel+bounces-1633-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-1633-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id s10-20020a1709060d6a00b00a231e3a2135si459073ejh.341.2023.12.15.12.42.21 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Dec 2023 12:42:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-1633-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=nL0R3sCG; spf=pass (google.com: domain of linux-kernel+bounces-1633-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-1633-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 0D2211F23983 for <ouuuleilei@gmail.com>; Fri, 15 Dec 2023 20:42:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 30C0036B03; Fri, 15 Dec 2023 20:41:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="nL0R3sCG" X-Original-To: linux-kernel@vger.kernel.org Received: from madrid.collaboradmins.com (madrid.collaboradmins.com [46.235.227.194]) (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 017E53E49F; Fri, 15 Dec 2023 20:40:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1702672854; bh=03p9E6nA7an2G1tB5MMv/uNj5vtUhwwnTvlzoHkMWig=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nL0R3sCGeYyZxN9QwAHy+LF8ebs3dlwbqgnGspv9Gn82+EQ9fXa6CnzYJZw6KdcwN Q2MWIqRDH/0TgHN9EqfEoGjnlySL4qgzq9Kz7Snp6/RuDWuvhsP4AZ7AUxE1NWWkz0 Pu52Fhm2xFpPPRW01dbx8vy0Skm+eKLrccSSKBumZyrnLzUp+/O9GPZXj5JMyjdFxr LhSb2ZbDcfRawv5CV+2HZ2P5fVoE2SKwKGOfE6eT/bydhZha3a6wibMOUocJl9CYnR Iu5TsRAHyRfZ+zZfwj2bRIA1nbIvCiDqHo6FhuoQY5Rc2mO8kqhZMjiiyyPohW7h5D z9bTkGATymg1w== Received: from localhost (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by madrid.collaboradmins.com (Postfix) with ESMTPSA id 25D013781FEB; Fri, 15 Dec 2023 20:40:54 +0000 (UTC) From: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> To: "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Emil Renner Berthing <kernel@esmil.dk>, Samin Guo <samin.guo@starfivetech.com>, Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Hal Feng <hal.feng@starfivetech.com>, Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@kernel.org>, Alexandre Torgue <alexandre.torgue@foss.st.com>, Jose Abreu <joabreu@synopsys.com>, Maxime Coquelin <mcoquelin.stm32@gmail.com>, Richard Cochran <richardcochran@gmail.com>, Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-clk@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, kernel@collabora.com Subject: [PATCH v3 2/9] dt-bindings: net: starfive,jh7110-dwmac: Add JH7100 SoC compatible Date: Fri, 15 Dec 2023 22:40:41 +0200 Message-ID: <20231215204050.2296404-3-cristian.ciocaltea@collabora.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20231215204050.2296404-1-cristian.ciocaltea@collabora.com> References: <20231215204050.2296404-1-cristian.ciocaltea@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785381982692278565 X-GMAIL-MSGID: 1785381982692278565 |
Series |
Enable networking support for StarFive JH7100 SoC
|
|
Commit Message
Cristian Ciocaltea
Dec. 15, 2023, 8:40 p.m. UTC
The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly
similar to the newer JH7110, but it requires only two interrupts and a
single reset line, which is 'ahb' instead of the commonly used
'stmmaceth'.
Since the common binding 'snps,dwmac' allows selecting 'ahb' only in
conjunction with 'stmmaceth', extend the logic to also permit exclusive
usage of the 'ahb' reset name. This ensures the following use cases are
supported:
JH7110: reset-names = "stmmaceth", "ahb";
JH7100: reset-names = "ahb";
other: reset-names = "stmmaceth";
Also note the need to use a different dwmac fallback, as v5.20 applies
to JH7110 only, while JH7100 relies on v3.7x.
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
---
.../devicetree/bindings/net/snps,dwmac.yaml | 3 +-
.../bindings/net/starfive,jh7110-dwmac.yaml | 74 +++++++++++++------
2 files changed, 55 insertions(+), 22 deletions(-)
Comments
On 15 Dec 2023, at 20:40, Cristian Ciocaltea <cristian.ciocaltea@collabora.com> wrote: > > The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly > similar to the newer JH7110, but it requires only two interrupts and a > single reset line, which is 'ahb' instead of the commonly used > 'stmmaceth'. > > Since the common binding 'snps,dwmac' allows selecting 'ahb' only in > conjunction with 'stmmaceth', extend the logic to also permit exclusive > usage of the 'ahb' reset name. This ensures the following use cases are > supported: > > JH7110: reset-names = "stmmaceth", "ahb"; > JH7100: reset-names = "ahb"; > other: reset-names = "stmmaceth"; > > Also note the need to use a different dwmac fallback, as v5.20 applies > to JH7110 only, while JH7100 relies on v3.7x. > > Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> > --- > .../devicetree/bindings/net/snps,dwmac.yaml | 3 +- > .../bindings/net/starfive,jh7110-dwmac.yaml | 74 +++++++++++++------ > 2 files changed, 55 insertions(+), 22 deletions(-) > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > index 5c2769dc689a..c1380ff1c054 100644 > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > @@ -95,6 +95,7 @@ properties: > - snps,dwmac-5.20 > - snps,dwxgmac > - snps,dwxgmac-2.10 > + - starfive,jh7100-dwmac > - starfive,jh7110-dwmac > > reg: > @@ -146,7 +147,7 @@ properties: > reset-names: > minItems: 1 > items: > - - const: stmmaceth > + - enum: [stmmaceth, ahb] > - const: ahb I’m not so well-versed in the YAML bindings, but would this not allow reset-names = "ahb", "ahb"? Jess
On 12/15/23 22:47, Jessica Clarke wrote: > On 15 Dec 2023, at 20:40, Cristian Ciocaltea <cristian.ciocaltea@collabora.com> wrote: >> >> The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly >> similar to the newer JH7110, but it requires only two interrupts and a >> single reset line, which is 'ahb' instead of the commonly used >> 'stmmaceth'. >> >> Since the common binding 'snps,dwmac' allows selecting 'ahb' only in >> conjunction with 'stmmaceth', extend the logic to also permit exclusive >> usage of the 'ahb' reset name. This ensures the following use cases are >> supported: >> >> JH7110: reset-names = "stmmaceth", "ahb"; >> JH7100: reset-names = "ahb"; >> other: reset-names = "stmmaceth"; >> >> Also note the need to use a different dwmac fallback, as v5.20 applies >> to JH7110 only, while JH7100 relies on v3.7x. >> >> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> >> --- >> .../devicetree/bindings/net/snps,dwmac.yaml | 3 +- >> .../bindings/net/starfive,jh7110-dwmac.yaml | 74 +++++++++++++------ >> 2 files changed, 55 insertions(+), 22 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >> index 5c2769dc689a..c1380ff1c054 100644 >> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml >> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >> @@ -95,6 +95,7 @@ properties: >> - snps,dwmac-5.20 >> - snps,dwxgmac >> - snps,dwxgmac-2.10 >> + - starfive,jh7100-dwmac >> - starfive,jh7110-dwmac >> >> reg: >> @@ -146,7 +147,7 @@ properties: >> reset-names: >> minItems: 1 >> items: >> - - const: stmmaceth >> + - enum: [stmmaceth, ahb] >> - const: ahb > > I’m not so well-versed in the YAML bindings, but would this not allow > reset-names = "ahb", "ahb"? Yes, as I already pointed out in [1], I wasn't able to come up with a proper solution to avoid that. Thanks, Cristian > Jess >
On 2023-12-15 2:47 PM, Jessica Clarke wrote: > On 15 Dec 2023, at 20:40, Cristian Ciocaltea <cristian.ciocaltea@collabora.com> wrote: >> >> The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly >> similar to the newer JH7110, but it requires only two interrupts and a >> single reset line, which is 'ahb' instead of the commonly used >> 'stmmaceth'. >> >> Since the common binding 'snps,dwmac' allows selecting 'ahb' only in >> conjunction with 'stmmaceth', extend the logic to also permit exclusive >> usage of the 'ahb' reset name. This ensures the following use cases are >> supported: >> >> JH7110: reset-names = "stmmaceth", "ahb"; >> JH7100: reset-names = "ahb"; >> other: reset-names = "stmmaceth"; >> >> Also note the need to use a different dwmac fallback, as v5.20 applies >> to JH7110 only, while JH7100 relies on v3.7x. >> >> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> >> --- >> .../devicetree/bindings/net/snps,dwmac.yaml | 3 +- >> .../bindings/net/starfive,jh7110-dwmac.yaml | 74 +++++++++++++------ >> 2 files changed, 55 insertions(+), 22 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >> index 5c2769dc689a..c1380ff1c054 100644 >> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml >> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >> @@ -95,6 +95,7 @@ properties: >> - snps,dwmac-5.20 >> - snps,dwxgmac >> - snps,dwxgmac-2.10 >> + - starfive,jh7100-dwmac >> - starfive,jh7110-dwmac >> >> reg: >> @@ -146,7 +147,7 @@ properties: >> reset-names: >> minItems: 1 >> items: >> - - const: stmmaceth >> + - enum: [stmmaceth, ahb] >> - const: ahb > > I’m not so well-versed in the YAML bindings, but would this not allow > reset-names = "ahb", "ahb"? Yes, it would. You need something like: reset-names: oneOf: - enum: [stmmaceth, ahb] - items: - const: stmmaceth - const: ahb Regards, Samuel
On 12/15/23 22:56, Cristian Ciocaltea wrote: > On 12/15/23 22:47, Jessica Clarke wrote: >> On 15 Dec 2023, at 20:40, Cristian Ciocaltea <cristian.ciocaltea@collabora.com> wrote: >>> >>> The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly >>> similar to the newer JH7110, but it requires only two interrupts and a >>> single reset line, which is 'ahb' instead of the commonly used >>> 'stmmaceth'. >>> >>> Since the common binding 'snps,dwmac' allows selecting 'ahb' only in >>> conjunction with 'stmmaceth', extend the logic to also permit exclusive >>> usage of the 'ahb' reset name. This ensures the following use cases are >>> supported: >>> >>> JH7110: reset-names = "stmmaceth", "ahb"; >>> JH7100: reset-names = "ahb"; >>> other: reset-names = "stmmaceth"; >>> >>> Also note the need to use a different dwmac fallback, as v5.20 applies >>> to JH7110 only, while JH7100 relies on v3.7x. >>> >>> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> >>> --- >>> .../devicetree/bindings/net/snps,dwmac.yaml | 3 +- >>> .../bindings/net/starfive,jh7110-dwmac.yaml | 74 +++++++++++++------ >>> 2 files changed, 55 insertions(+), 22 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >>> index 5c2769dc689a..c1380ff1c054 100644 >>> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml >>> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >>> @@ -95,6 +95,7 @@ properties: >>> - snps,dwmac-5.20 >>> - snps,dwxgmac >>> - snps,dwxgmac-2.10 >>> + - starfive,jh7100-dwmac >>> - starfive,jh7110-dwmac >>> >>> reg: >>> @@ -146,7 +147,7 @@ properties: >>> reset-names: >>> minItems: 1 >>> items: >>> - - const: stmmaceth >>> + - enum: [stmmaceth, ahb] >>> - const: ahb >> >> I’m not so well-versed in the YAML bindings, but would this not allow >> reset-names = "ahb", "ahb"? > > Yes, as I already pointed out in [1], I wasn't able to come up with a > proper solution to avoid that. Sorry, I've sent the previous email too early.. [1]: https://lore.kernel.org/lkml/564503dd-b779-4e9f-851d-f34d9ea5fa65@collabora.com/ > Thanks, > Cristian > >> Jess >> > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
On 12/15/23 22:59, Samuel Holland wrote: > On 2023-12-15 2:47 PM, Jessica Clarke wrote: >> On 15 Dec 2023, at 20:40, Cristian Ciocaltea <cristian.ciocaltea@collabora.com> wrote: >>> >>> The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly >>> similar to the newer JH7110, but it requires only two interrupts and a >>> single reset line, which is 'ahb' instead of the commonly used >>> 'stmmaceth'. >>> >>> Since the common binding 'snps,dwmac' allows selecting 'ahb' only in >>> conjunction with 'stmmaceth', extend the logic to also permit exclusive >>> usage of the 'ahb' reset name. This ensures the following use cases are >>> supported: >>> >>> JH7110: reset-names = "stmmaceth", "ahb"; >>> JH7100: reset-names = "ahb"; >>> other: reset-names = "stmmaceth"; >>> >>> Also note the need to use a different dwmac fallback, as v5.20 applies >>> to JH7110 only, while JH7100 relies on v3.7x. >>> >>> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> >>> --- >>> .../devicetree/bindings/net/snps,dwmac.yaml | 3 +- >>> .../bindings/net/starfive,jh7110-dwmac.yaml | 74 +++++++++++++------ >>> 2 files changed, 55 insertions(+), 22 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >>> index 5c2769dc689a..c1380ff1c054 100644 >>> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml >>> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >>> @@ -95,6 +95,7 @@ properties: >>> - snps,dwmac-5.20 >>> - snps,dwxgmac >>> - snps,dwxgmac-2.10 >>> + - starfive,jh7100-dwmac >>> - starfive,jh7110-dwmac >>> >>> reg: >>> @@ -146,7 +147,7 @@ properties: >>> reset-names: >>> minItems: 1 >>> items: >>> - - const: stmmaceth >>> + - enum: [stmmaceth, ahb] >>> - const: ahb >> >> I’m not so well-versed in the YAML bindings, but would this not allow >> reset-names = "ahb", "ahb"? > > Yes, it would. You need something like: > > reset-names: > oneOf: > - enum: [stmmaceth, ahb] > - items: > - const: stmmaceth > - const: ahb Oh yes, I always forget about the "oneOf" thing. Thanks! > Regards, > Samuel >
On Fri, Dec 15, 2023 at 11:03:24PM +0200, Cristian Ciocaltea wrote: > On 12/15/23 22:59, Samuel Holland wrote: > > On 2023-12-15 2:47 PM, Jessica Clarke wrote: > >> On 15 Dec 2023, at 20:40, Cristian Ciocaltea <cristian.ciocaltea@collabora.com> wrote: > >>> > >>> The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly > >>> similar to the newer JH7110, but it requires only two interrupts and a > >>> single reset line, which is 'ahb' instead of the commonly used > >>> 'stmmaceth'. > >>> > >>> Since the common binding 'snps,dwmac' allows selecting 'ahb' only in > >>> conjunction with 'stmmaceth', extend the logic to also permit exclusive > >>> usage of the 'ahb' reset name. This ensures the following use cases are > >>> supported: > >>> > >>> JH7110: reset-names = "stmmaceth", "ahb"; > >>> JH7100: reset-names = "ahb"; > >>> other: reset-names = "stmmaceth"; > >>> > >>> Also note the need to use a different dwmac fallback, as v5.20 applies > >>> to JH7110 only, while JH7100 relies on v3.7x. > >>> > >>> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> > >>> --- > >>> .../devicetree/bindings/net/snps,dwmac.yaml | 3 +- > >>> .../bindings/net/starfive,jh7110-dwmac.yaml | 74 +++++++++++++------ > >>> 2 files changed, 55 insertions(+), 22 deletions(-) > >>> > >>> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > >>> index 5c2769dc689a..c1380ff1c054 100644 > >>> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > >>> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > >>> @@ -95,6 +95,7 @@ properties: > >>> - snps,dwmac-5.20 > >>> - snps,dwxgmac > >>> - snps,dwxgmac-2.10 > >>> + - starfive,jh7100-dwmac > >>> - starfive,jh7110-dwmac > >>> > >>> reg: > >>> @@ -146,7 +147,7 @@ properties: > >>> reset-names: > >>> minItems: 1 > >>> items: > >>> - - const: stmmaceth > >>> + - enum: [stmmaceth, ahb] > >>> - const: ahb > >> > >> I’m not so well-versed in the YAML bindings, but would this not allow > >> reset-names = "ahb", "ahb"? > > > > Yes, it would. You need something like: > > > > reset-names: > > oneOf: > > - enum: [stmmaceth, ahb] > > - items: > > - const: stmmaceth > > - const: ahb > > Oh yes, I always forget about the "oneOf" thing. Thanks! Won't this also relax the naming for all devices that allow a single reset, but expect the stmmaceth one? I'm not sure that that actually matters, I think the consumer bindings have constraints themselves.
On 12/17/23 23:09, Conor Dooley wrote: > On Fri, Dec 15, 2023 at 11:03:24PM +0200, Cristian Ciocaltea wrote: >> On 12/15/23 22:59, Samuel Holland wrote: >>> On 2023-12-15 2:47 PM, Jessica Clarke wrote: >>>> On 15 Dec 2023, at 20:40, Cristian Ciocaltea <cristian.ciocaltea@collabora.com> wrote: >>>>> >>>>> The Synopsys DesignWare MAC found on StarFive JH7100 SoC is mostly >>>>> similar to the newer JH7110, but it requires only two interrupts and a >>>>> single reset line, which is 'ahb' instead of the commonly used >>>>> 'stmmaceth'. >>>>> >>>>> Since the common binding 'snps,dwmac' allows selecting 'ahb' only in >>>>> conjunction with 'stmmaceth', extend the logic to also permit exclusive >>>>> usage of the 'ahb' reset name. This ensures the following use cases are >>>>> supported: >>>>> >>>>> JH7110: reset-names = "stmmaceth", "ahb"; >>>>> JH7100: reset-names = "ahb"; >>>>> other: reset-names = "stmmaceth"; >>>>> >>>>> Also note the need to use a different dwmac fallback, as v5.20 applies >>>>> to JH7110 only, while JH7100 relies on v3.7x. >>>>> >>>>> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> >>>>> --- >>>>> .../devicetree/bindings/net/snps,dwmac.yaml | 3 +- >>>>> .../bindings/net/starfive,jh7110-dwmac.yaml | 74 +++++++++++++------ >>>>> 2 files changed, 55 insertions(+), 22 deletions(-) >>>>> >>>>> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >>>>> index 5c2769dc689a..c1380ff1c054 100644 >>>>> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml >>>>> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml >>>>> @@ -95,6 +95,7 @@ properties: >>>>> - snps,dwmac-5.20 >>>>> - snps,dwxgmac >>>>> - snps,dwxgmac-2.10 >>>>> + - starfive,jh7100-dwmac >>>>> - starfive,jh7110-dwmac >>>>> >>>>> reg: >>>>> @@ -146,7 +147,7 @@ properties: >>>>> reset-names: >>>>> minItems: 1 >>>>> items: >>>>> - - const: stmmaceth >>>>> + - enum: [stmmaceth, ahb] >>>>> - const: ahb >>>> >>>> I’m not so well-versed in the YAML bindings, but would this not allow >>>> reset-names = "ahb", "ahb"? >>> >>> Yes, it would. You need something like: >>> >>> reset-names: >>> oneOf: >>> - enum: [stmmaceth, ahb] >>> - items: >>> - const: stmmaceth >>> - const: ahb >> >> Oh yes, I always forget about the "oneOf" thing. Thanks! > > Won't this also relax the naming for all devices that allow a single > reset, but expect the stmmaceth one? I'm not sure that that actually > matters, I think the consumer bindings have constraints themselves. Before commit 843f603762a5 ("dt-bindings: net: snps,dwmac: Add 'ahb' reset/reset-name"), the 'stmmaceth' was the only possible option, hence there was no need for any constraints on the consumer bindings. But afterwards it was allowed to use both resets, hence I think the bindings should have been updated at that time by adding 'maxItems: 1' to prevent using the 2nd reset. I could fix this in a separate series, if it's not something mandatory to be handled here. Thanks for reviewing, Cristian
> > Won't this also relax the naming for all devices that allow a single > > reset, but expect the stmmaceth one? I'm not sure that that actually > > matters, I think the consumer bindings have constraints themselves. > > Before commit 843f603762a5 ("dt-bindings: net: snps,dwmac: Add 'ahb' > reset/reset-name"), the 'stmmaceth' was the only possible option, hence > there was no need for any constraints on the consumer bindings. But > afterwards it was allowed to use both resets, hence I think the bindings > should have been updated at that time by adding 'maxItems: 1' to prevent > using the 2nd reset. > > I could fix this in a separate series, if it's not something mandatory > to be handled here. If it is not introduced by this series, I don't see why it could not be handled separately if needed.
diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml index 5c2769dc689a..c1380ff1c054 100644 --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml @@ -95,6 +95,7 @@ properties: - snps,dwmac-5.20 - snps,dwxgmac - snps,dwxgmac-2.10 + - starfive,jh7100-dwmac - starfive,jh7110-dwmac reg: @@ -146,7 +147,7 @@ properties: reset-names: minItems: 1 items: - - const: stmmaceth + - enum: [stmmaceth, ahb] - const: ahb power-domains: diff --git a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml index d90cb82c1424..b01602738fc3 100644 --- a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml +++ b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml @@ -22,10 +22,14 @@ select: properties: compatible: - items: - - enum: - - starfive,jh7110-dwmac - - const: snps,dwmac-5.20 + oneOf: + - items: + - const: starfive,jh7100-dwmac + - const: snps,dwmac + - items: + - enum: + - starfive,jh7110-dwmac + - const: snps,dwmac-5.20 reg: maxItems: 1 @@ -46,23 +50,6 @@ properties: - const: tx - const: gtx - interrupts: - minItems: 3 - maxItems: 3 - - interrupt-names: - minItems: 3 - maxItems: 3 - - resets: - minItems: 2 - maxItems: 2 - - reset-names: - items: - - const: stmmaceth - - const: ahb - starfive,tx-use-rgmii-clk: description: Tx clock is provided by external rgmii clock. @@ -93,6 +80,51 @@ required: allOf: - $ref: snps,dwmac.yaml# + - if: + properties: + compatible: + contains: + const: starfive,jh7100-dwmac + then: + properties: + interrupts: + minItems: 2 + maxItems: 2 + + interrupt-names: + minItems: 2 + maxItems: 2 + + resets: + maxItems: 1 + + reset-names: + const: ahb + + - if: + properties: + compatible: + contains: + const: starfive,jh7110-dwmac + then: + properties: + interrupts: + minItems: 3 + maxItems: 3 + + interrupt-names: + minItems: 3 + maxItems: 3 + + resets: + minItems: 2 + maxItems: 2 + + reset-names: + items: + - const: stmmaceth + - const: ahb + unevaluatedProperties: false examples: