linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v8 00/16] further mt7988 devicetree work
@ 2025-07-06 13:21 Frank Wunderlich
  2025-07-06 13:21 ` [PATCH v8 01/16] dt-bindings: net: mediatek,net: update mac subnode pattern for mt7988 Frank Wunderlich
                   ` (16 more replies)
  0 siblings, 17 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:21 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

This series continues mt7988 devicetree work

- Extend cpu frequency scaling with CCI
- GPIO leds
- Basic network-support (ethernet controller + builtin switch + SFP Cages)

depencies (i hope this list is complete and latest patches/series linked):

support interrupt-names is optional again as i re-added the reserved IRQs
(they are not unusable as i thought and can allow features in future)
https://patchwork.kernel.org/project/netdevbpf/patch/20250619132125.78368-2-linux@fw-web.de/

needs change in mtk ethernet driver for the sram to be read from separate node:
https://patchwork.kernel.org/project/netdevbpf/patch/c2b9242229d06af4e468204bcf42daa1535c3a72.1751461762.git.daniel@makrotopia.org/

for SFP-Function (macs currently disabled):

PCS clearance which is a 1.5 year discussion currently ongoing

Daniel asked netdev for a way 2 go:
https://lore.kernel.org/netdev/aEwfME3dYisQtdCj@pidgin.makrotopia.org/

e.g. something like this (one of):
* https://patchwork.kernel.org/project/netdevbpf/patch/20250610233134.3588011-4-sean.anderson@linux.dev/ (v6)
* https://patchwork.kernel.org/project/netdevbpf/patch/20250511201250.3789083-4-ansuelsmth@gmail.com/ (v4)
* https://patchwork.kernel.org/project/netdevbpf/patch/ba4e359584a6b3bc4b3470822c42186d5b0856f9.1721910728.git.daniel@makrotopia.org/

full usxgmii driver:
https://patchwork.kernel.org/project/netdevbpf/patch/07845ec900ba41ff992875dce12c622277592c32.1702352117.git.daniel@makrotopia.org/

first PCS-discussion is here:
https://patchwork.kernel.org/project/netdevbpf/patch/8aa905080bdb6760875d62cb3b2b41258837f80e.1702352117.git.daniel@makrotopia.org/
some more here:
https://lore.kernel.org/netdev/20250511201250.3789083-4-ansuelsmth@gmail.com/

and then dts nodes for sgmiisys+usxgmii+2g5 firmware

when above depencies are solved the mac1/2 can be enabled and 2.5G phy/SFP slots will work.

changes:
v8:
- splitted binding into irq-count and irq-names and updated description
- fixed typo in mt7621 section "interrupt-namess"
- splitted binding changes into fixes (mac) and additions (sram)
- dropped change of reg (simple count to description)
- change ethernet register size to 0x40000

v7:
- fixed rebasing error while splitting dt-binding patch

v6:
binding:
- split out the interrupt-names into separate patch
- update irq(name) min count to 4
- move interrupt-names up
- add sram-property
- drop second reg entry and minitems as there is only 1 item left

dts:
- fix whitespace-errors for pdma irqs (spaces vs. tabs)
- move sram from eth reg to own sram node (needs CONFIG_SRAM)

v5:
- add reserved irqs and change names
- update binding for 8 irqs with different names (rx,tx => fe1+fe2, rx-ringX => pdmaX)
  (dropped Robs RB due to this change again, sorry)

v4:
  net-binding:
    - allow interrupt names and increase max interrupts to 6 because of RSS/LRO interrupts
      (dropped Robs RB due to this change)

  dts-patches:
  - add interrupts for RSS/LRO and interrupt-names for ethernet node
  - eth-reg and clock whitespace-fix
  - comment for fixed-link on gmac0
  - drop phy-mode properties as suggested by andrew
  - drop phy-connection-type on 2g5 board
  - reorder some properties
  - update 2g5 phy node
    - unit-name dec instead of hex to match reg property
    - move compatible before reg
    - drop phy-mode

v3:
  - dropped patches already applied (SPI+thermal)
  - added soc specific cci compatible (new binding patch + changed dts)
  - enable 2g5 phy because driver is now merged
  - add patch for cleaning up unnecessary pins
  - add patch for gpio-leds
  - add patch for adding ethernet aliases

v2:
  - change reg to list of items in eth binding
  - changed mt7530 binding:
    - unevaluatedProperties=false
    - mediatek,pio subproperty
    - from patternProperty to property
  - board specific properties like led function and labels moved to bpi-r4 dtsi

Frank Wunderlich (16):
  dt-bindings: net: mediatek,net: update mac subnode pattern for mt7988
  dt-bindings: net: mediatek,net: allow up to 8 IRQs
  dt-bindings: net: mediatek,net: allow irq names
  dt-bindings: net: mediatek,net: add sram property
  dt-bindings: net: dsa: mediatek,mt7530: add dsa-port definition for
    mt7988
  dt-bindings: net: dsa: mediatek,mt7530: add internal mdio bus
  dt-bindings: interconnect: add mt7988-cci compatible
  arm64: dts: mediatek: mt7988: add cci node
  arm64: dts: mediatek: mt7988: add basic ethernet-nodes
  arm64: dts: mediatek: mt7988: add switch node
  arm64: dts: mediatek: mt7988a-bpi-r4: add proc-supply for cci
  arm64: dts: mediatek: mt7988a-bpi-r4: drop unused pins
  arm64: dts: mediatek: mt7988a-bpi-r4: add gpio leds
  arm64: dts: mediatek: mt7988a-bpi-r4: add aliases for ethernet
  arm64: dts: mediatek: mt7988a-bpi-r4: add sfp cages and link to gmac
  arm64: dts: mediatek: mt7988a-bpi-r4: configure switch phys and leds

 .../bindings/interconnect/mediatek,cci.yaml   |  11 +-
 .../bindings/net/dsa/mediatek,mt7530.yaml     |  24 +-
 .../devicetree/bindings/net/mediatek,net.yaml |  44 ++-
 .../mediatek/mt7988a-bananapi-bpi-r4-2g5.dts  |  11 +
 .../dts/mediatek/mt7988a-bananapi-bpi-r4.dts  |  19 ++
 .../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 198 ++++++-----
 arch/arm64/boot/dts/mediatek/mt7988a.dtsi     | 318 +++++++++++++++++-
 7 files changed, 527 insertions(+), 98 deletions(-)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 27+ messages in thread

* [PATCH v8 01/16] dt-bindings: net: mediatek,net: update mac subnode pattern for mt7988
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
@ 2025-07-06 13:21 ` Frank Wunderlich
  2025-07-07  6:27   ` Krzysztof Kozlowski
  2025-07-06 13:21 ` [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs Frank Wunderlich
                   ` (15 subsequent siblings)
  16 siblings, 1 reply; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:21 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

MT7888 have 3 Macs and so its nodes have names from mac0 - mac2. Update
pattern to fix this.

Fixes: c94a9aabec36 ("dt-bindings: net: mediatek,net: add mt7988-eth binding")
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 Documentation/devicetree/bindings/net/mediatek,net.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml
index 9e02fd80af83..175d1d011dc6 100644
--- a/Documentation/devicetree/bindings/net/mediatek,net.yaml
+++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml
@@ -382,7 +382,7 @@ allOf:
             - const: xgp3
 
 patternProperties:
-  "^mac@[0-1]$":
+  "^mac@[0-2]$":
     type: object
     unevaluatedProperties: false
     allOf:
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
  2025-07-06 13:21 ` [PATCH v8 01/16] dt-bindings: net: mediatek,net: update mac subnode pattern for mt7988 Frank Wunderlich
@ 2025-07-06 13:21 ` Frank Wunderlich
  2025-07-07  6:31   ` Krzysztof Kozlowski
  2025-07-06 13:21 ` [PATCH v8 03/16] dt-bindings: net: mediatek,net: allow irq names Frank Wunderlich
                   ` (14 subsequent siblings)
  16 siblings, 1 reply; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:21 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Increase the maximum IRQ count to 8 (4 FE + 4 RSS/LRO).

Frame-engine-IRQs (max 4):
MT7621, MT7628: 1 IRQ
MT7622, MT7623: 3 IRQs (only two used by the driver for now)
MT7981, MT7986, MT7988: 4 IRQs (only two used by the driver for now)

Mediatek Filogic SoCs (mt798x) have 4 additional IRQs for RSS and/or
LRO.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
v8: separate irq-count change from interrupt-names patch
---
 Documentation/devicetree/bindings/net/mediatek,net.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml
index 175d1d011dc6..766224e4ed86 100644
--- a/Documentation/devicetree/bindings/net/mediatek,net.yaml
+++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml
@@ -40,7 +40,7 @@ properties:
 
   interrupts:
     minItems: 1
-    maxItems: 4
+    maxItems: 8
 
   power-domains:
     maxItems: 1
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 03/16] dt-bindings: net: mediatek,net: allow irq names
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
  2025-07-06 13:21 ` [PATCH v8 01/16] dt-bindings: net: mediatek,net: update mac subnode pattern for mt7988 Frank Wunderlich
  2025-07-06 13:21 ` [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs Frank Wunderlich
@ 2025-07-06 13:21 ` Frank Wunderlich
  2025-07-07 10:12   ` AngeloGioacchino Del Regno
  2025-07-06 13:21 ` [PATCH v8 04/16] dt-bindings: net: mediatek,net: add sram property Frank Wunderlich
                   ` (13 subsequent siblings)
  16 siblings, 1 reply; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:21 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

In preparation for MT7988 and RSS/LRO allow the interrupt-names
property.
In this way driver can request the interrupts by name which is much
more readable in the driver code and SoC's dtsi than relying on a
specific order.

Frame-engine-IRQs (fe0..3):
MT7621, MT7628: 1 IRQ
MT7622, MT7623: 3 IRQs (only two used by the driver for now)
MT7981, MT7986: 4 IRQs (only two used by the driver for now)

RSS/LRO IRQs (pdma0..3) only on Filogic (MT798x) with count of 4.

Set boundaries for all compatibles same as irq count.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
v8:
  - fixed typo in mt7621 section "interrupt-namess"
  - separated interrupt count from interrupt-names
  - rephrased description a bit to explain the "why"
v7: fixed wrong rebase
v6: new patch splitted from the mt7988 changes
---
 .../devicetree/bindings/net/mediatek,net.yaml | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml
index 766224e4ed86..da7bda20786a 100644
--- a/Documentation/devicetree/bindings/net/mediatek,net.yaml
+++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml
@@ -42,6 +42,18 @@ properties:
     minItems: 1
     maxItems: 8
 
+  interrupt-names:
+    minItems: 1
+    items:
+      - const: fe0
+      - const: fe1
+      - const: fe2
+      - const: fe3
+      - const: pdma0
+      - const: pdma1
+      - const: pdma2
+      - const: pdma3
+
   power-domains:
     maxItems: 1
 
@@ -135,6 +147,10 @@ allOf:
           minItems: 3
           maxItems: 3
 
+        interrupt-names:
+          minItems: 3
+          maxItems: 3
+
         clocks:
           minItems: 4
           maxItems: 4
@@ -166,6 +182,9 @@ allOf:
         interrupts:
           maxItems: 1
 
+        interrupt-names:
+          maxItems: 1
+
         clocks:
           minItems: 2
           maxItems: 2
@@ -192,6 +211,10 @@ allOf:
           minItems: 3
           maxItems: 3
 
+        interrupt-names:
+          minItems: 3
+          maxItems: 3
+
         clocks:
           minItems: 11
           maxItems: 11
@@ -232,6 +255,10 @@ allOf:
           minItems: 3
           maxItems: 3
 
+        interrupt-names:
+          minItems: 3
+          maxItems: 3
+
         clocks:
           minItems: 17
           maxItems: 17
@@ -274,6 +301,9 @@ allOf:
         interrupts:
           minItems: 4
 
+        interrupt-names:
+          minItems: 4
+
         clocks:
           minItems: 15
           maxItems: 15
@@ -312,6 +342,9 @@ allOf:
         interrupts:
           minItems: 4
 
+        interrupt-names:
+          minItems: 4
+
         clocks:
           minItems: 15
           maxItems: 15
@@ -350,6 +383,9 @@ allOf:
         interrupts:
           minItems: 4
 
+        interrupt-names:
+          minItems: 4
+
         clocks:
           minItems: 24
           maxItems: 24
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 04/16] dt-bindings: net: mediatek,net: add sram property
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (2 preceding siblings ...)
  2025-07-06 13:21 ` [PATCH v8 03/16] dt-bindings: net: mediatek,net: allow irq names Frank Wunderlich
@ 2025-07-06 13:21 ` Frank Wunderlich
  2025-07-07  6:33   ` Krzysztof Kozlowski
  2025-07-07 10:12   ` AngeloGioacchino Del Regno
  2025-07-06 13:22 ` [PATCH v8 05/16] dt-bindings: net: dsa: mediatek,mt7530: add dsa-port definition for mt7988 Frank Wunderlich
                   ` (12 subsequent siblings)
  16 siblings, 2 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:21 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Meditak Filogic SoCs (MT798x) have dedicated MMIO-SRAM for dma operations.

MT7981 and MT7986 currently use static offset to ethernet MAC register
which will be changed in separate patch once this way is accepted.

Add "sram" property to map ethernet controller to dedicated mmio-sram node.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
v8:
- splitted out mac subnode pattern
- dropped reg naming change
- rephrased description
- drop change of reg-name

v6:
- split out the interrupt-names into separate patch
- update irq(name) min count to 4
- add sram-property
- drop second reg entry and minitems as there is only 1 item left again

v5:
- fix v4 logmessage and change description a bit describing how i get
  the irq count.
- update binding for 8 irqs with different names (rx,tx => fe0..fe3)
  including the 2 reserved irqs which can be used later
- change rx-ringX to pdmaX to be closer to hardware documentation

v4:
- increase max interrupts to 6 because of adding RSS/LRO interrupts (4)
  and dropping 2 reserved irqs (0+3) around rx+tx
- dropped Robs RB due to this change
- allow interrupt names
- add interrupt-names without reserved IRQs on mt7988
  this requires mtk driver patch:
  https://patchwork.kernel.org/project/netdevbpf/patch/20250616080738.117993-2-linux@fw-web.de/

v2:
- change reg to list of items
---
 Documentation/devicetree/bindings/net/mediatek,net.yaml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml
index da7bda20786a..afacd30b37c0 100644
--- a/Documentation/devicetree/bindings/net/mediatek,net.yaml
+++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml
@@ -66,6 +66,10 @@ properties:
       - const: gmac
       - const: ppe
 
+  sram:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: phandle to mmio SRAM
+
   mediatek,ethsys:
     $ref: /schemas/types.yaml#/definitions/phandle
     description:
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 05/16] dt-bindings: net: dsa: mediatek,mt7530: add dsa-port definition for mt7988
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (3 preceding siblings ...)
  2025-07-06 13:21 ` [PATCH v8 04/16] dt-bindings: net: mediatek,net: add sram property Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 06/16] dt-bindings: net: dsa: mediatek,mt7530: add internal mdio bus Frank Wunderlich
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Add own dsa-port binding for SoC with internal switch where only phy-mode
'internal' is valid.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 .../bindings/net/dsa/mediatek,mt7530.yaml          | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
index 51205f9f2985..9b983fdbf3c7 100644
--- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
@@ -190,6 +190,18 @@ required:
   - reg
 
 $defs:
+  builtin-dsa-port:
+    patternProperties:
+      "^(ethernet-)?ports$":
+        patternProperties:
+          "^(ethernet-)?port@[0-6]$":
+            if:
+              required: [ ethernet ]
+            then:
+              properties:
+                phy-mode:
+                  const: internal
+
   mt7530-dsa-port:
     patternProperties:
       "^(ethernet-)?ports$":
@@ -297,7 +309,7 @@ allOf:
             - airoha,en7581-switch
             - airoha,an7583-switch
     then:
-      $ref: "#/$defs/mt7530-dsa-port"
+      $ref: "#/$defs/builtin-dsa-port"
       properties:
         gpio-controller: false
         mediatek,mcm: false
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 06/16] dt-bindings: net: dsa: mediatek,mt7530: add internal mdio bus
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (4 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 05/16] dt-bindings: net: dsa: mediatek,mt7530: add dsa-port definition for mt7988 Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 07/16] dt-bindings: interconnect: add mt7988-cci compatible Frank Wunderlich
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Mt7988 buildin switch has own mdio bus where ge-phys are connected.
Add related property for this.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
v2:
- change from patternproperty to property
- add unevaluatedProperties and mediatek,pio subproperty
---
 .../devicetree/bindings/net/dsa/mediatek,mt7530.yaml   | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
index 9b983fdbf3c7..815a90808901 100644
--- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
@@ -136,6 +136,16 @@ properties:
       See Documentation/devicetree/bindings/regulator/mt6323-regulator.txt for
       details for the regulator setup on these boards.
 
+  mdio:
+    $ref: /schemas/net/mdio.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      mediatek,pio:
+        $ref: /schemas/types.yaml#/definitions/phandle
+        description:
+          Phandle pointing to the mediatek pinctrl node.
+
   mediatek,mcm:
     type: boolean
     description:
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 07/16] dt-bindings: interconnect: add mt7988-cci compatible
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (5 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 06/16] dt-bindings: net: dsa: mediatek,mt7530: add internal mdio bus Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 08/16] arm64: dts: mediatek: mt7988: add cci node Frank Wunderlich
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Add compatible for Mediatek MT7988 SoC with mediatek,mt8183-cci fallback
which is taken by driver.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Acked-by: Georgi Djakov <djakov@kernel.org>
---
v2:
- no RFC
- drop "items" as sugested by conor
---
 .../bindings/interconnect/mediatek,cci.yaml           | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml b/Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml
index 58611ba2a0f4..4d72525f407e 100644
--- a/Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml
+++ b/Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml
@@ -17,9 +17,14 @@ description: |
 
 properties:
   compatible:
-    enum:
-      - mediatek,mt8183-cci
-      - mediatek,mt8186-cci
+    oneOf:
+      - enum:
+          - mediatek,mt8183-cci
+          - mediatek,mt8186-cci
+      - items:
+          - enum:
+              - mediatek,mt7988-cci
+          - const: mediatek,mt8183-cci
 
   clocks:
     items:
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 08/16] arm64: dts: mediatek: mt7988: add cci node
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (6 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 07/16] dt-bindings: interconnect: add mt7988-cci compatible Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 09/16] arm64: dts: mediatek: mt7988: add basic ethernet-nodes Frank Wunderlich
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Add cci devicetree node for cpu frequency scaling.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
v3:
- add mt7988-cci compatible as suggested by angelo
---
 arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 33 +++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
index c46b31f8d653..560ec86dbec0 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
@@ -12,6 +12,35 @@ / {
 	#address-cells = <2>;
 	#size-cells = <2>;
 
+	cci: cci {
+		compatible = "mediatek,mt7988-cci", "mediatek,mt8183-cci";
+		clocks = <&mcusys CLK_MCU_BUS_DIV_SEL>,
+			 <&topckgen CLK_TOP_XTAL>;
+		clock-names = "cci", "intermediate";
+		operating-points-v2 = <&cci_opp>;
+	};
+
+	cci_opp: opp-table-cci {
+		compatible = "operating-points-v2";
+		opp-shared;
+		opp-480000000 {
+			opp-hz = /bits/ 64 <480000000>;
+			opp-microvolt = <850000>;
+		};
+		opp-660000000 {
+			opp-hz = /bits/ 64 <660000000>;
+			opp-microvolt = <850000>;
+		};
+		opp-900000000 {
+			opp-hz = /bits/ 64 <900000000>;
+			opp-microvolt = <850000>;
+		};
+		opp-1080000000 {
+			opp-hz = /bits/ 64 <1080000000>;
+			opp-microvolt = <900000>;
+		};
+	};
+
 	cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
@@ -25,6 +54,7 @@ cpu0: cpu@0 {
 				 <&topckgen CLK_TOP_XTAL>;
 			clock-names = "cpu", "intermediate";
 			operating-points-v2 = <&cluster0_opp>;
+			mediatek,cci = <&cci>;
 		};
 
 		cpu1: cpu@1 {
@@ -36,6 +66,7 @@ cpu1: cpu@1 {
 				 <&topckgen CLK_TOP_XTAL>;
 			clock-names = "cpu", "intermediate";
 			operating-points-v2 = <&cluster0_opp>;
+			mediatek,cci = <&cci>;
 		};
 
 		cpu2: cpu@2 {
@@ -47,6 +78,7 @@ cpu2: cpu@2 {
 				 <&topckgen CLK_TOP_XTAL>;
 			clock-names = "cpu", "intermediate";
 			operating-points-v2 = <&cluster0_opp>;
+			mediatek,cci = <&cci>;
 		};
 
 		cpu3: cpu@3 {
@@ -58,6 +90,7 @@ cpu3: cpu@3 {
 				 <&topckgen CLK_TOP_XTAL>;
 			clock-names = "cpu", "intermediate";
 			operating-points-v2 = <&cluster0_opp>;
+			mediatek,cci = <&cci>;
 		};
 
 		cluster0_opp: opp-table-0 {
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 09/16] arm64: dts: mediatek: mt7988: add basic ethernet-nodes
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (7 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 08/16] arm64: dts: mediatek: mt7988: add cci node Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 10/16] arm64: dts: mediatek: mt7988: add switch node Frank Wunderlich
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Add basic ethernet related nodes.

Mac1+2 needs pcs (sgmii+usxgmii) to work correctly which will be linked
later when driver is merged.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
v8:
- change ethernet register size to 0x40000
  range from 0x15140000 ~ 0x1517ffff is not usable on mt7988 => 0xDEADBEEF

v6:
- fix whitespace-errors for pdma irqs (spaces vs. tabs)
- move sram from eth reg to own sram node (needs CONFIG_SRAM)

v5:
- add reserved irqs and change names to fe0..fe3
- change rx-ringX to pdmaX to be closer to documentation

v4:
- comment for fixed-link on gmac0
- update 2g5 phy node
  - unit-name dec instead of hex to match reg property
  - move compatible before reg
  - drop phy-mode
- add interrupts for RSS
- add interrupt-names and drop reserved irqs for ethernet
- some reordering
- eth-reg and clock whitespace-fix based on angelos review
---
 arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 137 +++++++++++++++++++++-
 1 file changed, 134 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
index 560ec86dbec0..897b5a82b53e 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
@@ -680,7 +680,28 @@ xphyu3port0: usb-phy@11e13000 {
 			};
 		};
 
-		clock-controller@11f40000 {
+		xfi_tphy0: phy@11f20000 {
+			compatible = "mediatek,mt7988-xfi-tphy";
+			reg = <0 0x11f20000 0 0x10000>;
+			clocks = <&xfi_pll CLK_XFIPLL_PLL_EN>,
+				 <&topckgen CLK_TOP_XFI_PHY_0_XTAL_SEL>;
+			clock-names = "xfipll", "topxtal";
+			resets = <&watchdog 14>;
+			mediatek,usxgmii-performance-errata;
+			#phy-cells = <0>;
+		};
+
+		xfi_tphy1: phy@11f30000 {
+			compatible = "mediatek,mt7988-xfi-tphy";
+			reg = <0 0x11f30000 0 0x10000>;
+			clocks = <&xfi_pll CLK_XFIPLL_PLL_EN>,
+				 <&topckgen CLK_TOP_XFI_PHY_1_XTAL_SEL>;
+			clock-names = "xfipll", "topxtal";
+			resets = <&watchdog 15>;
+			#phy-cells = <0>;
+		};
+
+		xfi_pll: clock-controller@11f40000 {
 			compatible = "mediatek,mt7988-xfi-pll";
 			reg = <0 0x11f40000 0 0x1000>;
 			resets = <&watchdog 16>;
@@ -714,19 +735,129 @@ phy_calibration_p3: calib@97c {
 			};
 		};
 
-		clock-controller@15000000 {
+		ethsys: clock-controller@15000000 {
 			compatible = "mediatek,mt7988-ethsys", "syscon";
 			reg = <0 0x15000000 0 0x1000>;
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 		};
 
-		clock-controller@15031000 {
+		ethwarp: clock-controller@15031000 {
 			compatible = "mediatek,mt7988-ethwarp";
 			reg = <0 0x15031000 0 0x1000>;
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 		};
+
+		eth: ethernet@15100000 {
+			compatible = "mediatek,mt7988-eth";
+			reg = <0 0x15100000 0 0x40000>;
+			interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "fe0", "fe1", "fe2", "fe3", "pdma0",
+					  "pdma1", "pdma2", "pdma3";
+			clocks = <&ethsys CLK_ETHDMA_CRYPT0_EN>,
+				 <&ethsys CLK_ETHDMA_FE_EN>,
+				 <&ethsys CLK_ETHDMA_GP2_EN>,
+				 <&ethsys CLK_ETHDMA_GP1_EN>,
+				 <&ethsys CLK_ETHDMA_GP3_EN>,
+				 <&ethwarp CLK_ETHWARP_WOCPU2_EN>,
+				 <&ethwarp CLK_ETHWARP_WOCPU1_EN>,
+				 <&ethwarp CLK_ETHWARP_WOCPU0_EN>,
+				 <&ethsys CLK_ETHDMA_ESW_EN>,
+				 <&topckgen CLK_TOP_ETH_GMII_SEL>,
+				 <&topckgen CLK_TOP_ETH_REFCK_50M_SEL>,
+				 <&topckgen CLK_TOP_ETH_SYS_200M_SEL>,
+				 <&topckgen CLK_TOP_ETH_SYS_SEL>,
+				 <&topckgen CLK_TOP_ETH_XGMII_SEL>,
+				 <&topckgen CLK_TOP_ETH_MII_SEL>,
+				 <&topckgen CLK_TOP_NETSYS_SEL>,
+				 <&topckgen CLK_TOP_NETSYS_500M_SEL>,
+				 <&topckgen CLK_TOP_NETSYS_PAO_2X_SEL>,
+				 <&topckgen CLK_TOP_NETSYS_SYNC_250M_SEL>,
+				 <&topckgen CLK_TOP_NETSYS_PPEFB_250M_SEL>,
+				 <&topckgen CLK_TOP_NETSYS_WARP_SEL>,
+				 <&ethsys CLK_ETHDMA_XGP1_EN>,
+				 <&ethsys CLK_ETHDMA_XGP2_EN>,
+				 <&ethsys CLK_ETHDMA_XGP3_EN>;
+			clock-names = "crypto", "fe", "gp2", "gp1", "gp3",
+				      "ethwarp_wocpu2", "ethwarp_wocpu1",
+				      "ethwarp_wocpu0", "esw", "top_eth_gmii_sel",
+				      "top_eth_refck_50m_sel", "top_eth_sys_200m_sel",
+				      "top_eth_sys_sel", "top_eth_xgmii_sel",
+				      "top_eth_mii_sel", "top_netsys_sel",
+				      "top_netsys_500m_sel", "top_netsys_pao_2x_sel",
+				      "top_netsys_sync_250m_sel",
+				      "top_netsys_ppefb_250m_sel",
+				      "top_netsys_warp_sel","xgp1", "xgp2", "xgp3";
+			assigned-clocks = <&topckgen CLK_TOP_NETSYS_2X_SEL>,
+					  <&topckgen CLK_TOP_NETSYS_GSW_SEL>,
+					  <&topckgen CLK_TOP_USXGMII_SBUS_0_SEL>,
+					  <&topckgen CLK_TOP_USXGMII_SBUS_1_SEL>,
+					  <&topckgen CLK_TOP_SGM_0_SEL>,
+					  <&topckgen CLK_TOP_SGM_1_SEL>;
+			assigned-clock-parents = <&apmixedsys CLK_APMIXED_NET2PLL>,
+						 <&topckgen CLK_TOP_NET1PLL_D4>,
+						 <&topckgen CLK_TOP_NET1PLL_D8_D4>,
+						 <&topckgen CLK_TOP_NET1PLL_D8_D4>,
+						 <&apmixedsys CLK_APMIXED_SGMPLL>,
+						 <&apmixedsys CLK_APMIXED_SGMPLL>;
+			sram = <&eth_sram>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			mediatek,ethsys = <&ethsys>;
+			mediatek,infracfg = <&topmisc>;
+
+			gmac0: mac@0 {
+				compatible = "mediatek,eth-mac";
+				reg = <0>;
+				phy-mode = "internal";
+
+				/* Connected to internal switch */
+				fixed-link {
+					speed = <10000>;
+					full-duplex;
+					pause;
+				};
+			};
+
+			gmac1: mac@1 {
+				compatible = "mediatek,eth-mac";
+				reg = <1>;
+				status = "disabled";
+			};
+
+			gmac2: mac@2 {
+				compatible = "mediatek,eth-mac";
+				reg = <2>;
+				status = "disabled";
+			};
+
+			mdio_bus: mdio-bus {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				/* internal 2.5G PHY */
+				int_2p5g_phy: ethernet-phy@15 {
+					compatible = "ethernet-phy-ieee802.3-c45";
+					reg = <15>;
+				};
+			};
+		};
+
+		eth_sram: sram@15400000 {
+			compatible = "mmio-sram";
+			reg = <0 0x15400000 0 0x200000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0 0x15400000 0 0x200000>;
+		};
 	};
 
 	thermal-zones {
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 10/16] arm64: dts: mediatek: mt7988: add switch node
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (8 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 09/16] arm64: dts: mediatek: mt7988: add basic ethernet-nodes Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 11/16] arm64: dts: mediatek: mt7988a-bpi-r4: add proc-supply for cci Frank Wunderlich
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Add mt7988 builtin mt753x switch nodes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
v4:
- drop phy-mode for gsw-phy
- reorder phy-mode after phy-handle
- drop interrupt parent from switch

v2:
- drop labels and led-function too (have to be in board)
---
 arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 148 ++++++++++++++++++++++
 1 file changed, 148 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
index 897b5a82b53e..366203a72d6d 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
@@ -742,6 +742,154 @@ ethsys: clock-controller@15000000 {
 			#reset-cells = <1>;
 		};
 
+		switch: switch@15020000 {
+			compatible = "mediatek,mt7988-switch";
+			reg = <0 0x15020000 0 0x8000>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+			interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
+			resets = <&ethwarp MT7988_ETHWARP_RST_SWITCH>;
+
+			ports {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				gsw_port0: port@0 {
+					reg = <0>;
+					phy-handle = <&gsw_phy0>;
+					phy-mode = "internal";
+				};
+
+				gsw_port1: port@1 {
+					reg = <1>;
+					phy-handle = <&gsw_phy1>;
+					phy-mode = "internal";
+				};
+
+				gsw_port2: port@2 {
+					reg = <2>;
+					phy-handle = <&gsw_phy2>;
+					phy-mode = "internal";
+				};
+
+				gsw_port3: port@3 {
+					reg = <3>;
+					phy-handle = <&gsw_phy3>;
+					phy-mode = "internal";
+				};
+
+				port@6 {
+					reg = <6>;
+					ethernet = <&gmac0>;
+					phy-mode = "internal";
+
+					fixed-link {
+						speed = <10000>;
+						full-duplex;
+						pause;
+					};
+				};
+			};
+
+			mdio {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				mediatek,pio = <&pio>;
+
+				gsw_phy0: ethernet-phy@0 {
+					compatible = "ethernet-phy-ieee802.3-c22";
+					reg = <0>;
+					interrupts = <0>;
+					nvmem-cells = <&phy_calibration_p0>;
+					nvmem-cell-names = "phy-cal-data";
+
+					leds {
+						#address-cells = <1>;
+						#size-cells = <0>;
+
+						gsw_phy0_led0: led@0 {
+							reg = <0>;
+							status = "disabled";
+						};
+
+						gsw_phy0_led1: led@1 {
+							reg = <1>;
+							status = "disabled";
+						};
+					};
+				};
+
+				gsw_phy1: ethernet-phy@1 {
+					compatible = "ethernet-phy-ieee802.3-c22";
+					reg = <1>;
+					interrupts = <1>;
+					nvmem-cells = <&phy_calibration_p1>;
+					nvmem-cell-names = "phy-cal-data";
+
+					leds {
+						#address-cells = <1>;
+						#size-cells = <0>;
+
+						gsw_phy1_led0: led@0 {
+							reg = <0>;
+							status = "disabled";
+						};
+
+						gsw_phy1_led1: led@1 {
+							reg = <1>;
+							status = "disabled";
+						};
+					};
+				};
+
+				gsw_phy2: ethernet-phy@2 {
+					compatible = "ethernet-phy-ieee802.3-c22";
+					reg = <2>;
+					interrupts = <2>;
+					nvmem-cells = <&phy_calibration_p2>;
+					nvmem-cell-names = "phy-cal-data";
+
+					leds {
+						#address-cells = <1>;
+						#size-cells = <0>;
+
+						gsw_phy2_led0: led@0 {
+							reg = <0>;
+							status = "disabled";
+						};
+
+						gsw_phy2_led1: led@1 {
+							reg = <1>;
+							status = "disabled";
+						};
+					};
+				};
+
+				gsw_phy3: ethernet-phy@3 {
+					compatible = "ethernet-phy-ieee802.3-c22";
+					reg = <3>;
+					interrupts = <3>;
+					nvmem-cells = <&phy_calibration_p3>;
+					nvmem-cell-names = "phy-cal-data";
+
+					leds {
+						#address-cells = <1>;
+						#size-cells = <0>;
+
+						gsw_phy3_led0: led@0 {
+							reg = <0>;
+							status = "disabled";
+						};
+
+						gsw_phy3_led1: led@1 {
+							reg = <1>;
+							status = "disabled";
+						};
+					};
+				};
+			};
+		};
+
 		ethwarp: clock-controller@15031000 {
 			compatible = "mediatek,mt7988-ethwarp";
 			reg = <0 0x15031000 0 0x1000>;
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 11/16] arm64: dts: mediatek: mt7988a-bpi-r4: add proc-supply for cci
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (9 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 10/16] arm64: dts: mediatek: mt7988: add switch node Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 12/16] arm64: dts: mediatek: mt7988a-bpi-r4: drop unused pins Frank Wunderlich
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

CCI requires proc-supply. Add it on board level.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
index 81ba045e0e0e..afa9e3b2b16a 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
@@ -40,6 +40,10 @@ reg_3p3v: regulator-3p3v {
 	};
 };
 
+&cci {
+	proc-supply = <&rt5190_buck3>;
+};
+
 &cpu0 {
 	proc-supply = <&rt5190_buck3>;
 };
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 12/16] arm64: dts: mediatek: mt7988a-bpi-r4: drop unused pins
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (10 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 11/16] arm64: dts: mediatek: mt7988a-bpi-r4: add proc-supply for cci Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 13/16] arm64: dts: mediatek: mt7988a-bpi-r4: add gpio leds Frank Wunderlich
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Pins were moved from SoC dtsi to Board level dtsi without cleaning up
to needed ones. Drop the unused pins now.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 .../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 89 -------------------
 1 file changed, 89 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
index afa9e3b2b16a..30affedf84d4 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
@@ -223,18 +223,6 @@ &pcie3 {
 };
 
 &pio {
-	mdio0_pins: mdio0-pins {
-		mux {
-			function = "eth";
-			groups = "mdc_mdio0";
-		};
-
-		conf {
-			pins = "SMI_0_MDC", "SMI_0_MDIO";
-			drive-strength = <8>;
-		};
-	};
-
 	i2c0_pins: i2c0-g0-pins {
 		mux {
 			function = "i2c";
@@ -249,20 +237,6 @@ mux {
 		};
 	};
 
-	i2c1_sfp_pins: i2c1-sfp-g0-pins {
-		mux {
-			function = "i2c";
-			groups = "i2c1_sfp";
-		};
-	};
-
-	i2c2_0_pins: i2c2-g0-pins {
-		mux {
-			function = "i2c";
-			groups = "i2c2_0";
-		};
-	};
-
 	i2c2_1_pins: i2c2-g1-pins {
 		mux {
 			function = "i2c";
@@ -298,34 +272,6 @@ mux {
 		};
 	};
 
-	gbe0_led1_pins: gbe0-led1-pins {
-		mux {
-			function = "led";
-			groups = "gbe0_led1";
-		};
-	};
-
-	gbe1_led1_pins: gbe1-led1-pins {
-		mux {
-			function = "led";
-			groups = "gbe1_led1";
-		};
-	};
-
-	gbe2_led1_pins: gbe2-led1-pins {
-		mux {
-			function = "led";
-			groups = "gbe2_led1";
-		};
-	};
-
-	gbe3_led1_pins: gbe3-led1-pins {
-		mux {
-			function = "led";
-			groups = "gbe3_led1";
-		};
-	};
-
 	i2p5gbe_led0_pins: 2p5gbe-led0-pins {
 		mux {
 			function = "led";
@@ -333,13 +279,6 @@ mux {
 		};
 	};
 
-	i2p5gbe_led1_pins: 2p5gbe-led1-pins {
-		mux {
-			function = "led";
-			groups = "2p5gbe_led1";
-		};
-	};
-
 	mmc0_pins_emmc_45: mmc0-emmc-45-pins {
 		mux {
 			function = "flash";
@@ -361,40 +300,12 @@ mux {
 		};
 	};
 
-	snfi_pins: snfi-pins {
-		mux {
-			function = "flash";
-			groups = "snfi";
-		};
-	};
-
-	spi0_pins: spi0-pins {
-		mux {
-			function = "spi";
-			groups = "spi0";
-		};
-	};
-
 	spi0_flash_pins: spi0-flash-pins {
 		mux {
 			function = "spi";
 			groups = "spi0", "spi0_wp_hold";
 		};
 	};
-
-	spi2_pins: spi2-pins {
-		mux {
-			function = "spi";
-			groups = "spi2";
-		};
-	};
-
-	spi2_flash_pins: spi2-flash-pins {
-		mux {
-			function = "spi";
-			groups = "spi2", "spi2_wp_hold";
-		};
-	};
 };
 
 &pwm {
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 13/16] arm64: dts: mediatek: mt7988a-bpi-r4: add gpio leds
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (11 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 12/16] arm64: dts: mediatek: mt7988a-bpi-r4: drop unused pins Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 14/16] arm64: dts: mediatek: mt7988a-bpi-r4: add aliases for ethernet Frank Wunderlich
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Bananapi R4 has a green and a blue led which can be switched by gpio.
Green led is for running state so default on.

Green led also shares pin with eeprom writeprotect where led off allows
writing to eeprom.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 .../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
index 30affedf84d4..21eb91c8609f 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
@@ -21,6 +21,25 @@ fan: pwm-fan {
 		status = "okay";
 	};
 
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		led_green: led-green {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&pio 79 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+		};
+
+		led_blue: led-blue {
+			function = LED_FUNCTION_WPS;
+			color = <LED_COLOR_ID_BLUE>;
+			gpios = <&pio 63 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+	};
+
+
 	reg_1p8v: regulator-1p8v {
 		compatible = "regulator-fixed";
 		regulator-name = "fixed-1.8V";
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 14/16] arm64: dts: mediatek: mt7988a-bpi-r4: add aliases for ethernet
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (12 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 13/16] arm64: dts: mediatek: mt7988a-bpi-r4: add gpio leds Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 15/16] arm64: dts: mediatek: mt7988a-bpi-r4: add sfp cages and link to gmac Frank Wunderlich
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Add aliases for gmacs to allow bootloader setting mac-adresses.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
index 21eb91c8609f..20073eb4d1bd 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
@@ -8,6 +8,12 @@
 #include "mt7988a.dtsi"
 
 / {
+	aliases {
+		ethernet0 = &gmac0;
+		ethernet1 = &gmac1;
+		ethernet2 = &gmac2;
+	};
+
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 15/16] arm64: dts: mediatek: mt7988a-bpi-r4: add sfp cages and link to gmac
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (13 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 14/16] arm64: dts: mediatek: mt7988a-bpi-r4: add aliases for ethernet Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-06 13:22 ` [PATCH v8 16/16] arm64: dts: mediatek: mt7988a-bpi-r4: configure switch phys and leds Frank Wunderlich
  2025-07-07  9:22 ` (subset) [PATCH v8 00/16] further mt7988 devicetree work AngeloGioacchino Del Regno
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Add SFP cages to Bananapi-R4 board. The 2.5g phy variant only contains the
wan-SFP, so add this to common dtsi and the lan-sfp only to the dual-SFP
variant.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
v4:
- update 2g5-board (reorder and drop phy-connection-type)
- order sfp properties
v3:
- enable mac with 2.5g phy on r4 phy variant because driver is now mainline
---
 .../mediatek/mt7988a-bananapi-bpi-r4-2g5.dts  | 11 +++++++++++
 .../dts/mediatek/mt7988a-bananapi-bpi-r4.dts  | 19 +++++++++++++++++++
 .../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 19 +++++++++++++++++++
 3 files changed, 49 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
index 53de9c113f60..6f0c81e3fd94 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
@@ -9,3 +9,14 @@ / {
 	model = "Banana Pi BPI-R4 (1x SFP+, 1x 2.5GbE)";
 	chassis-type = "embedded";
 };
+
+&gmac1 {
+	phy = <&int_2p5g_phy>;
+	phy-mode = "internal";
+	status = "okay";
+};
+
+&int_2p5g_phy {
+	pinctrl-0 = <&i2p5gbe_led0_pins>;
+	pinctrl-names = "i2p5gbe-led";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
index 36bd1ef2efab..4b3796ba82e3 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
@@ -8,6 +8,25 @@ / {
 	compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
 	model = "Banana Pi BPI-R4 (2x SFP+)";
 	chassis-type = "embedded";
+
+	/* SFP2 cage (LAN) */
+	sfp2: sfp2 {
+		compatible = "sff,sfp";
+		i2c-bus = <&i2c_sfp2>;
+		maximum-power-milliwatt = <3000>;
+
+		los-gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&pio 83 GPIO_ACTIVE_LOW>;
+		rate-select0-gpios = <&pio 3 GPIO_ACTIVE_LOW>;
+		tx-disable-gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
+		tx-fault-gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&gmac1 {
+	managed = "in-band-status";
+	phy-mode = "usxgmii";
+	sfp = <&sfp2>;
 };
 
 &pca9545 {
diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
index 20073eb4d1bd..4d709ee527df 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
@@ -63,6 +63,19 @@ reg_3p3v: regulator-3p3v {
 		regulator-boot-on;
 		regulator-always-on;
 	};
+
+	/* SFP1 cage (WAN) */
+	sfp1: sfp1 {
+		compatible = "sff,sfp";
+		i2c-bus = <&i2c_sfp1>;
+		maximum-power-milliwatt = <3000>;
+
+		los-gpios = <&pio 54 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&pio 82 GPIO_ACTIVE_LOW>;
+		rate-select0-gpios = <&pio 21 GPIO_ACTIVE_LOW>;
+		tx-disable-gpios = <&pio 70 GPIO_ACTIVE_HIGH>;
+		tx-fault-gpios = <&pio 69 GPIO_ACTIVE_HIGH>;
+	};
 };
 
 &cci {
@@ -133,6 +146,12 @@ map-cpu-active-low {
 	};
 };
 
+&gmac2 {
+	managed = "in-band-status";
+	phy-mode = "usxgmii";
+	sfp = <&sfp1>;
+};
+
 &i2c0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c0_pins>;
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v8 16/16] arm64: dts: mediatek: mt7988a-bpi-r4: configure switch phys and leds
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (14 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 15/16] arm64: dts: mediatek: mt7988a-bpi-r4: add sfp cages and link to gmac Frank Wunderlich
@ 2025-07-06 13:22 ` Frank Wunderlich
  2025-07-07  9:22 ` (subset) [PATCH v8 00/16] further mt7988 devicetree work AngeloGioacchino Del Regno
  16 siblings, 0 replies; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-06 13:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

From: Frank Wunderlich <frank-w@public-files.de>

Assign pinctrl to switch phys and leds.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
v4:
- reorder switch phy(-led) properties
v2:
- add labels and led-function and include after dropping from soc dtsi
---
 .../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 61 +++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
index 4d709ee527df..7c9df606f60d 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
@@ -4,6 +4,7 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
+#include <dt-bindings/leds/common.h>
 
 #include "mt7988a.dtsi"
 
@@ -152,6 +153,66 @@ &gmac2 {
 	sfp = <&sfp1>;
 };
 
+&gsw_phy0 {
+	pinctrl-0 = <&gbe0_led0_pins>;
+	pinctrl-names = "gbe-led";
+};
+
+&gsw_phy0_led0 {
+	function = LED_FUNCTION_WAN;
+	color = <LED_COLOR_ID_GREEN>;
+	status = "okay";
+};
+
+&gsw_port0 {
+	label = "wan";
+};
+
+&gsw_phy1 {
+	pinctrl-0 = <&gbe1_led0_pins>;
+	pinctrl-names = "gbe-led";
+};
+
+&gsw_phy1_led0 {
+	function = LED_FUNCTION_LAN;
+	color = <LED_COLOR_ID_GREEN>;
+	status = "okay";
+};
+
+&gsw_port1 {
+	label = "lan1";
+};
+
+&gsw_phy2 {
+	pinctrl-0 = <&gbe2_led0_pins>;
+	pinctrl-names = "gbe-led";
+};
+
+&gsw_phy2_led0 {
+	function = LED_FUNCTION_LAN;
+	color = <LED_COLOR_ID_GREEN>;
+	status = "okay";
+};
+
+&gsw_port2 {
+	label = "lan2";
+};
+
+&gsw_phy3 {
+	pinctrl-0 = <&gbe3_led0_pins>;
+	pinctrl-names = "gbe-led";
+};
+
+&gsw_phy3_led0 {
+	function = LED_FUNCTION_LAN;
+	color = <LED_COLOR_ID_GREEN>;
+	status = "okay";
+};
+
+&gsw_port3 {
+	label = "lan3";
+};
+
 &i2c0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c0_pins>;
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 27+ messages in thread

* Re: [PATCH v8 01/16] dt-bindings: net: mediatek,net: update mac subnode pattern for mt7988
  2025-07-06 13:21 ` [PATCH v8 01/16] dt-bindings: net: mediatek,net: update mac subnode pattern for mt7988 Frank Wunderlich
@ 2025-07-07  6:27   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 27+ messages in thread
From: Krzysztof Kozlowski @ 2025-07-07  6:27 UTC (permalink / raw)
  To: Frank Wunderlich
  Cc: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau, Frank Wunderlich, linux-pm, devicetree,
	linux-kernel, netdev, linux-arm-kernel, linux-mediatek

On Sun, Jul 06, 2025 at 03:21:56PM +0200, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> MT7888 have 3 Macs and so its nodes have names from mac0 - mac2. Update
> pattern to fix this.
> 
> Fixes: c94a9aabec36 ("dt-bindings: net: mediatek,net: add mt7988-eth binding")
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> ---
>  Documentation/devicetree/bindings/net/mediatek,net.yaml | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs
  2025-07-06 13:21 ` [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs Frank Wunderlich
@ 2025-07-07  6:31   ` Krzysztof Kozlowski
  2025-07-07  7:30     ` Frank Wunderlich
  0 siblings, 1 reply; 27+ messages in thread
From: Krzysztof Kozlowski @ 2025-07-07  6:31 UTC (permalink / raw)
  To: Frank Wunderlich
  Cc: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau, Frank Wunderlich, linux-pm, devicetree,
	linux-kernel, netdev, linux-arm-kernel, linux-mediatek

On Sun, Jul 06, 2025 at 03:21:57PM +0200, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> Increase the maximum IRQ count to 8 (4 FE + 4 RSS/LRO).

Because? Hardware was updated? It was missing before?

> 
> Frame-engine-IRQs (max 4):
> MT7621, MT7628: 1 IRQ
> MT7622, MT7623: 3 IRQs (only two used by the driver for now)
> MT7981, MT7986, MT7988: 4 IRQs (only two used by the driver for now)

You updated commit msg - looks fine - but same problem as before in your
code. Now MT7981 has 4-8 interrupts, even though you say here it has only
4.

> 
> Mediatek Filogic SoCs (mt798x) have 4 additional IRQs for RSS and/or
> LRO.

Although I don't know how to treat this. Just say how many interrupts
are there (MT7981, MT7986, MT7988: 4 FE and 4 RSS), not 4 but later
actually 4+4.

I also do not understand why 7 interrupts is now valid... Are these not
connected physically?

Best regards,
Krzysztof



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v8 04/16] dt-bindings: net: mediatek,net: add sram property
  2025-07-06 13:21 ` [PATCH v8 04/16] dt-bindings: net: mediatek,net: add sram property Frank Wunderlich
@ 2025-07-07  6:33   ` Krzysztof Kozlowski
  2025-07-07 10:12   ` AngeloGioacchino Del Regno
  1 sibling, 0 replies; 27+ messages in thread
From: Krzysztof Kozlowski @ 2025-07-07  6:33 UTC (permalink / raw)
  To: Frank Wunderlich
  Cc: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau, Frank Wunderlich, linux-pm, devicetree,
	linux-kernel, netdev, linux-arm-kernel, linux-mediatek

On Sun, Jul 06, 2025 at 03:21:59PM +0200, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> Meditak Filogic SoCs (MT798x) have dedicated MMIO-SRAM for dma operations.

You need "sram: false" for other variants.

Best regards,
Krzysztof



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs
  2025-07-07  6:31   ` Krzysztof Kozlowski
@ 2025-07-07  7:30     ` Frank Wunderlich
  2025-07-07 10:06       ` AngeloGioacchino Del Regno
  0 siblings, 1 reply; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-07  7:30 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Johnson Wang, Arınç ÜNAL, Landen Chao,
	DENG Qingfang, Sean Wang, Daniel Golle, Lorenzo Bianconi,
	Felix Fietkau, Frank Wunderlich, linux-pm, devicetree,
	linux-kernel, netdev, linux-arm-kernel, linux-mediatek

Am 7. Juli 2025 08:31:11 MESZ schrieb Krzysztof Kozlowski <krzk@kernel.org>:
>On Sun, Jul 06, 2025 at 03:21:57PM +0200, Frank Wunderlich wrote:
>> From: Frank Wunderlich <frank-w@public-files.de>
>> 
>> Increase the maximum IRQ count to 8 (4 FE + 4 RSS/LRO).
>
>Because? Hardware was updated? It was missing before?

There is no RSS support in driver yet,so IRQs were not added to existing DTS yet.

>> 
>> Frame-engine-IRQs (max 4):
>> MT7621, MT7628: 1 IRQ
>> MT7622, MT7623: 3 IRQs (only two used by the driver for now)
>> MT7981, MT7986, MT7988: 4 IRQs (only two used by the driver for now)
>
>You updated commit msg - looks fine - but same problem as before in your
>code. Now MT7981 has 4-8 interrupts, even though you say here it has only
>4.

Ethernet works with 4,but can be 8 for MT798x.
I cannot increase the MinItems here as it will
throw error because currently only 4 are defined in DTS.same for MT7986.
>> 
>> Mediatek Filogic SoCs (mt798x) have 4 additional IRQs for RSS and/or
>> LRO.
>
>Although I don't know how to treat this. Just say how many interrupts
>are there (MT7981, MT7986, MT7988: 4 FE and 4 RSS), not 4 but later
>actually 4+4.

First block is for Frame Engine IRQs and second for RSS/LRO. Only mention total count 
across all SoCs is imho more confusing.

>I also do not understand why 7 interrupts is now valid... Are these not
>connected physically?

7 does not make sense but i know no way to allow 8 with min 4 without between (5-7).

>Best regards,
>Krzysztof

Hi

Thanks for taking time for review again.

First block are the frame engine IRQs which are max 4 and on all SoCs.
The RSS IRQs are only valid on Filogic (MT798x),so there a total of 8, but on
MT7981 and MT7986 not yet added as i prepare the RSS/LRO driver in background.
We just want to add the IRQs for MT7988 now.
regards Frank


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: (subset) [PATCH v8 00/16] further mt7988 devicetree work
  2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
                   ` (15 preceding siblings ...)
  2025-07-06 13:22 ` [PATCH v8 16/16] arm64: dts: mediatek: mt7988a-bpi-r4: configure switch phys and leds Frank Wunderlich
@ 2025-07-07  9:22 ` AngeloGioacchino Del Regno
  16 siblings, 0 replies; 27+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-07-07  9:22 UTC (permalink / raw)
  To: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, Johnson Wang,
	Arınç ÜNAL, Landen Chao, DENG Qingfang, Sean Wang,
	Daniel Golle, Lorenzo Bianconi, Felix Fietkau, Frank Wunderlich
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

On Sun, 06 Jul 2025 15:21:55 +0200, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> This series continues mt7988 devicetree work
> 
> - Extend cpu frequency scaling with CCI
> - GPIO leds
> - Basic network-support (ethernet controller + builtin switch + SFP Cages)
> 
> [...]

Applied to v6.16-next/dts64, thanks!

[07/16] dt-bindings: interconnect: add mt7988-cci compatible
        commit: bd9e0f5d90959d2d07986084fbd58042b62aa549
[08/16] arm64: dts: mediatek: mt7988: add cci node
        commit: 0cbdb6d04689f8c05074e348c8e0a42b229ef9a3
[11/16] arm64: dts: mediatek: mt7988a-bpi-r4: add proc-supply for cci
        commit: b5a4ad957114b59a74b3e3f598ae0785dd86cd32
[12/16] arm64: dts: mediatek: mt7988a-bpi-r4: drop unused pins
        commit: bc51660cd5fd2d0ee9a65b59e0c65e2d1b65975a
[13/16] arm64: dts: mediatek: mt7988a-bpi-r4: add gpio leds
        commit: 5a40efb8c9d26e51db8acc61e920c3eda9407c02

Cheers,
Angelo




^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs
  2025-07-07  7:30     ` Frank Wunderlich
@ 2025-07-07 10:06       ` AngeloGioacchino Del Regno
  2025-07-07 10:43         ` Frank Wunderlich
  0 siblings, 1 reply; 27+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-07-07 10:06 UTC (permalink / raw)
  To: Frank Wunderlich, Krzysztof Kozlowski
  Cc: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, Johnson Wang,
	Arınç ÜNAL, Landen Chao, DENG Qingfang, Sean Wang,
	Daniel Golle, Lorenzo Bianconi, Felix Fietkau, Frank Wunderlich,
	linux-pm, devicetree, linux-kernel, netdev, linux-arm-kernel,
	linux-mediatek

Il 07/07/25 09:30, Frank Wunderlich ha scritto:
> Am 7. Juli 2025 08:31:11 MESZ schrieb Krzysztof Kozlowski <krzk@kernel.org>:
>> On Sun, Jul 06, 2025 at 03:21:57PM +0200, Frank Wunderlich wrote:
>>> From: Frank Wunderlich <frank-w@public-files.de>
>>>
>>> Increase the maximum IRQ count to 8 (4 FE + 4 RSS/LRO).
>>
>> Because? Hardware was updated? It was missing before?
> 
> There is no RSS support in driver yet,so IRQs were not added to existing DTS yet.
> 

That's the problem. It's the hardware that you should've described, not the driver.

In short, you should've allowed the interrupts from the get-go, and you wouldn't
be in this situation now :-)

>>>
>>> Frame-engine-IRQs (max 4):
>>> MT7621, MT7628: 1 IRQ
>>> MT7622, MT7623: 3 IRQs (only two used by the driver for now)
>>> MT7981, MT7986, MT7988: 4 IRQs (only two used by the driver for now)
>>
>> You updated commit msg - looks fine - but same problem as before in your
>> code. Now MT7981 has 4-8 interrupts, even though you say here it has only
>> 4.
> 
> Ethernet works with 4,but can be 8 for MT798x.
> I cannot increase the MinItems here as it will
> throw error because currently only 4 are defined in DTS.same for MT7986.
>>>
>>> Mediatek Filogic SoCs (mt798x) have 4 additional IRQs for RSS and/or
>>> LRO.
>>
>> Although I don't know how to treat this. Just say how many interrupts
>> are there (MT7981, MT7986, MT7988: 4 FE and 4 RSS), not 4 but later
>> actually 4+4.
> 
> First block is for Frame Engine IRQs and second for RSS/LRO. Only mention total count
> across all SoCs is imho more confusing.
> 
>> I also do not understand why 7 interrupts is now valid... Are these not
>> connected physically?
> 
> 7 does not make sense but i know no way to allow 8 with min 4 without between (5-7).
> 
>> Best regards,
>> Krzysztof
> 
> Hi
> 
> Thanks for taking time for review again.
> 
> First block are the frame engine IRQs which are max 4 and on all SoCs.
> The RSS IRQs are only valid on Filogic (MT798x),so there a total of 8, but on
> MT7981 and MT7986 not yet added as i prepare the RSS/LRO driver in background.
> We just want to add the IRQs for MT7988 now.
> regards Frank

Again, it's not the driver but the hardware that you're describing.

As long as you are fixing the description of the hardware, even for all three,
I am personally even fine with breaking the ABI, because the hardware description
has been wrong for all that time.

Just don't send those as Fixes commits, but next time you upstream something you
must keep in mind that in bindings/dts you're describing hardware - the driver is
something that should not drive any decision in what you write in bindings.

We're humans, so stuff like this happens - I'm not saying that you shall not make
mistakes - but again please, for the next time, please please please keep in mind
what I just said :-)

Now the options are two:
  - Break the ABI; or
  - Allow 4 or 8 interrupts (not 5, not 6, not 7)

and that - not just on MT7988 but also on 81 and 86 in one go.

Not sure if the second one is feasible, and I'm considering the first option only
because of that; if the second option can be done, act like I never ever considered
the first.

Cheers,
Angelo


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v8 03/16] dt-bindings: net: mediatek,net: allow irq names
  2025-07-06 13:21 ` [PATCH v8 03/16] dt-bindings: net: mediatek,net: allow irq names Frank Wunderlich
@ 2025-07-07 10:12   ` AngeloGioacchino Del Regno
  0 siblings, 0 replies; 27+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-07-07 10:12 UTC (permalink / raw)
  To: Frank Wunderlich, MyungJoo Ham, Kyungmin Park, Chanwoo Choi,
	Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Andrew Lunn, Vladimir Oltean, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Matthias Brugger, Johnson Wang,
	Arınç ÜNAL, Landen Chao, DENG Qingfang, Sean Wang,
	Daniel Golle, Lorenzo Bianconi, Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

Il 06/07/25 15:21, Frank Wunderlich ha scritto:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> In preparation for MT7988 and RSS/LRO allow the interrupt-names
> property.
> In this way driver can request the interrupts by name which is much
> more readable in the driver code and SoC's dtsi than relying on a
> specific order.
> 
> Frame-engine-IRQs (fe0..3):
> MT7621, MT7628: 1 IRQ
> MT7622, MT7623: 3 IRQs (only two used by the driver for now)
> MT7981, MT7986: 4 IRQs (only two used by the driver for now)
> 
> RSS/LRO IRQs (pdma0..3) only on Filogic (MT798x) with count of 4.
> 
> Set boundaries for all compatibles same as irq count.
> 
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>

I'm fine with that, as long as you don't break the driver's ability to keep
getting the interrupts without any interrupt-names, at least for the currently
supported interrupts.

This commit ain't touching any driver, anyway, and the change is valid IMO, so:

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

> ---
> v8:
>    - fixed typo in mt7621 section "interrupt-namess"
>    - separated interrupt count from interrupt-names
>    - rephrased description a bit to explain the "why"
> v7: fixed wrong rebase
> v6: new patch splitted from the mt7988 changes
> ---
>   .../devicetree/bindings/net/mediatek,net.yaml | 36 +++++++++++++++++++
>   1 file changed, 36 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml
> index 766224e4ed86..da7bda20786a 100644
> --- a/Documentation/devicetree/bindings/net/mediatek,net.yaml
> +++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml
> @@ -42,6 +42,18 @@ properties:
>       minItems: 1
>       maxItems: 8
>   
> +  interrupt-names:
> +    minItems: 1
> +    items:
> +      - const: fe0
> +      - const: fe1
> +      - const: fe2
> +      - const: fe3
> +      - const: pdma0
> +      - const: pdma1
> +      - const: pdma2
> +      - const: pdma3
> +
>     power-domains:
>       maxItems: 1
>   
> @@ -135,6 +147,10 @@ allOf:
>             minItems: 3
>             maxItems: 3
>   
> +        interrupt-names:
> +          minItems: 3
> +          maxItems: 3
> +
>           clocks:
>             minItems: 4
>             maxItems: 4
> @@ -166,6 +182,9 @@ allOf:
>           interrupts:
>             maxItems: 1
>   
> +        interrupt-names:
> +          maxItems: 1
> +
>           clocks:
>             minItems: 2
>             maxItems: 2
> @@ -192,6 +211,10 @@ allOf:
>             minItems: 3
>             maxItems: 3
>   
> +        interrupt-names:
> +          minItems: 3
> +          maxItems: 3
> +
>           clocks:
>             minItems: 11
>             maxItems: 11
> @@ -232,6 +255,10 @@ allOf:
>             minItems: 3
>             maxItems: 3
>   
> +        interrupt-names:
> +          minItems: 3
> +          maxItems: 3
> +
>           clocks:
>             minItems: 17
>             maxItems: 17
> @@ -274,6 +301,9 @@ allOf:
>           interrupts:
>             minItems: 4
>   
> +        interrupt-names:
> +          minItems: 4
> +
>           clocks:
>             minItems: 15
>             maxItems: 15
> @@ -312,6 +342,9 @@ allOf:
>           interrupts:
>             minItems: 4
>   
> +        interrupt-names:
> +          minItems: 4
> +
>           clocks:
>             minItems: 15
>             maxItems: 15
> @@ -350,6 +383,9 @@ allOf:
>           interrupts:
>             minItems: 4
>   
> +        interrupt-names:
> +          minItems: 4
> +
>           clocks:
>             minItems: 24
>             maxItems: 24




^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v8 04/16] dt-bindings: net: mediatek,net: add sram property
  2025-07-06 13:21 ` [PATCH v8 04/16] dt-bindings: net: mediatek,net: add sram property Frank Wunderlich
  2025-07-07  6:33   ` Krzysztof Kozlowski
@ 2025-07-07 10:12   ` AngeloGioacchino Del Regno
  1 sibling, 0 replies; 27+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-07-07 10:12 UTC (permalink / raw)
  To: Frank Wunderlich, MyungJoo Ham, Kyungmin Park, Chanwoo Choi,
	Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Andrew Lunn, Vladimir Oltean, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Matthias Brugger, Johnson Wang,
	Arınç ÜNAL, Landen Chao, DENG Qingfang, Sean Wang,
	Daniel Golle, Lorenzo Bianconi, Felix Fietkau
  Cc: Frank Wunderlich, linux-pm, devicetree, linux-kernel, netdev,
	linux-arm-kernel, linux-mediatek

Il 06/07/25 15:21, Frank Wunderlich ha scritto:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> Meditak Filogic SoCs (MT798x) have dedicated MMIO-SRAM for dma operations.
> 
> MT7981 and MT7986 currently use static offset to ethernet MAC register
> which will be changed in separate patch once this way is accepted.
> 
> Add "sram" property to map ethernet controller to dedicated mmio-sram node.
> 
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>

Honestly, I was more comfortable adding the sram to the reg list instead,
but I know that you got a negative review for that. Oh well.

Please disallow the sram property on SoCs that don't have the SRAM (sram: false),
after which:

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs
  2025-07-07 10:06       ` AngeloGioacchino Del Regno
@ 2025-07-07 10:43         ` Frank Wunderlich
  2025-07-14  7:41           ` Krzysztof Kozlowski
  0 siblings, 1 reply; 27+ messages in thread
From: Frank Wunderlich @ 2025-07-07 10:43 UTC (permalink / raw)
  To: AngeloGioacchino Del Regno, Frank Wunderlich, Krzysztof Kozlowski
  Cc: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, Johnson Wang,
	Arınç ÜNAL, Landen Chao, DENG Qingfang, Sean Wang,
	Daniel Golle, Lorenzo Bianconi, Felix Fietkau, linux-pm,
	devicetree, linux-kernel, netdev, linux-arm-kernel,
	linux-mediatek

Hi Angelo,

Am 7. Juli 2025 12:06:02 MESZ schrieb AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>:
>Il 07/07/25 09:30, Frank Wunderlich ha scritto:
>> Am 7. Juli 2025 08:31:11 MESZ schrieb Krzysztof Kozlowski <krzk@kernel.org>:
>>> On Sun, Jul 06, 2025 at 03:21:57PM +0200, Frank Wunderlich wrote:
>>>> From: Frank Wunderlich <frank-w@public-files.de>
>>>> 
>>>> Increase the maximum IRQ count to 8 (4 FE + 4 RSS/LRO).
>>> 
>>> Because? Hardware was updated? It was missing before?
>> 
>> There is no RSS support in driver yet,so IRQs were not added to existing DTS yet.
>> 
>
>That's the problem. It's the hardware that you should've described, not the driver.
>
>In short, you should've allowed the interrupts from the get-go, and you wouldn't
>be in this situation now :-)

I have not upstreamed MT7981 or MT7986. I also do not want to say anybody else did this wrong.
I'm happy that MT7986 is working in mainline. It was basicly not taken into account that these IRQs may be needed in future.

The technical documents are often not complete and we get some information step-by-step while testing.
Or it was not seen when documents are too large :) many reasons why it was "forgotten to add".
We use what we get from sdk and docs and try to make it compatible with mainline....no optimal process,but it is like it is.

We are all humans :)

>Again, it's not the driver but the hardware that you're describing.

Frame engine works with 4,but we wanted to do better than mt798[16] and add all known IRQs
for MT7988 and update the older SoCs in next step.

>As long as you are fixing the description of the hardware, even for all three,
>I am personally even fine with breaking the ABI, because the hardware description
>has been wrong for all that time.

As some patches now are applied i can add the missing IRQs for MT798[16] in next round and 
maybe the sram too to not having the binding errors long time.

>Just don't send those as Fixes commits, but next time you upstream something you
>must keep in mind that in bindings/dts you're describing hardware - the driver is
>something that should not drive any decision in what you write in bindings.
>
>We're humans, so stuff like this happens - I'm not saying that you shall not make
>mistakes - but again please, for the next time, please please please keep in mind
>what I just said :-)
>
>Now the options are two:
> - Break the ABI; or
> - Allow 4 or 8 interrupts (not 5, not 6, not 7)
>
>and that - not just on MT7988 but also on 81 and 86 in one go.

I would add dts patches for MT798[16] in next version adding the RSS/LRO IRQs,
interrupt-names and the sram node and set the interrupt minItems to 8 for these.

>Not sure if the second one is feasible, and I'm considering the first option only
>because of that; if the second option can be done, act like I never ever considered
>the first.

Maybe the cleanest way is like i described above? Afaik second is not possible.

My intention is that RSS/LRO is ONLY working with interrupt-names so driver can handle also 
old dtb (skip function if irqs are not found via name).

I hope this is a good way to go...

>Cheers,
>Angelo


regards Frank


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs
  2025-07-07 10:43         ` Frank Wunderlich
@ 2025-07-14  7:41           ` Krzysztof Kozlowski
  0 siblings, 0 replies; 27+ messages in thread
From: Krzysztof Kozlowski @ 2025-07-14  7:41 UTC (permalink / raw)
  To: frank-w, AngeloGioacchino Del Regno, Frank Wunderlich
  Cc: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Georgi Djakov,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andrew Lunn,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, Johnson Wang,
	Arınç ÜNAL, Landen Chao, DENG Qingfang, Sean Wang,
	Daniel Golle, Lorenzo Bianconi, Felix Fietkau, linux-pm,
	devicetree, linux-kernel, netdev, linux-arm-kernel,
	linux-mediatek

On 07/07/2025 12:43, Frank Wunderlich wrote:
> Hi Angelo,
> 
> Am 7. Juli 2025 12:06:02 MESZ schrieb AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>:
>> Il 07/07/25 09:30, Frank Wunderlich ha scritto:
>>> Am 7. Juli 2025 08:31:11 MESZ schrieb Krzysztof Kozlowski <krzk@kernel.org>:
>>>> On Sun, Jul 06, 2025 at 03:21:57PM +0200, Frank Wunderlich wrote:
>>>>> From: Frank Wunderlich <frank-w@public-files.de>
>>>>>
>>>>> Increase the maximum IRQ count to 8 (4 FE + 4 RSS/LRO).
>>>>
>>>> Because? Hardware was updated? It was missing before?
>>>
>>> There is no RSS support in driver yet,so IRQs were not added to existing DTS yet.
>>>
>>
>> That's the problem. It's the hardware that you should've described, not the driver.
>>
>> In short, you should've allowed the interrupts from the get-go, and you wouldn't
>> be in this situation now :-)
> 
> I have not upstreamed MT7981 or MT7986. I also do not want to say anybody else did this wrong.
> I'm happy that MT7986 is working in mainline. It was basicly not taken into account that these IRQs may be needed in future.
> 
> The technical documents are often not complete and we get some information step-by-step while testing.
> Or it was not seen when documents are too large :) many reasons why it was "forgotten to add".
> We use what we get from sdk and docs and try to make it compatible with mainline....no optimal process,but it is like it is.


Then explain in the commit msg that hardware description was incomplete
and was missing this and that.

This is the valid reason for doing the change.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2025-07-14  7:57 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-06 13:21 [PATCH v8 00/16] further mt7988 devicetree work Frank Wunderlich
2025-07-06 13:21 ` [PATCH v8 01/16] dt-bindings: net: mediatek,net: update mac subnode pattern for mt7988 Frank Wunderlich
2025-07-07  6:27   ` Krzysztof Kozlowski
2025-07-06 13:21 ` [PATCH v8 02/16] dt-bindings: net: mediatek,net: allow up to 8 IRQs Frank Wunderlich
2025-07-07  6:31   ` Krzysztof Kozlowski
2025-07-07  7:30     ` Frank Wunderlich
2025-07-07 10:06       ` AngeloGioacchino Del Regno
2025-07-07 10:43         ` Frank Wunderlich
2025-07-14  7:41           ` Krzysztof Kozlowski
2025-07-06 13:21 ` [PATCH v8 03/16] dt-bindings: net: mediatek,net: allow irq names Frank Wunderlich
2025-07-07 10:12   ` AngeloGioacchino Del Regno
2025-07-06 13:21 ` [PATCH v8 04/16] dt-bindings: net: mediatek,net: add sram property Frank Wunderlich
2025-07-07  6:33   ` Krzysztof Kozlowski
2025-07-07 10:12   ` AngeloGioacchino Del Regno
2025-07-06 13:22 ` [PATCH v8 05/16] dt-bindings: net: dsa: mediatek,mt7530: add dsa-port definition for mt7988 Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 06/16] dt-bindings: net: dsa: mediatek,mt7530: add internal mdio bus Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 07/16] dt-bindings: interconnect: add mt7988-cci compatible Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 08/16] arm64: dts: mediatek: mt7988: add cci node Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 09/16] arm64: dts: mediatek: mt7988: add basic ethernet-nodes Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 10/16] arm64: dts: mediatek: mt7988: add switch node Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 11/16] arm64: dts: mediatek: mt7988a-bpi-r4: add proc-supply for cci Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 12/16] arm64: dts: mediatek: mt7988a-bpi-r4: drop unused pins Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 13/16] arm64: dts: mediatek: mt7988a-bpi-r4: add gpio leds Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 14/16] arm64: dts: mediatek: mt7988a-bpi-r4: add aliases for ethernet Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 15/16] arm64: dts: mediatek: mt7988a-bpi-r4: add sfp cages and link to gmac Frank Wunderlich
2025-07-06 13:22 ` [PATCH v8 16/16] arm64: dts: mediatek: mt7988a-bpi-r4: configure switch phys and leds Frank Wunderlich
2025-07-07  9:22 ` (subset) [PATCH v8 00/16] further mt7988 devicetree work AngeloGioacchino Del Regno

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).