[PATCH net-next v3 1/6] dt-bindings: net: ftgmac100: Add AST2700 compatible
From: Jacky Chou
Date: Thu Oct 15 2026 - 02:48:49 EST
Add AST2700 to the FTGMAC100 compatible list and document that its
RMII RCLK gate matches the earlier Aspeed SoCs. Allow the reset line for
AST2700 as it follows the same reset requirements as AST2600.
Require "phy-mode" to be present in the device tree when the AST2700
compatible is used, matching the driver's probe-time requirement.
Make aspeed,ast2700-mac a standalone compatible instead of pairing it
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.
The existing aspeed,ast2400-mac, aspeed,ast2500-mac, and
aspeed,ast2600-mac compatibles have the same structural problem: they
are currently only valid when paired with "faraday,ftgmac100", and a
node that bound through the generic entry alone would hit the same
BIT(15) vs BIT(30) mismatch. Give them the same standalone treatment as
AST2700, so none of the Aspeed compatibles require the generic fallback
alongside them.
ftgmac100_of_match[] has had dedicated entries for AST2400, AST2500,
and AST2600 since commit 03a2aba50b2c ("net: ftgmac100: List all
compatibles"), so there is no known kernel + devicetree combination
where a node has actually bound through the generic entry and gotten
the wrong EDORR bit. This part is a binding correctness fix, not a fix
for an observed failure.
Note that arch/arm/boot/dts/aspeed/aspeed-g4.dtsi, aspeed-g5.dtsi, and
aspeed-g6.dtsi still declare their MAC nodes with the two-string
"aspeed,astXXXX-mac", "faraday,ftgmac100" compatible, so this will make
dtbs_check warn against those files until the redundant fallback
compatible is dropped there as well. That .dtsi change will be sent as
a separate series through the Aspeed/arm-soc tree, since dt-bindings
changes don't go through that tree.
Signed-off-by: Jacky Chou <jacky_chou@xxxxxxxxxxxxxx>
---
.../devicetree/bindings/net/faraday,ftgmac100.yaml | 26 ++++++++++++++--------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml b/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml
index d14410018bcf..0a376b849a91 100644
--- a/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml
+++ b/Documentation/devicetree/bindings/net/faraday,ftgmac100.yaml
@@ -13,12 +13,11 @@ properties:
compatible:
oneOf:
- const: faraday,ftgmac100
- - items:
- - enum:
- - aspeed,ast2400-mac
- - aspeed,ast2500-mac
- - aspeed,ast2600-mac
- - const: faraday,ftgmac100
+ - enum:
+ - aspeed,ast2400-mac
+ - aspeed,ast2500-mac
+ - aspeed,ast2600-mac
+ - aspeed,ast2700-mac
reg:
maxItems: 1
@@ -30,7 +29,7 @@ properties:
minItems: 1
items:
- description: MAC IP clock
- - description: RMII RCLK gate for AST2500/2600
+ - description: RMII RCLK gate for AST2500/2600/2700
resets:
maxItems: 1
@@ -82,26 +81,35 @@ allOf:
contains:
enum:
- aspeed,ast2600-mac
+ - aspeed,ast2700-mac
then:
properties:
resets: true
else:
properties:
resets: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: aspeed,ast2700-mac
+ then:
+ required:
+ - phy-mode
unevaluatedProperties: false
examples:
- |
ethernet@1e660000 {
- compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
+ compatible = "aspeed,ast2500-mac";
reg = <0x1e660000 0x180>;
interrupts = <2>;
use-ncsi;
};
ethernet@1e680000 {
- compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
+ compatible = "aspeed,ast2500-mac";
reg = <0x1e680000 0x180>;
interrupts = <2>;
--
2.34.1