Skip to contentSkip to conversation

arm64: dts: mediatek: mt7988a-bpi-r4: allow hw variants of bpi-r4

PATCH In review Frank Wunderlich 4 participants 10 messages Apr 12, 2025 – Apr 15, 2025

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 arm64: dts: mediatek: mt7988a-bpi-r4: allow hw variants of bpi-r4

From: Frank Wunderlich <[email protected]>

Sinovoip has released other variants of Bananapi-R4 board. The known changes affecting only the LAN SFP+ slot which is replaced by a 2.5G phy with optional PoE.

Just move the common parts to a new dtsi and keep differences (only i2c for lan-sfp) in dts.

---
v2:
- added basic dts for 2g5 variant
- moved i2c used for sfp-lan to board dts

---
 arch/arm64/boot/dts/mediatek/Makefile         |   2 +
 .../mediatek/mt7988a-bananapi-bpi-r4-2g5.dts  |   5 +
 .../dts/mediatek/mt7988a-bananapi-bpi-r4.dts  | 404 +-----------------
 .../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 403 +++++++++++++++++
 4 files changed, 414 insertions(+), 400 deletions(-)
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
arch/arm64/boot/dts/mediatek/Makefile +2 -0
index 58484e830063..a1ebc9aa4ba6 100644
@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986b-rfb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-2g5.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-emmc.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
@@ -107,4 +108,5 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
 DTC_FLAGS_mt7986a-bananapi-bpi-r3 := -@
 DTC_FLAGS_mt7986a-bananapi-bpi-r3-mini := -@
 DTC_FLAGS_mt7988a-bananapi-bpi-r4 := -@
+DTC_FLAGS_mt7988a-bananapi-bpi-r4-2g5 := -@
 DTC_FLAGS_mt8395-radxa-nio-12l := -@
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts new file +5 -0
new file mode 100644
index 000000000000..76eca976b968
@@ -0,0 +1,5 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;
+
+#include "mt7988a-bananapi-bpi-r4.dtsi"
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts +4 -400

412 lines not on this page · raw message

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi new file +403 -0

403 lines not on this page · raw message

Signature · 1 line
2.43.0
#1 lore raw

Il 12/04/25 12:21, Frank Wunderlich ha scritto:

Quoted 47 lines

From: Frank Wunderlich <[email protected]>

Sinovoip has released other variants of Bananapi-R4 board. The known changes affecting only the LAN SFP+ slot which is replaced by a 2.5G phy with optional PoE.

Just move the common parts to a new dtsi and keep differences (only i2c for lan-sfp) in dts.

---
v2:
- added basic dts for 2g5 variant
- moved i2c used for sfp-lan to board dts

---
  arch/arm64/boot/dts/mediatek/Makefile         |   2 +
  .../mediatek/mt7988a-bananapi-bpi-r4-2g5.dts  |   5 +
  .../dts/mediatek/mt7988a-bananapi-bpi-r4.dts  | 404 +-----------------
  .../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 403 +++++++++++++++++
  4 files changed, 414 insertions(+), 400 deletions(-)

create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi

arch/arm64/boot/dts/mediatek/Makefile +2 -0
index 58484e830063..a1ebc9aa4ba6 100644
@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd.dtbo
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986b-rfb.dtb
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-2g5.dtb
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-emmc.dtbo
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
@@ -107,4 +108,5 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
  DTC_FLAGS_mt7986a-bananapi-bpi-r3 := -@
  DTC_FLAGS_mt7986a-bananapi-bpi-r3-mini := -@
  DTC_FLAGS_mt7988a-bananapi-bpi-r4 := -@
+DTC_FLAGS_mt7988a-bananapi-bpi-r4-2g5 := -@
  DTC_FLAGS_mt8395-radxa-nio-12l := -@
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts new file +0 -0
new file mode 100644
index 000000000000..76eca976b968

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts line 5

Quoted 5 lines
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts new file +5 -0
@@ -0,0 +1,5 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;
+
+#include "mt7988a-bananapi-bpi-r4.dtsi"

This should at least have some different compatible, if not probably also a different model string - as it's a different device.

	compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";
	model = "Banana Pi BPI-R4 (2.5GbE)";
	chassis-type = "embedded";

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts

Quoted 4 lines
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts +0 -0
index 6623112c24c7..431bf066fffb 100644

..snip..

a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi

Quoted 8 lines

new file mode 100644
index 000000000000..1ab09ed2f151

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi new file +3 -0
@@ -0,0 +1,403 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi line 13

Quoted 10 lines
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi new file +10 -0
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
+
+#include "mt7988a.dtsi"
+
+/ {
+	compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
+	model = "Banana Pi BPI-R4";
+	chassis-type = "embedded";

Please keep compatible/model/chassis-type in dts files.

Cheers,
Angelo

#2 lore raw

Am 14. April 2025 11:27:23 MESZ schrieb AngeloGioacchino Del Regno <[email protected]>:

Quoted 3 lines

Il 12/04/25 12:21, Frank Wunderlich ha scritto:

Quoted 2 lines

From: Frank Wunderlich <[email protected]>

snip

Quoted 22 lines

This should at least have some different compatible, if not probably also a different model string - as it's a different device.

	compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";
	model = "Banana Pi BPI-R4 (2.5GbE)";
	chassis-type = "embedded";

..snip..

a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi

Quoted 12 lines

new file mode 100644
index 000000000000..1ab09ed2f151

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi new file +7 -0
@@ -0,0 +1,403 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
+
Quoted 8 lines

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi line 13

Quoted 6 lines
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi new file +6 -0
+#include "mt7988a.dtsi"
+
+/ {
+	compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
+	model = "Banana Pi BPI-R4";
+	chassis-type = "embedded";

Please keep compatible/model/chassis-type in dts files.

Ok, should i add specific compatible to existing board (like 2sfp)? Just thinking how binding should look like.

Else is there an example for adding optional compatible without adding a complete block in binding?

Quoted 2 lines

Cheers,
Angelo

regards Frank

#3 lore raw

Il 14/04/25 12:19, Frank Wunderlich ha scritto:

Quoted 36 lines

Am 14. April 2025 11:27:23 MESZ schrieb AngeloGioacchino Del Regno <[email protected]>:

Quoted 3 lines

Il 12/04/25 12:21, Frank Wunderlich ha scritto:

Quoted 2 lines

From: Frank Wunderlich <[email protected]>

snip

Quoted 22 lines

This should at least have some different compatible, if not probably also a different model string - as it's a different device.

	compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";
	model = "Banana Pi BPI-R4 (2.5GbE)";
	chassis-type = "embedded";

..snip..

a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi

Quoted 12 lines

new file mode 100644
index 000000000000..1ab09ed2f151

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi new file +7 -0
@@ -0,0 +1,403 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
+
Quoted 8 lines

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi line 13

Quoted 6 lines
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi new file +6 -0
+#include "mt7988a.dtsi"
+
+/ {
+	compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
+	model = "Banana Pi BPI-R4";
+	chassis-type = "embedded";

Please keep compatible/model/chassis-type in dts files.

Quoted 2 lines

Ok, should i add specific compatible to existing board (like 2sfp)? Just thinking how binding should look like.

No, the existing board compatibles should not be touched.

I would imagine the bootloader reading the compatibles of all DTs and:

- On the 2G5 device, prefer a devicetree having that machine compatible;
- 2G5: If no 2G5 specific DT exists, fall back to using bananapi,bpi-r4
- On the 2sfp device, use DT that has bananapi,bpi-r4 but not the 2g5 compat.

So all of the DTs can be present, and the bootloader chooses the right one for whatever device it is running on.
If it's not possible for the bootloader to do so... well, that still doesn't change anything: you need two different DTS with a difference in machine compatible because those are two different machines :-)

Quoted 1 line

Else is there an example for adding optional compatible without adding a complete block in binding?

I'm not sure if you can nest oneOf statements in bindings... but that anyway doesn't really solve anything, so just add a full block....

Just to be sure, though:

krzk/Rob/Conor, am I right on this?

Thanks!>

Quoted 5 lines
Quoted 2 lines

Cheers,
Angelo

regards Frank

#4 lore raw
In reply to AngeloGioacchino Del Regno
Quoted 57 lines · AngeloGioacchino Del Regno

Il 12/04/25 12:21, Frank Wunderlich ha scritto:

Quoted 47 lines

From: Frank Wunderlich <[email protected]>

Sinovoip has released other variants of Bananapi-R4 board. The known changes affecting only the LAN SFP+ slot which is replaced by a 2.5G phy with optional PoE.

Just move the common parts to a new dtsi and keep differences (only i2c for lan-sfp) in dts.

---
v2:
- added basic dts for 2g5 variant
- moved i2c used for sfp-lan to board dts

---
  arch/arm64/boot/dts/mediatek/Makefile         |   2 +
  .../mediatek/mt7988a-bananapi-bpi-r4-2g5.dts  |   5 +
  .../dts/mediatek/mt7988a-bananapi-bpi-r4.dts  | 404 +-----------------
  .../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 403 +++++++++++++++++
  4 files changed, 414 insertions(+), 400 deletions(-)

create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi

arch/arm64/boot/dts/mediatek/Makefile +2 -0
index 58484e830063..a1ebc9aa4ba6 100644
@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd.dtbo
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986b-rfb.dtb
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-2g5.dtb
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-emmc.dtbo
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
  dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
@@ -107,4 +108,5 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
  DTC_FLAGS_mt7986a-bananapi-bpi-r3 := -@
  DTC_FLAGS_mt7986a-bananapi-bpi-r3-mini := -@
  DTC_FLAGS_mt7988a-bananapi-bpi-r4 := -@
+DTC_FLAGS_mt7988a-bananapi-bpi-r4-2g5 := -@
  DTC_FLAGS_mt8395-radxa-nio-12l := -@
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts new file +0 -0
new file mode 100644
index 000000000000..76eca976b968

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts line 5

Quoted 5 lines
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts new file +5 -0
@@ -0,0 +1,5 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;
+
+#include "mt7988a-bananapi-bpi-r4.dtsi"

This should at least have some different compatible, if not probably also a different model string - as it's a different device.

Quoted 1 line
	compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";

Imho it doesn't make sense to declare compatibility with the "bananapi,bpi-r4" as the "bananapi,bpi-r4-2g5" is NOT compatible with the "bananapi,bpi-r4". It's a different board and using firmware meant for the "bananapi,bpi-r4-2g5" on the "bananapi,bpi-r4" (or vice versa) will result in a non-working Ethernet port.

#5 lore raw

Il 14/04/25 14:32, Daniel Golle ha scritto:

Quoted 58 lines · AngeloGioacchino Del Regno
Quoted 57 lines

Il 12/04/25 12:21, Frank Wunderlich ha scritto:

Quoted 47 lines

From: Frank Wunderlich <[email protected]>

Sinovoip has released other variants of Bananapi-R4 board. The known changes affecting only the LAN SFP+ slot which is replaced by a 2.5G phy with optional PoE.

Just move the common parts to a new dtsi and keep differences (only i2c for lan-sfp) in dts.

---
v2:
- added basic dts for 2g5 variant
- moved i2c used for sfp-lan to board dts

---
   arch/arm64/boot/dts/mediatek/Makefile         |   2 +
   .../mediatek/mt7988a-bananapi-bpi-r4-2g5.dts  |   5 +
   .../dts/mediatek/mt7988a-bananapi-bpi-r4.dts  | 404 +-----------------
   .../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 403 +++++++++++++++++
   4 files changed, 414 insertions(+), 400 deletions(-)

create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi

arch/arm64/boot/dts/mediatek/Makefile +2 -0
index 58484e830063..a1ebc9aa4ba6 100644
@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-sd.dtbo
   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986b-rfb.dtb
   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-2g5.dtb
   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-emmc.dtbo
   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
   dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
@@ -107,4 +108,5 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
   DTC_FLAGS_mt7986a-bananapi-bpi-r3 := -@
   DTC_FLAGS_mt7986a-bananapi-bpi-r3-mini := -@
   DTC_FLAGS_mt7988a-bananapi-bpi-r4 := -@
+DTC_FLAGS_mt7988a-bananapi-bpi-r4-2g5 := -@
   DTC_FLAGS_mt8395-radxa-nio-12l := -@
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts new file +0 -0
new file mode 100644
index 000000000000..76eca976b968

arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts line 5

Quoted 5 lines
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts new file +5 -0
@@ -0,0 +1,5 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;
+
+#include "mt7988a-bananapi-bpi-r4.dtsi"

This should at least have some different compatible, if not probably also a different model string - as it's a different device.

Quoted 8 lines
Quoted 1 line
	compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";

Imho it doesn't make sense to declare compatibility with the "bananapi,bpi-r4" as the "bananapi,bpi-r4-2g5" is NOT compatible with the "bananapi,bpi-r4". It's a different board and using firmware meant for the "bananapi,bpi-r4-2g5" on the "bananapi,bpi-r4" (or vice versa) will result in a non-working Ethernet port.

Is this device a BananaPi R4 variant, or is it a completely different device?

If this is a completely different device, then it's not even a BananaPi R4, otherwise this is compatible with BananaPi R4, with a small variation :-)

Cheers,
Angelo

#6 lore raw

Am 15. April 2025 09:36:43 MESZ schrieb AngeloGioacchino Del Regno <[email protected]>:

Quoted 17 lines

Il 14/04/25 14:32, Daniel Golle ha scritto:

Quoted 16 lines · AngeloGioacchino Del Regno
Quoted 14 lines

Il 12/04/25 12:21, Frank Wunderlich ha scritto:

Quoted 8 lines

From: Frank Wunderlich <[email protected]>

Sinovoip has released other variants of Bananapi-R4 board. The known changes affecting only the LAN SFP+ slot which is replaced by a 2.5G phy with optional PoE.

Just move the common parts to a new dtsi and keep differences (only i2c for lan-sfp) in dts.

This should at least have some different compatible, if not probably also a different model string - as it's a different device.

	compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";
Quoted 8 lines
Quoted 6 lines

Imho it doesn't make sense to declare compatibility with the "bananapi,bpi-r4" as the "bananapi,bpi-r4-2g5" is NOT compatible with the "bananapi,bpi-r4". It's a different board and using firmware meant for the "bananapi,bpi-r4-2g5" on the "bananapi,bpi-r4" (or vice versa) will result in a non-working Ethernet port.

Is this device a BananaPi R4 variant, or is it a completely different device?

The only difference is that sfp-lan is replaced by RJ45 socket with mt7988 internal phy.

Quoted 2 lines

If this is a completely different device, then it's not even a BananaPi R4, otherwise this is compatible with BananaPi R4, with a small variation :-)

Sinovoip now announces a R4Pro with some more changes (e.g. an external 2.5g switch),but we have no detailed shematic yet. It looks they also plan a R4lite which is based on different SoC (afair mt7987),but this is for sure different device (and so not using this bpi-r4.dtsi).

But basicly all are named BPi-R4. I guess R4Pro will also get own dts as too much changed.

Quoted 2 lines

Cheers,
Angelo

regards Frank

#7 lore raw

Il 15/04/25 10:07, Frank Wunderlich ha scritto:

Quoted 25 lines

Am 15. April 2025 09:36:43 MESZ schrieb AngeloGioacchino Del Regno <[email protected]>:

Quoted 24 lines

Il 14/04/25 14:32, Daniel Golle ha scritto:

Quoted 22 lines · AngeloGioacchino Del Regno
Quoted 7 lines

Il 12/04/25 12:21, Frank Wunderlich ha scritto:

Quoted 6 lines

From: Frank Wunderlich <[email protected]>

Sinovoip has released other variants of Bananapi-R4 board. The known changes affecting only the LAN SFP+ slot which is replaced by a 2.5G phy with optional PoE.

Quoted 7 lines
Quoted 2 lines

Just move the common parts to a new dtsi and keep differences (only i2c for lan-sfp) in dts.

This should at least have some different compatible, if not probably also a different model string - as it's a different device.

	compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";

Imho it doesn't make sense to declare compatibility with the "bananapi,bpi-r4" as the "bananapi,bpi-r4-2g5" is NOT compatible with the "bananapi,bpi-r4". It's a different board and using firmware meant for the "bananapi,bpi-r4-2g5" on the "bananapi,bpi-r4" (or vice versa) will result in a non-working Ethernet port.

Quoted 4 lines
Quoted 1 line

Is this device a BananaPi R4 variant, or is it a completely different device?

The only difference is that sfp-lan is replaced by RJ45 socket with mt7988 internal phy.

Perfect, then:
- The only difference is one routing
- The base board is the same
- Same hw project
- The two machines are compatible with each other ...bar one difference

...then the compatibles shall be as I said before :-)

Quoted 4 lines
Quoted 2 lines

If this is a completely different device, then it's not even a BananaPi R4, otherwise this is compatible with BananaPi R4, with a small variation :-)

Sinovoip now announces a R4Pro with some more changes (e.g. an external 2.5g switch),but we have no detailed shematic yet. It looks they also plan a R4lite which is based on different SoC (afair mt7987),but this is for sure different device (and so not using this bpi-r4.dtsi).

In that case, R4Lite shall not be compatible with R4, as the name may be the same, but in practice it's a different machine.

Quoted 2 lines

But basicly all are named BPi-R4. I guess R4Pro will also get own dts as too much changed.

If R4pro is a redesign of the R4 board, that would not be compatible, as it would not be the same base design; otherwise, I'm sure you have well understood how it works for the compatibles, anyway :D

Cheers!

Quoted 6 lines
Quoted 3 lines

Cheers,
Angelo

regards Frank

#8 lore raw

Am 15. April 2025 11:56:37 MESZ schrieb AngeloGioacchino Del Regno <[email protected]>:

Quoted 49 lines

Il 15/04/25 10:07, Frank Wunderlich ha scritto:

Quoted 25 lines

Am 15. April 2025 09:36:43 MESZ schrieb AngeloGioacchino Del Regno <[email protected]>:

Quoted 24 lines

Il 14/04/25 14:32, Daniel Golle ha scritto:

Quoted 22 lines · AngeloGioacchino Del Regno
Quoted 7 lines

Il 12/04/25 12:21, Frank Wunderlich ha scritto:

Quoted 6 lines

From: Frank Wunderlich <[email protected]>

Sinovoip has released other variants of Bananapi-R4 board. The known changes affecting only the LAN SFP+ slot which is replaced by a 2.5G phy with optional PoE.

Quoted 7 lines
Quoted 2 lines

Just move the common parts to a new dtsi and keep differences (only i2c for lan-sfp) in dts.

This should at least have some different compatible, if not probably also a different model string - as it's a different device.

	compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";

Imho it doesn't make sense to declare compatibility with the "bananapi,bpi-r4" as the "bananapi,bpi-r4-2g5" is NOT compatible with the "bananapi,bpi-r4". It's a different board and using firmware meant for the "bananapi,bpi-r4-2g5" on the "bananapi,bpi-r4" (or vice versa) will result in a non-working Ethernet port.

Quoted 4 lines
Quoted 1 line

Is this device a BananaPi R4 variant, or is it a completely different device?

The only difference is that sfp-lan is replaced by RJ45 socket with mt7988 internal phy.

Perfect, then:
- The only difference is one routing
- The base board is the same
- Same hw project
- The two machines are compatible with each other ...bar one difference

...then the compatibles shall be as I said before :-)

Quoted 4 lines
Quoted 2 lines

If this is a completely different device, then it's not even a BananaPi R4, otherwise this is compatible with BananaPi R4, with a small variation :-)

Sinovoip now announces a R4Pro with some more changes (e.g. an external 2.5g switch),but we have no detailed shematic yet. It looks they also plan a R4lite which is based on different SoC (afair mt7987),but this is for sure different device (and so not using this bpi-r4.dtsi).

In that case, R4Lite shall not be compatible with R4, as the name may be the same, but in practice it's a different machine.

Quoted 1 line
Quoted 5 lines
Quoted 1 line

But basicly all are named BPi-R4. I guess R4Pro will also get own dts as too much changed.

If R4pro is a redesign of the R4 board, that would not be compatible, as it would not be the same base design; otherwise, I'm sure you have well understood how it works for the compatibles, anyway :D

Yes, should i use 3 const in the binding (as i do not expect another hw variant of current R4) or still enum for the first compatible?

Quoted 10 lines

Cheers!

Quoted 6 lines
Quoted 3 lines

Cheers,
Angelo

regards Frank

regards Frank

#9 lore raw

Il 15/04/25 12:30, Frank Wunderlich ha scritto:

Quoted 50 lines

Am 15. April 2025 11:56:37 MESZ schrieb AngeloGioacchino Del Regno <[email protected]>:

Quoted 49 lines

Il 15/04/25 10:07, Frank Wunderlich ha scritto:

Quoted 25 lines

Am 15. April 2025 09:36:43 MESZ schrieb AngeloGioacchino Del Regno <[email protected]>:

Quoted 24 lines

Il 14/04/25 14:32, Daniel Golle ha scritto:

Quoted 22 lines · AngeloGioacchino Del Regno
Quoted 7 lines

Il 12/04/25 12:21, Frank Wunderlich ha scritto:

Quoted 6 lines

From: Frank Wunderlich <[email protected]>

Sinovoip has released other variants of Bananapi-R4 board. The known changes affecting only the LAN SFP+ slot which is replaced by a 2.5G phy with optional PoE.

Quoted 7 lines
Quoted 2 lines

Just move the common parts to a new dtsi and keep differences (only i2c for lan-sfp) in dts.

This should at least have some different compatible, if not probably also a different model string - as it's a different device.

	compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";

Imho it doesn't make sense to declare compatibility with the "bananapi,bpi-r4" as the "bananapi,bpi-r4-2g5" is NOT compatible with the "bananapi,bpi-r4". It's a different board and using firmware meant for the "bananapi,bpi-r4-2g5" on the "bananapi,bpi-r4" (or vice versa) will result in a non-working Ethernet port.

Quoted 4 lines
Quoted 1 line

Is this device a BananaPi R4 variant, or is it a completely different device?

The only difference is that sfp-lan is replaced by RJ45 socket with mt7988 internal phy.

Perfect, then:
- The only difference is one routing
- The base board is the same
- Same hw project
- The two machines are compatible with each other ...bar one difference

...then the compatibles shall be as I said before :-)

Quoted 4 lines
Quoted 2 lines

If this is a completely different device, then it's not even a BananaPi R4, otherwise this is compatible with BananaPi R4, with a small variation :-)

Sinovoip now announces a R4Pro with some more changes (e.g. an external 2.5g switch),but we have no detailed shematic yet. It looks they also plan a R4lite which is based on different SoC (afair mt7987),but this is for sure different device (and so not using this bpi-r4.dtsi).

In that case, R4Lite shall not be compatible with R4, as the name may be the same, but in practice it's a different machine.

Quoted 1 line
Quoted 7 lines
Quoted 5 lines
Quoted 1 line

But basicly all are named BPi-R4. I guess R4Pro will also get own dts as too much changed.

If R4pro is a redesign of the R4 board, that would not be compatible, as it would not be the same base design; otherwise, I'm sure you have well understood how it works for the compatibles, anyway :D

Yes, should i use 3 const in the binding (as i do not expect another hw variant of current R4) or still enum for the first compatible?

Use 3 consts please :-)

Besides, if a variant comes up later, we can always change the first const to an enum, so no worries.

Quoted 14 lines
Quoted 11 lines

Cheers!

Quoted 6 lines
Quoted 3 lines

Cheers,
Angelo

regards Frank

regards Frank