On Wed, Dec 20, 2023 at 02:28:22AM +0200, Cristian Ciocaltea 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. > > Additionally, drop the reset description items from top-level binding as > they are already provided by the included snps,dwmac schema. > > Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxxxxxx> > --- > .../devicetree/bindings/net/snps,dwmac.yaml | 11 ++- > .../bindings/net/starfive,jh7110-dwmac.yaml | 75 +++++++++++++------ > 2 files changed, 60 insertions(+), 26 deletions(-) > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > index 5c2769dc689a..90c4db178c67 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: > @@ -144,10 +145,12 @@ properties: > - description: AHB reset > > reset-names: > - minItems: 1 > - items: > - - const: stmmaceth > - - const: ahb > + oneOf: > + - items: > + - enum: [stmmaceth, ahb] > + - items: > + - const: stmmaceth > + - const: ahb > > power-domains: > maxItems: 1 > diff --git a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml > index 5e7cfbbebce6..f5f0bff5be0f 100644 > --- a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml > +++ b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml > @@ -16,16 +16,20 @@ select: > compatible: > contains: > enum: > + - starfive,jh7100-dwmac > - starfive,jh7110-dwmac > required: > - compatible > > properties: > compatible: > - items: > - - enum: > - - starfive,jh7110-dwmac > - - const: snps,dwmac-5.20 > + oneOf: > + - items: > + - const: starfive,jh7100-dwmac > + - const: snps,dwmac > + - items: > + - const: starfive,jh7110-dwmac > + - const: snps,dwmac-5.20 > > reg: > maxItems: 1 > @@ -46,24 +50,6 @@ properties: > - const: tx > - const: gtx > > - interrupts: > - minItems: 3 > - maxItems: 3 > - > - interrupt-names: > - minItems: 3 > - maxItems: 3 > - > - resets: > - items: > - - description: MAC Reset signal. > - - description: AHB Reset signal. > - > - reset-names: > - items: > - - const: stmmaceth > - - const: ahb > - > starfive,tx-use-rgmii-clk: > description: > Tx clock is provided by external rgmii clock. > @@ -94,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 Just 'maxItems: 1' > + > + - 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 max is already 2. Drop. > + > + reset-names: > + items: > + - const: stmmaceth > + - const: ahb Already defined the names. Just 'minItems: 2'. > + > unevaluatedProperties: false > > examples: > -- > 2.43.0 >