Thread (24 messages) 24 messages, 6 authors, 2023-12-18

Re: [PATCH v3 2/9] dt-bindings: net: starfive,jh7110-dwmac: Add JH7100 SoC compatible

From: Cristian Ciocaltea <hidden>
Date: 2023-12-18 12:02:11
Also in: linux-arm-kernel, linux-clk, linux-devicetree, linux-riscv, lkml

On 12/17/23 23:09, Conor Dooley wrote:
On Fri, Dec 15, 2023 at 11:03:24PM +0200, Cristian Ciocaltea wrote:
quoted
On 12/15/23 22:59, Samuel Holland wrote:
quoted
On 2023-12-15 2:47 PM, Jessica Clarke wrote:
quoted
On 15 Dec 2023, at 20:40, Cristian Ciocaltea [off-list ref] wrote:
quoted
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 <redacted>
---
.../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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help