Devicetree
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Jacky Chou" <jacky_chou@aspeedtech.com>
Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH net-next v6 1/7] dt-bindings: net: ftgmac100: Make Aspeed compatibles standalone
Date: Fri, 13 Nov 2026 08:39:33 +0000	[thread overview]
Message-ID: <sashiko-outbox-212428@kernel.org> (raw)
In-Reply-To: <20261112-support_ast2700-v6-1-238020bf46cf@aspeedtech.com>

Thank you for your contribution! Sashiko AI review found 4 potential
issues to consider:
- [Medium] dt-bindings: net: ftgmac100: dropping fallback compatible
  breaks dtbs_check
- [Low] dt-bindings: net: ftgmac100: unwieldy per-compatible
  conditionals in schema
- [Low] dt-bindings: net: ftgmac100: inaccurate DMA mask claim in commit
  message
- [Low] dt-bindings: net: ftgmac100: incomplete clock-names constraint
  for two clocks
--

commit 8d20c693d9736c24e1fec0cfa5f5df1d9636e586
Author: Jacky Chou <jacky_chou@aspeedtech.com>

dt-bindings: net: ftgmac100: Make Aspeed compatibles standalone

This commit updates the ftgmac100 Device Tree binding to make the Aspeed
compatible strings standalone and adds per-compatible constraints for the
clocks and clock-names properties.

> The aspeed,ast2400-mac, aspeed,ast2500-mac, and aspeed,ast2600-mac
> compatibles are currently only valid when paired with the generic
> "faraday,ftgmac100" fallback: if a node ever bound through the
> generic entry alone, ftgmac100_probe() would set
> rxdes0_edorr_mask/txdes0_edotr_mask to BIT(15) instead of the Aspeed
> BIT(30), skip Aspeed clock setup, and leave the DMA mask too narrow.

[Severity: Low]
Is the commit message accurate about ftgmac100_probe() leaving the DMA
mask too narrow for these compatibles?

In drivers/net/ethernet/faraday/ftgmac100.c, ftgmac100_probe() does not
call dma_set_mask() or dma_set_mask_and_coherent() for AST2400, AST2500,
or AST2600.

> diff --git a/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml b/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml
> index d14410018bcf6..9d352e3686aaf 100644
> --- a/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml
> +++ b/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml
> @@ -11,14 +11,11 @@ maintainers:
>  
>  properties:
>    compatible:
> -    oneOf:
> -      - const: faraday,ftgmac100
> -      - items:
> -          - enum:
> -              - aspeed,ast2400-mac
> -              - aspeed,ast2500-mac
> -              - aspeed,ast2600-mac
> -          - const: faraday,ftgmac100
> +    enum:
> +      - faraday,ftgmac100
> +      - aspeed,ast2400-mac
> +      - aspeed,ast2500-mac
> +      - aspeed,ast2600-mac

[Severity: Medium]
As reported by Rob Herring on v4 [1], does dropping the two-string
compatible entry break dtbs_check and backwards compatibility for existing
device trees?

All MAC nodes in arch/arm/boot/dts/aspeed/aspeed-g4.dtsi, aspeed-g5.dtsi,
and aspeed-g6.dtsi, as well as existing device trees in the field and
kernels prior to 03a2aba50b2c ("net: ftgmac100: List all compatibles"),
declare the SoC compatible followed by "faraday,ftgmac100".  Retaining
the two-item compatible entry with deprecated: true alongside the
standalone enum would allow the new standalone compatibles without
breaking validation of existing device trees.

> @@ -88,22 +85,76 @@ allOf:
>      else:
>        properties:
>          resets: false
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: aspeed,ast2400-mac
> +    then:
> +      properties:
> +        clocks:
> +          maxItems: 1
> +        clock-names:
> +          maxItems: 1
> +      required:
> +        - clocks
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - aspeed,ast2500-mac
> +              - aspeed,ast2600-mac
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 1
> +          maxItems: 2
> +        clock-names:
> +          minItems: 1
> +          maxItems: 2
> +      required:
> +        - clocks
> +  - if:
> +      not:
> +        properties:
> +          compatible:
> +            contains:
> +              enum:
> +                - aspeed,ast2400-mac
> +                - aspeed,ast2500-mac
> +                - aspeed,ast2600-mac
> +    then:
> +      properties:
> +        clocks: false
> +        clock-names: false

[Severity: Low]
This isn't a bug, but now that the Aspeed compatibles are standalone and no
longer fall back to faraday,ftgmac100, their property requirements diverge
enough from plain faraday,ftgmac100 (which forbids resets, clocks, and
clock-names) that piling multiple per-compatible if-then blocks into
faraday,ftgmac100.yaml makes the single schema unwieldy and duplicates the
top-level minItems/maxItems constraints on clocks and clock-names.  Would
splitting the Aspeed MAC binding into its own schema document be cleaner?

> +  - if:
> +      properties:
> +        clocks:
> +          minItems: 2
> +    then:
> +      required:
> +        - clock-names

[Severity: Low]
Does this rule still allow a single-element clock-names array when two
clocks are specified?

Because clock-names permits minItems: 1, requiring clock-names without
also setting properties: clock-names: minItems: 2 in the then branch lets
a node with two clocks and only clock-names = "MACCLK" pass validation,
even though ftgmac100_setup_clk() looks up the second clock by name via
devm_clk_get_optional_enabled(priv->dev, "RCLK").  In addition, since
clocks is not required at the top level, the if branch needs required:
[clocks] so nodes without clocks do not match this condition under JSON
Schema evaluation.

[1] https://lore.kernel.org/r/20261020181441.GA510274-robh@kernel.org

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261112-support_ast2700-v6-0-238020bf46cf@aspeedtech.com?part=1

  parent reply	other threads:[~2026-11-13  8:39 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-12  8:39 [PATCH net-next v6 0/7] net: ftgmac100: Add AST2700 support Jacky Chou
2026-11-12  8:39 ` [PATCH net-next v6 1/7] dt-bindings: net: ftgmac100: Make Aspeed compatibles standalone Jacky Chou
2026-11-12 18:43   ` Conor Dooley
2026-11-13  8:39   ` sashiko-bot [this message]
2026-11-12  8:39 ` [PATCH net-next v6 2/7] dt-bindings: net: ftgmac100: Add AST2700 compatible Jacky Chou
2026-11-12 18:44   ` Conor Dooley
2026-11-13  8:39   ` sashiko-bot
2026-11-12  8:39 ` [PATCH net-next v6 3/7] net: ftgmac100: Add AST2700 compatible support Jacky Chou
2026-11-13  8:39   ` sashiko-bot
2026-11-12  8:39 ` [PATCH net-next v6 4/7] net: ftgmac100: Enable AST2700 RMII support Jacky Chou
2026-11-12  8:39 ` [PATCH net-next v6 5/7] net: ftgmac100: Require phy-mode for AST2700 Jacky Chou
2026-11-13  8:39   ` sashiko-bot
2026-11-12  8:39 ` [PATCH net-next v6 6/7] net: ftgmac100: Add AST2700 upper DMA address support Jacky Chou
2026-11-12  8:39 ` [PATCH net-next v6 7/7] net: ftgmac100: Allow building on ARM64 Jacky Chou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-212428@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jacky_chou@aspeedtech.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox