linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/6] Add Bananapi R4 Pro support
@ 2025-10-27 13:28 Frank Wunderlich
  2025-10-27 13:28 ` [PATCH v1 1/6] dt-bindings: pinctrl: mt7988: allow gpio-hogs Frank Wunderlich
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Frank Wunderlich @ 2025-10-27 13:28 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

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

BananaPi R4 Pro is a MT7988A based board which exists in 2 different
hardware versions:

- 4E: 4 GB RAM and using internal 2.5G Phy for WAN-Combo
- 8X: 8 GB RAM and 2x Aeonsemi AS21010P 10G phys

common parts:

- MediaTek MT7988A Quad-core Arm Corex-A73,1.8GHz processor
- 8GB eMMC flash
- 256MB SPI-NAND Flash
- Micro SD card slot
- 1x 10G SFP+ WAN
- 1x 10G SFP+ LAN
- 4x 2.5G RJ45 LAN (MxL86252C)
- 1x 1G RJ45 LAN (MT7988 internal switch)
- 2x miniPCIe slots with PCIe3.0 2lane interface for Wi-Fi NIC
- 2x M.2 M-KEY slots with PCIe3.0 1lane interface for NVME SSD
- 3x M.2 B-KEY slots with USB3.2 for 5G Module (PCIe shared with key-m)
- 1x USB3.2 slot
- 1x USB2.0 slot
- 1x USB TypeC Debug Console
- 2x13 PIN Header for expanding application

official product information:
https://docs.banana-pi.org/en/BPI-R4_Pro/BananaPi_BPI-R4_Pro

The PCIe is per default in key-m state and can be changed to key-b with
the pcie-overlays.

Frank Wunderlich (6):
  dt-bindings: pinctrl: mt7988: allow gpio-hogs
  dt-bindings: arm: mediatek: add BPI-R4 Pro board
  arm64: dts: mediatek: mt7988a: Add label for ssusb0
  arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro
  arm64: dts: mediatek: mt7988a-bpi-r4-pro: add PCIe overlays
  arm64: dts: mediatek: mt7988a-bpi-r4pro: Add mmc overlays

 .../devicetree/bindings/arm/mediatek.yaml     |   6 +
 .../pinctrl/mediatek,mt7988-pinctrl.yaml      |   5 +
 arch/arm64/boot/dts/mediatek/Makefile         |   8 +
 .../mt7988a-bananapi-bpi-r4-pro-4e.dts        |  16 +
 .../mt7988a-bananapi-bpi-r4-pro-8x.dts        |  16 +
 .../mt7988a-bananapi-bpi-r4-pro-cn15.dtso     |  20 +
 .../mt7988a-bananapi-bpi-r4-pro-cn18.dtso     |  20 +
 .../mt7988a-bananapi-bpi-r4-pro-emmc.dtso     |  33 ++
 .../mt7988a-bananapi-bpi-r4-pro-sd.dtso       |  31 +
 .../mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi | 559 ++++++++++++++++++
 arch/arm64/boot/dts/mediatek/mt7988a.dtsi     |   2 +-
 11 files changed, 715 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn15.dtso
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn18.dtso
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-emmc.dtso
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-sd.dtso
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi

-- 
2.43.0


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

* [PATCH v1 1/6] dt-bindings: pinctrl: mt7988: allow gpio-hogs
  2025-10-27 13:28 [PATCH v1 0/6] Add Bananapi R4 Pro support Frank Wunderlich
@ 2025-10-27 13:28 ` Frank Wunderlich
  2025-10-27 18:57   ` Krzysztof Kozlowski
  2025-11-05 12:34   ` AngeloGioacchino Del Regno
  2025-10-27 13:28 ` [PATCH v1 2/6] dt-bindings: arm: mediatek: add BPI-R4 Pro board Frank Wunderlich
                   ` (5 subsequent siblings)
  6 siblings, 2 replies; 17+ messages in thread
From: Frank Wunderlich @ 2025-10-27 13:28 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

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

Allow gpio-hogs in pinctrl node for switching pcie on Bananapi R4 Pro.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 .../devicetree/bindings/pinctrl/mediatek,mt7988-pinctrl.yaml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt7988-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt7988-pinctrl.yaml
index 26dfe7e7735a..1f31b520cb43 100644
--- a/Documentation/devicetree/bindings/pinctrl/mediatek,mt7988-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt7988-pinctrl.yaml
@@ -61,6 +61,11 @@ required:
   - "#gpio-cells"
 
 patternProperties:
+  "-hog(-[0-9]+)?$":
+    type: object
+    required:
+      - gpio-hog
+
   '-pins$':
     type: object
     additionalProperties: false
-- 
2.43.0


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

* [PATCH v1 2/6] dt-bindings: arm: mediatek: add BPI-R4 Pro board
  2025-10-27 13:28 [PATCH v1 0/6] Add Bananapi R4 Pro support Frank Wunderlich
  2025-10-27 13:28 ` [PATCH v1 1/6] dt-bindings: pinctrl: mt7988: allow gpio-hogs Frank Wunderlich
@ 2025-10-27 13:28 ` Frank Wunderlich
  2025-10-27 18:57   ` Krzysztof Kozlowski
  2025-10-27 13:28 ` [PATCH v1 3/6] arm64: dts: mediatek: mt7988a: Add label for ssusb0 Frank Wunderlich
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Frank Wunderlich @ 2025-10-27 13:28 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

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

Add compatibles for Bananapi R4 Pro boards.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 Documentation/devicetree/bindings/arm/mediatek.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/mediatek.yaml b/Documentation/devicetree/bindings/arm/mediatek.yaml
index f04277873694..d09732ec8c89 100644
--- a/Documentation/devicetree/bindings/arm/mediatek.yaml
+++ b/Documentation/devicetree/bindings/arm/mediatek.yaml
@@ -113,6 +113,12 @@ properties:
           - const: bananapi,bpi-r4-2g5
           - const: bananapi,bpi-r4
           - const: mediatek,mt7988a
+      - items:
+          - enum:
+              - bananapi,bpi-r4-pro-4e
+              - bananapi,bpi-r4-pro-8x
+          - const: bananapi,bpi-r4-pro
+          - const: mediatek,mt7988a
       - items:
           - enum:
               - mediatek,mt8127-moose
-- 
2.43.0


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

* [PATCH v1 3/6] arm64: dts: mediatek: mt7988a: Add label for ssusb0
  2025-10-27 13:28 [PATCH v1 0/6] Add Bananapi R4 Pro support Frank Wunderlich
  2025-10-27 13:28 ` [PATCH v1 1/6] dt-bindings: pinctrl: mt7988: allow gpio-hogs Frank Wunderlich
  2025-10-27 13:28 ` [PATCH v1 2/6] dt-bindings: arm: mediatek: add BPI-R4 Pro board Frank Wunderlich
@ 2025-10-27 13:28 ` Frank Wunderlich
  2025-10-27 18:58   ` Krzysztof Kozlowski
  2025-10-27 13:28 ` [PATCH v1 4/6] arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro Frank Wunderlich
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Frank Wunderlich @ 2025-10-27 13:28 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

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

Add label for ssusb0 node which is used for BPI-R4-Pro.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
index 366203a72d6d..623fb450f898 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
@@ -418,7 +418,7 @@ lvts: lvts@1100a000 {
 			nvmem-cell-names = "lvts-calib-data-1";
 		};
 
-		usb@11190000 {
+		ssusb0: usb@11190000 {
 			compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
 			reg = <0 0x11190000 0 0x2e00>,
 			      <0 0x11193e00 0 0x0100>;
-- 
2.43.0


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

* [PATCH v1 4/6] arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro
  2025-10-27 13:28 [PATCH v1 0/6] Add Bananapi R4 Pro support Frank Wunderlich
                   ` (2 preceding siblings ...)
  2025-10-27 13:28 ` [PATCH v1 3/6] arm64: dts: mediatek: mt7988a: Add label for ssusb0 Frank Wunderlich
@ 2025-10-27 13:28 ` Frank Wunderlich
  2025-10-27 18:59   ` Krzysztof Kozlowski
  2025-11-05 12:55   ` AngeloGioacchino Del Regno
  2025-10-27 13:28 ` [PATCH v1 5/6] arm64: dts: mediatek: mt7988a-bpi-r4-pro: add PCIe overlays Frank Wunderlich
                   ` (2 subsequent siblings)
  6 siblings, 2 replies; 17+ messages in thread
From: Frank Wunderlich @ 2025-10-27 13:28 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

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

Add devicetree for Bpi-R4-Pro.

BananaPi R4 Pro is a MT7988A based board which exists in 2 different
hardware versions:

- 4E: 4 GB RAM and using internal 2.5G Phy for WAN-Combo
- 8X: 8 GB RAM and 2x Aeonsemi AS21010P 10G phys

common parts:

- MediaTek MT7988A Quad-core Arm Corex-A73,1.8GHz processor
- 8GB eMMC flash
- 256MB SPI-NAND Flash
- Micro SD card slot
- 1x 10G SFP+ WAN
- 1x 10G SFP+ LAN
- 4x 2.5G RJ45 LAN (MxL86252C)
- 1x 1G RJ45 LAN (MT7988 internal switch)
- 2x miniPCIe slots with PCIe3.0 2lane interface for Wi-Fi NIC
- 2x M.2 M-KEY slots with PCIe3.0 1lane interface for NVME SSD
- 3x M.2 B-KEY slots with USB3.2 for 5G Module (PCIe shared with key-m)
- 1x USB3.2 slot
- 1x USB2.0 slot
- 1x USB TypeC Debug Console
- 2x13 PIN Header for expanding application

https://docs.banana-pi.org/en/BPI-R4_Pro/BananaPi_BPI-R4_Pro

The PCIe is per default in key-m state and can be changed to key-b with
the pcie-overlays.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 arch/arm64/boot/dts/mediatek/Makefile         |   4 +
 .../mt7988a-bananapi-bpi-r4-pro-4e.dts        |  16 +
 .../mt7988a-bananapi-bpi-r4-pro-8x.dts        |  16 +
 .../mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi | 559 ++++++++++++++++++
 4 files changed, 595 insertions(+)
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi

diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
index a4df4c21399e..8640e5f32d4b 100644
--- a/arch/arm64/boot/dts/mediatek/Makefile
+++ b/arch/arm64/boot/dts/mediatek/Makefile
@@ -24,6 +24,8 @@ 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-pro-4e.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm.dtb
@@ -111,4 +113,6 @@ 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_mt7988a-bananapi-bpi-r4-pro-4e := -@
+DTC_FLAGS_mt7988a-bananapi-bpi-r4-pro-8x := -@
 DTC_FLAGS_mt8395-radxa-nio-12l := -@
diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
new file mode 100644
index 000000000000..c7ea6e88c4f4
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 MediaTek Inc.
+ * Author: Frank Wunderlich <frank-w@public-files.de>
+ */
+
+/dts-v1/;
+
+#include "mt7988a-bananapi-bpi-r4-pro.dtsi"
+
+/ {
+	model = "Bananapi BPI-R4";
+	compatible = "bananapi,bpi-r4-pro-4e",
+		     "bananapi,bpi-r4-pro",
+		     "mediatek,mt7988a";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
new file mode 100644
index 000000000000..c9a0e69e9dd5
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 MediaTek Inc.
+ * Author: Frank Wunderlich <frank-w@public-files.de>
+ */
+
+/dts-v1/;
+
+#include "mt7988a-bananapi-bpi-r4-pro.dtsi"
+
+/ {
+	model = "Bananapi BPI-R4";
+	compatible = "bananapi,bpi-r4-pro-8x",
+		     "bananapi,bpi-r4-pro",
+		     "mediatek,mt7988a";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi
new file mode 100644
index 000000000000..44406e23c042
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi
@@ -0,0 +1,559 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 MediaTek Inc.
+ * Author: Sam.Shih <sam.shih@mediatek.com>
+ * Author: Frank Wunderlich <frank-w@public-files.de>
+ */
+
+/dts-v1/;
+
+#include "mt7988a.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
+
+/*
+ * ----------------------------------- Bananapi Bpi R4 Pro PINs ---------------------------------
+ * |    | Function                               | Function                                |    |
+ * |----|----------------------------------------|-----------------------------------------|----|
+ * | 1  | 3V3                                    | 5V                                      | 2  |
+ * | 3  | GPIO18/I2C_1_SDA                       | 5V                                      | 4  |
+ * | 5  | GPIO17/I2C_1_SCL                       | GND                                     | 6  |
+ * | 7  | GPIO62/JTAG_JTRST_N/PWM6/I2P5G_LED1_P0 | GPIO59/JTAG_JTDO/UART2_TX/GBE_LED1_P1   | 8  |
+ * | 9  | GND                                    | GPIO58/JTAG_JTDI/UART2_RX/GBE_LED1_P0   | 10 |
+ * | 11 | GPIO81/UART1_TXD                       | GPIO51/PCM_CLK_I2S_BCLK                 | 12 |
+ * | 13 | GPIO80/UART1_RXD                       | GND                                     | 14 |
+ * | 15 | GPIO50/PCM_FS_I2S_LRCK                 | GPIO61/JTAG_JTCLK/UART2_RTS/GBE_LED1_P3 | 16 |
+ * | 17 | 3v3                                    | GPIO60/JTAG_JTMS/UART2_CTS/GBE_LED1_P2  | 18 |
+ * | 19 | GPIO30/SPI1_MOSI                       | GND                                     | 20 |
+ * | 21 | GPIO29/SPI1_MISO                       | GPIO53/PCM_DTX_I2S_DOUT                 | 22 |
+ * | 23 | GPIO31/SPI1_CLK                        | GPIO28/SPI1_CSB                         | 24 |
+ * | 25 | GND                                    | GPIO52/PCM_DRX_I2S_DIN                  | 26 |
+ * |----|----------------------------------------|-----------------------------------------|----|
+ */
+
+/ {
+	aliases {
+		ethernet0 = &gmac0;
+		i2c0 = &i2c0;
+		i2c1 = &i2c1;
+		i2c2 = &i2c2;
+		/* PCA9548 (0-0070) provides 4 i2c channels */
+		i2c3 = &imux0;
+		i2c4 = &imux1_sfp1;
+		i2c5 = &imux2_sfp2;
+		i2c6 = &imux3_wifi;
+	};
+
+	chosen {
+		stdout-path = &serial0;
+		bootargs = "console=ttyS0,115200n1 \
+			    earlycon=uart8250,mmio32,0x11000000";
+	};
+
+	fan: pwm-fan {
+		compatible = "pwm-fan";
+		/* cooling level (0, 1, 2, 3) : (0% duty, 30% duty, 50% duty, 100% duty) */
+		cooling-levels = <0 80 128 255>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pwm0_pins>;
+		pwms = <&pwm 0 50000>;
+		#cooling-cells = <2>;
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		button-reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&pio 13 GPIO_ACTIVE_LOW>;
+		};
+
+		button-wps {
+			label = "WPS";
+			linux,code = <KEY_WPS_BUTTON>;
+			gpios = <&pio 14 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		led_red: sys-led-red {
+			color = <LED_COLOR_ID_RED>;
+			gpios = <&pca9555 15 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+		};
+
+		led_blue: sys-led-blue {
+			color = <LED_COLOR_ID_BLUE>;
+			gpios = <&pca9555 14 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+		};
+	};
+
+	reg_1p8v: regulator-1p8v {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-1.8V";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	reg_3p3v: regulator-3p3v {
+		compatible = "regulator-fixed";
+		regulator-name = "fixed-3.3V";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	/* SFP1 cage (LAN) */
+	sfp1: sfp1 {
+		compatible = "sff,sfp";
+		i2c-bus = <&imux1_sfp1>;
+		los-gpios = <&pio 70 GPIO_ACTIVE_HIGH>;//change4
+		mod-def0-gpios = <&pio 69 GPIO_ACTIVE_LOW>; //change3
+		tx-disable-gpios = <&pio 21 GPIO_ACTIVE_HIGH>; //change1
+		maximum-power-milliwatt = <3000>;
+	};
+
+	/* SFP2 cage (WAN) */
+	sfp2: sfp2 {
+		compatible = "sff,sfp";
+		i2c-bus = <&imux2_sfp2>;
+		los-gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&pio 1 GPIO_ACTIVE_LOW>;
+		tx-disable-gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
+		maximum-power-milliwatt = <3000>;
+	};
+};
+
+&cci {
+	proc-supply = <&rt5190_buck3>;
+};
+
+&cpu0 {
+	proc-supply = <&rt5190_buck3>;
+};
+
+&cpu1 {
+	proc-supply = <&rt5190_buck3>;
+};
+
+&cpu2 {
+	proc-supply = <&rt5190_buck3>;
+};
+
+&cpu3 {
+	proc-supply = <&rt5190_buck3>;
+};
+
+&cpu_thermal {
+	trips {
+		cpu_trip_hot: hot {
+			temperature = <120000>;
+			hysteresis = <2000>;
+			type = "hot";
+		};
+
+		cpu_trip_active_high: active-high {
+			temperature = <115000>;
+			hysteresis = <2000>;
+			type = "active";
+		};
+
+		cpu_trip_active_med: active-med {
+			temperature = <85000>;
+			hysteresis = <2000>;
+			type = "active";
+		};
+
+		cpu_trip_active_low: active-low {
+			temperature = <40000>;
+			hysteresis = <2000>;
+			type = "active";
+		};
+	};
+
+	cooling-maps {
+		map-cpu-active-high {
+			/* active: set fan to cooling level 2 */
+			cooling-device = <&fan 3 3>;
+			trip = <&cpu_trip_active_high>;
+		};
+
+		map-cpu-active-med {
+			/* active: set fan to cooling level 1 */
+			cooling-device = <&fan 2 2>;
+			trip = <&cpu_trip_active_med>;
+		};
+
+		map-cpu-active-low {
+			/* active: set fan to cooling level 0 */
+			cooling-device = <&fan 1 1>;
+			trip = <&cpu_trip_active_low>;
+		};
+	};
+};
+
+&fan {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pwm0_pins>;
+	pwms = <&pwm 0 50000>;
+	status = "okay";
+};
+
+&eth {
+	pinctrl-0 = <&mdio0_pins>;
+	pinctrl-names = "default";
+	status = "okay";
+};
+
+&gmac0 {
+	status = "okay";
+};
+
+&gsw_phy0 {
+	pinctrl-names = "gbe-led";
+	pinctrl-0 = <&gbe0_led0_pins>;
+};
+
+&gsw_phy0_led0 {
+	status = "okay";
+	color = <LED_COLOR_ID_YELLOW>;
+};
+
+&gsw_port0 {
+	label = "mgmt";
+};
+
+/* R4Pro has only port 0 connected, so disable the others */
+&gsw_phy1 {
+	status = "disabled";
+};
+
+&gsw_port1 {
+	status = "disabled";
+};
+
+&gsw_phy2 {
+	status = "disabled";
+};
+
+&gsw_port2 {
+	status = "disabled";
+};
+
+&gsw_phy3 {
+	status = "disabled";
+};
+
+&gsw_port3 {
+	status = "disabled";
+};
+
+&i2c0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c0_pins>;
+	status = "okay";
+
+	rt5190a_64: rt5190a@64 {
+		compatible = "richtek,rt5190a";
+		reg = <0x64>;
+		vin2-supply = <&rt5190_buck1>;
+		vin3-supply = <&rt5190_buck1>;
+		vin4-supply = <&rt5190_buck1>;
+
+		regulators {
+			rt5190_buck1: buck1 {
+				regulator-name = "rt5190a-buck1";
+				regulator-min-microvolt = <5090000>;
+				regulator-max-microvolt = <5090000>;
+				regulator-allowed-modes =
+				<RT5190A_OPMODE_AUTO RT5190A_OPMODE_FPWM>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck2 {
+				regulator-name = "vcore";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			rt5190_buck3: buck3 {
+				regulator-name = "vproc";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <1400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck4 {
+				regulator-name = "rt5190a-buck4"; //1.8
+				regulator-min-microvolt = <850000>;
+				regulator-max-microvolt = <850000>;
+				regulator-allowed-modes =
+				<RT5190A_OPMODE_AUTO RT5190A_OPMODE_FPWM>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo {
+				regulator-name = "rt5190a-ldo";
+				regulator-min-microvolt = <1200000>; //1.8
+				regulator-max-microvolt = <1200000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
+};
+
+&i2c1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c1_pins>;
+	status = "okay";
+};
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_1_pins>;
+	status = "okay";
+
+	pca9545: i2c-mux@70 {
+		reg = <0x70>;
+		compatible = "nxp,pca9545";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		imux0: i2c@0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+
+			pca9555: i2c-gpio-expander@20 {
+				compatible = "nxp,pca9555";
+				gpio-controller;
+				#gpio-cells = <2>;
+				reg = <0x20>;
+			};
+
+			rtc@51 {
+				compatible = "nxp,pcf8563";
+				reg = <0x51>;
+			};
+
+			eeprom@57 {
+				compatible = "atmel,24c02";
+				reg = <0x57>;
+				address-width = <8>;
+				pagesize = <8>;
+				size = <256>;
+			};
+		};
+
+		imux1_sfp1: i2c@1 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <1>;
+		};
+
+		imux2_sfp2: i2c@2 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <2>;
+		};
+
+		imux3_wifi: i2c@3 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <3>;
+		};
+	};
+};
+
+&int_2p5g_phy {
+	status = "disabled";
+};
+
+/* mPCIe SIM2 (11300000) */
+&pcie0 {
+	status = "okay";
+};
+
+/* mPCIe (11310000 near leds) SIM3 */
+&pcie1 {
+	status = "okay";
+};
+
+/* M.2 (11280000) 1L0 key-m SSD1 CN13 / key-b SIM1 CN15 */
+&pcie2 {
+	status = "okay";
+};
+
+/* M.2 (11290000) 1L1 key-m SSD2 CN14 / key-b SIM2 CN18 */
+&pcie3 {
+	status = "okay";
+};
+
+&pio {
+	gbe0_led0_pins: gbe0-led0-pins {
+		mux {
+			function = "led";
+			groups = "gbe0_led0";
+		};
+	};
+
+	i2c0_pins: i2c0-g0-pins {
+		mux {
+			function = "i2c";
+			groups = "i2c0_1";
+		};
+	};
+
+	i2c1_pins: i2c1-g0-pins {
+		mux {
+			function = "i2c";
+			groups = "i2c1_0";
+		};
+	};
+
+	i2c2_1_pins: i2c2-g1-pins {
+		mux {
+			function = "i2c";
+			groups = "i2c2_1";
+		};
+	};
+
+	mdio0_pins: mdio0-pins {
+		mux {
+			function = "eth";
+			groups = "mdc_mdio0";
+		};
+
+		conf {
+			pins = "SMI_0_MDC", "SMI_0_MDIO";
+			drive-strength = <8>;
+		};
+	};
+
+	mmc0_pins_emmc_51: mmc0-emmc-51-pins {
+		mux {
+			function = "flash";
+			groups = "emmc_51";
+		};
+	};
+
+	mmc0_pins_sdcard: mmc0-sdcard-pins {
+		mux {
+			function = "flash";
+			groups = "sdcard";
+		};
+	};
+
+	// 1L0 0=key-b (CN15), 1=key-m (CN13)
+	pcie-2-hog {
+		gpio-hog;
+		gpios = <79 GPIO_ACTIVE_HIGH>;
+		output-high;
+	};
+	// 1L1 0=key-b (CN18), 1=key-m (CN14)
+	pcie-3-hog {
+		gpio-hog;
+		gpios = <63 GPIO_ACTIVE_HIGH>;
+		output-high;
+	};
+
+	pwm0_pins: pwm0-pins {
+		mux {
+			groups = "pwm0";
+			function = "pwm";
+		};
+	};
+
+	spi0_flash_pins: spi0-flash-pins {
+		mux {
+			function = "spi";
+			groups = "spi0", "spi0_wp_hold";
+		};
+	};
+};
+
+&pwm {
+	status = "okay";
+};
+
+&serial0 {
+	status = "okay";
+};
+
+&spi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi0_flash_pins>;
+	status = "okay";
+	spi_nand: nand@0 {
+		compatible = "spi-nand";
+		reg = <0>;
+		spi-max-frequency = <52000000>;
+		spi-tx-bus-width = <4>;
+		spi-rx-bus-width = <4>;
+	};
+};
+
+&spi_nand {
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition@0 {
+			label = "bl2";
+			reg = <0x0 0x200000>;
+		};
+
+		partition@200000 {
+			label = "ubi";
+			reg = <0x200000 0xfe00000>;
+			compatible = "linux,ubi";
+		};
+	};
+};
+
+/* back USB */
+&ssusb0 {
+	/* Use U2P only instead of both U3P/U2P due to U3P serdes shared with pcie2 */
+	phys = <&xphyu2port0 PHY_TYPE_USB2>;
+	mediatek,u3p-dis-msk = <1>;
+	/delete-property/ mediatek,p0_speed_fixup;
+	status = "okay";
+};
+
+/* front USB */
+&ssusb1 {
+	status = "okay";
+};
+
+&switch {
+	dsa,member = <1 0>;
+	status = "okay";
+};
+
+&tphy {
+	status = "okay";
+};
+
+&watchdog {
+	status = "okay";
+};
+
+&xsphy {
+	status = "okay";
+};
-- 
2.43.0


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

* [PATCH v1 5/6] arm64: dts: mediatek: mt7988a-bpi-r4-pro: add PCIe overlays
  2025-10-27 13:28 [PATCH v1 0/6] Add Bananapi R4 Pro support Frank Wunderlich
                   ` (3 preceding siblings ...)
  2025-10-27 13:28 ` [PATCH v1 4/6] arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro Frank Wunderlich
@ 2025-10-27 13:28 ` Frank Wunderlich
  2025-10-27 13:28 ` [PATCH v1 6/6] arm64: dts: mediatek: mt7988a-bpi-r4pro: Add mmc overlays Frank Wunderlich
  2025-11-05 12:56 ` (subset) [PATCH v1 0/6] Add Bananapi R4 Pro support AngeloGioacchino Del Regno
  6 siblings, 0 replies; 17+ messages in thread
From: Frank Wunderlich @ 2025-10-27 13:28 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

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

Add overlays to switch between key-m and key-e slots.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 arch/arm64/boot/dts/mediatek/Makefile         |  2 ++
 .../mt7988a-bananapi-bpi-r4-pro-cn15.dtso     | 20 +++++++++++++++++++
 .../mt7988a-bananapi-bpi-r4-pro-cn18.dtso     | 20 +++++++++++++++++++
 3 files changed, 42 insertions(+)
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn15.dtso
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn18.dtso

diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
index 8640e5f32d4b..8e99f6e33b25 100644
--- a/arch/arm64/boot/dts/mediatek/Makefile
+++ b/arch/arm64/boot/dts/mediatek/Makefile
@@ -26,6 +26,8 @@ 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-pro-4e.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn15.dtbo
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn18.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm.dtb
diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn15.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn15.dtso
new file mode 100644
index 000000000000..9750916042de
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn15.dtso
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 MediaTek Inc.
+ * Author: Frank Wunderlich <frank-w@public-files.de>
+ */
+
+/* This enables key-b slot CN15 on pcie2(11280000 1L0) on BPI-R4-Pro */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	compatible = "bananapi,bpi-r4-pro", "mediatek,mt7988a";
+};
+
+&{/soc/pinctrl@1001f000/pcie-2-hog} {
+	output-low;
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn18.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn18.dtso
new file mode 100644
index 000000000000..9830fb0fd97a
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn18.dtso
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 MediaTek Inc.
+ * Author: Frank Wunderlich <frank-w@public-files.de>
+ */
+
+/* This enables key-b slot CN18 on pcie3(11290000 1L1) on BPI-R4-Pro */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	compatible = "bananapi,bpi-r4-pro", "mediatek,mt7988a";
+};
+
+&{/soc/pinctrl@1001f000/pcie-3-hog} {
+	output-low;
+};
-- 
2.43.0


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

* [PATCH v1 6/6] arm64: dts: mediatek: mt7988a-bpi-r4pro: Add mmc overlays
  2025-10-27 13:28 [PATCH v1 0/6] Add Bananapi R4 Pro support Frank Wunderlich
                   ` (4 preceding siblings ...)
  2025-10-27 13:28 ` [PATCH v1 5/6] arm64: dts: mediatek: mt7988a-bpi-r4-pro: add PCIe overlays Frank Wunderlich
@ 2025-10-27 13:28 ` Frank Wunderlich
  2025-11-05 12:56 ` (subset) [PATCH v1 0/6] Add Bananapi R4 Pro support AngeloGioacchino Del Regno
  6 siblings, 0 replies; 17+ messages in thread
From: Frank Wunderlich @ 2025-10-27 13:28 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

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

Add MMC overlays for BPI-R4 Pro.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 arch/arm64/boot/dts/mediatek/Makefile         |  2 ++
 .../mt7988a-bananapi-bpi-r4-pro-emmc.dtso     | 33 +++++++++++++++++++
 .../mt7988a-bananapi-bpi-r4-pro-sd.dtso       | 31 +++++++++++++++++
 3 files changed, 66 insertions(+)
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-emmc.dtso
 create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-sd.dtso

diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
index 8e99f6e33b25..776b9274e8fa 100644
--- a/arch/arm64/boot/dts/mediatek/Makefile
+++ b/arch/arm64/boot/dts/mediatek/Makefile
@@ -28,6 +28,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn15.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn18.dtbo
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-emmc.dtbo
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-sd.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm.dtb
diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-emmc.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-emmc.dtso
new file mode 100644
index 000000000000..5ed2f0a6bd66
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-emmc.dtso
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ * Author: Frank Wunderlich <frank-w@public-files.de>
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "bananapi,bpi-r4-pro", "mediatek,mt7988a";
+};
+
+&{/soc/mmc@11230000} {
+	pinctrl-names = "default", "state_uhs";
+	pinctrl-0 = <&mmc0_pins_emmc_51>;
+	pinctrl-1 = <&mmc0_pins_emmc_51>;
+	bus-width = <8>;
+	max-frequency = <200000000>;
+	cap-mmc-highspeed;
+	mmc-hs200-1_8v;
+	mmc-hs400-1_8v;
+	hs400-ds-delay = <0x12814>;
+	vqmmc-supply = <&reg_1p8v>;
+	vmmc-supply = <&reg_3p3v>;
+	non-removable;
+	no-sd;
+	no-sdio;
+	#address-cells = <1>;
+	#size-cells = <0>;
+	status = "okay";
+};
+
diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-sd.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-sd.dtso
new file mode 100644
index 000000000000..1ec1a9fbd8ba
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-sd.dtso
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2023 MediaTek Inc.
+ * Author: Frank Wunderlich <frank-w@public-files.de>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	compatible = "bananapi,bpi-r4-pro", "mediatek,mt7988a";
+};
+
+&{/soc/mmc@11230000} {
+	pinctrl-names = "default", "state_uhs";
+	pinctrl-0 = <&mmc0_pins_sdcard>;
+	pinctrl-1 = <&mmc0_pins_sdcard>;
+	cd-gpios = <&pio 12 GPIO_ACTIVE_LOW>;
+	bus-width = <4>;
+	max-frequency = <48000000>;
+	cap-sd-highspeed;
+	vmmc-supply = <&reg_3p3v>;
+	vqmmc-supply = <&reg_3p3v>;
+	no-mmc;
+	#address-cells = <1>;
+	#size-cells = <0>;
+	status = "okay";
+};
+
-- 
2.43.0


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

* Re: [PATCH v1 1/6] dt-bindings: pinctrl: mt7988: allow gpio-hogs
  2025-10-27 13:28 ` [PATCH v1 1/6] dt-bindings: pinctrl: mt7988: allow gpio-hogs Frank Wunderlich
@ 2025-10-27 18:57   ` Krzysztof Kozlowski
  2025-11-05 12:34   ` AngeloGioacchino Del Regno
  1 sibling, 0 replies; 17+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-27 18:57 UTC (permalink / raw)
  To: Frank Wunderlich, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Linus Walleij, Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

On 27/10/2025 14:28, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> Allow gpio-hogs in pinctrl node for switching pcie on Bananapi R4 Pro.
> 
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> ---
>  .../devicetree/bindings/pinctrl/mediatek,mt7988-pinctrl.yaml | 5 +++++
>  1 file changed, 5 insertions(+)
> 



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

Best regards,
Krzysztof

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

* Re: [PATCH v1 2/6] dt-bindings: arm: mediatek: add BPI-R4 Pro board
  2025-10-27 13:28 ` [PATCH v1 2/6] dt-bindings: arm: mediatek: add BPI-R4 Pro board Frank Wunderlich
@ 2025-10-27 18:57   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 17+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-27 18:57 UTC (permalink / raw)
  To: Frank Wunderlich, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Linus Walleij, Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

On 27/10/2025 14:28, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> Add compatibles for Bananapi R4 Pro boards.
> 
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> ---



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

Best regards,
Krzysztof

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

* Re: [PATCH v1 3/6] arm64: dts: mediatek: mt7988a: Add label for ssusb0
  2025-10-27 13:28 ` [PATCH v1 3/6] arm64: dts: mediatek: mt7988a: Add label for ssusb0 Frank Wunderlich
@ 2025-10-27 18:58   ` Krzysztof Kozlowski
  2025-10-27 19:04     ` Frank Wunderlich
  0 siblings, 1 reply; 17+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-27 18:58 UTC (permalink / raw)
  To: Frank Wunderlich, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Linus Walleij, Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

On 27/10/2025 14:28, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> Add label for ssusb0 node which is used for BPI-R4-Pro.

This makes no sense on its own. We do not add labels because they have 0
impact.

Please drop or squash.

Best regards,
Krzysztof

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

* Re: [PATCH v1 4/6] arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro
  2025-10-27 13:28 ` [PATCH v1 4/6] arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro Frank Wunderlich
@ 2025-10-27 18:59   ` Krzysztof Kozlowski
  2025-11-05 12:55   ` AngeloGioacchino Del Regno
  1 sibling, 0 replies; 17+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-27 18:59 UTC (permalink / raw)
  To: Frank Wunderlich, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Linus Walleij, Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

On 27/10/2025 14:28, Frank Wunderlich wrote:
> +
> +/ {
> +	aliases {
> +		ethernet0 = &gmac0;
> +		i2c0 = &i2c0;
> +		i2c1 = &i2c1;
> +		i2c2 = &i2c2;
> +		/* PCA9548 (0-0070) provides 4 i2c channels */
> +		i2c3 = &imux0;
> +		i2c4 = &imux1_sfp1;
> +		i2c5 = &imux2_sfp2;
> +		i2c6 = &imux3_wifi;
> +	};
> +
> +	chosen {
> +		stdout-path = &serial0;
> +		bootargs = "console=ttyS0,115200n1 \

Drop, stdout-path is for that.

> +			    earlycon=uart8250,mmio32,0x11000000";

earlycon is debugging, not for mainline usage, so also drop.

> +	};
> +

Best regards,
Krzysztof

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

* Re: [PATCH v1 3/6] arm64: dts: mediatek: mt7988a: Add label for ssusb0
  2025-10-27 18:58   ` Krzysztof Kozlowski
@ 2025-10-27 19:04     ` Frank Wunderlich
  2025-10-28  8:45       ` AngeloGioacchino Del Regno
  0 siblings, 1 reply; 17+ messages in thread
From: Frank Wunderlich @ 2025-10-27 19:04 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Frank Wunderlich, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Sean Wang, Daniel Golle, devicetree, linux-kernel, linux-gpio,
	linux-arm-kernel, linux-mediatek

Am 27. Oktober 2025 19:58:23 MEZ schrieb Krzysztof Kozlowski <krzk@kernel.org>:
>On 27/10/2025 14:28, Frank Wunderlich wrote:
>> From: Frank Wunderlich <frank-w@public-files.de>
>> 
>> Add label for ssusb0 node which is used for BPI-R4-Pro.
>
>This makes no sense on its own. We do not add labels because they have 0
>impact.
>
>Please drop or squash.

Thank you for the review.

I reference this label in part 4 and tried to separate
changes in soc dtsi and board layer.
But of course i can squash this to part 4.

>Best regards,
>Krzysztof


regards Frank

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

* Re: [PATCH v1 3/6] arm64: dts: mediatek: mt7988a: Add label for ssusb0
  2025-10-27 19:04     ` Frank Wunderlich
@ 2025-10-28  8:45       ` AngeloGioacchino Del Regno
  0 siblings, 0 replies; 17+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-10-28  8:45 UTC (permalink / raw)
  To: frank-w, Krzysztof Kozlowski, Frank Wunderlich, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger
  Cc: Sean Wang, Daniel Golle, devicetree, linux-kernel, linux-gpio,
	linux-arm-kernel, linux-mediatek

Il 27/10/25 20:04, Frank Wunderlich ha scritto:
> Am 27. Oktober 2025 19:58:23 MEZ schrieb Krzysztof Kozlowski <krzk@kernel.org>:
>> On 27/10/2025 14:28, Frank Wunderlich wrote:
>>> From: Frank Wunderlich <frank-w@public-files.de>
>>>
>>> Add label for ssusb0 node which is used for BPI-R4-Pro.
>>
>> This makes no sense on its own. We do not add labels because they have 0
>> impact.
>>
>> Please drop or squash.
> 
> Thank you for the review.
> 
> I reference this label in part 4 and tried to separate
> changes in soc dtsi and board layer.
> But of course i can squash this to part 4.
> 
>> Best regards,
>> Krzysztof
> 
> 
> regards Frank

Yes, please squash this to the patch where you actually use the label.

Cheers,
Angelo

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

* Re: [PATCH v1 1/6] dt-bindings: pinctrl: mt7988: allow gpio-hogs
  2025-10-27 13:28 ` [PATCH v1 1/6] dt-bindings: pinctrl: mt7988: allow gpio-hogs Frank Wunderlich
  2025-10-27 18:57   ` Krzysztof Kozlowski
@ 2025-11-05 12:34   ` AngeloGioacchino Del Regno
  1 sibling, 0 replies; 17+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-11-05 12:34 UTC (permalink / raw)
  To: Frank Wunderlich, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Linus Walleij, Matthias Brugger
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

Il 27/10/25 14:28, Frank Wunderlich ha scritto:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> Allow gpio-hogs in pinctrl node for switching pcie on Bananapi R4 Pro.
> 
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>

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



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

* Re: [PATCH v1 4/6] arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro
  2025-10-27 13:28 ` [PATCH v1 4/6] arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro Frank Wunderlich
  2025-10-27 18:59   ` Krzysztof Kozlowski
@ 2025-11-05 12:55   ` AngeloGioacchino Del Regno
  2025-11-05 13:31     ` Frank Wunderlich
  1 sibling, 1 reply; 17+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-11-05 12:55 UTC (permalink / raw)
  To: Frank Wunderlich, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Linus Walleij, Matthias Brugger
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

Il 27/10/25 14:28, Frank Wunderlich ha scritto:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> Add devicetree for Bpi-R4-Pro.

Thanks for this!

Overall, this looks good - there are just a few small things to fix, but hey,
I bet you're getting this upstream as early as v2 :-D

> 
> BananaPi R4 Pro is a MT7988A based board which exists in 2 different
> hardware versions:
> 
> - 4E: 4 GB RAM and using internal 2.5G Phy for WAN-Combo
> - 8X: 8 GB RAM and 2x Aeonsemi AS21010P 10G phys
> 
> common parts:
> 
> - MediaTek MT7988A Quad-core Arm Corex-A73,1.8GHz processor
> - 8GB eMMC flash
> - 256MB SPI-NAND Flash
> - Micro SD card slot
> - 1x 10G SFP+ WAN
> - 1x 10G SFP+ LAN
> - 4x 2.5G RJ45 LAN (MxL86252C)
> - 1x 1G RJ45 LAN (MT7988 internal switch)
> - 2x miniPCIe slots with PCIe3.0 2lane interface for Wi-Fi NIC
> - 2x M.2 M-KEY slots with PCIe3.0 1lane interface for NVME SSD
> - 3x M.2 B-KEY slots with USB3.2 for 5G Module (PCIe shared with key-m)
> - 1x USB3.2 slot
> - 1x USB2.0 slot
> - 1x USB TypeC Debug Console
> - 2x13 PIN Header for expanding application
> 
> https://docs.banana-pi.org/en/BPI-R4_Pro/BananaPi_BPI-R4_Pro
> 
> The PCIe is per default in key-m state and can be changed to key-b with
> the pcie-overlays.
> 
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> ---
>   arch/arm64/boot/dts/mediatek/Makefile         |   4 +
>   .../mt7988a-bananapi-bpi-r4-pro-4e.dts        |  16 +
>   .../mt7988a-bananapi-bpi-r4-pro-8x.dts        |  16 +
>   .../mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi | 559 ++++++++++++++++++
>   4 files changed, 595 insertions(+)
>   create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
>   create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
>   create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi
> 
> diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
> index a4df4c21399e..8640e5f32d4b 100644
> --- a/arch/arm64/boot/dts/mediatek/Makefile
> +++ b/arch/arm64/boot/dts/mediatek/Makefile
> @@ -24,6 +24,8 @@ 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-pro-4e.dtb
> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x.dtb
>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm.dtb
> @@ -111,4 +113,6 @@ 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_mt7988a-bananapi-bpi-r4-pro-4e := -@
> +DTC_FLAGS_mt7988a-bananapi-bpi-r4-pro-8x := -@
>   DTC_FLAGS_mt8395-radxa-nio-12l := -@
> diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
> new file mode 100644
> index 000000000000..c7ea6e88c4f4
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
> @@ -0,0 +1,16 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (C) 2025 MediaTek Inc.
> + * Author: Frank Wunderlich <frank-w@public-files.de>
> + */
> +
> +/dts-v1/;
> +
> +#include "mt7988a-bananapi-bpi-r4-pro.dtsi"
> +
> +/ {
> +	model = "Bananapi BPI-R4";
> +	compatible = "bananapi,bpi-r4-pro-4e",
> +		     "bananapi,bpi-r4-pro",
> +		     "mediatek,mt7988a";
> +};
> diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
> new file mode 100644
> index 000000000000..c9a0e69e9dd5
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
> @@ -0,0 +1,16 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (C) 2025 MediaTek Inc.
> + * Author: Frank Wunderlich <frank-w@public-files.de>
> + */
> +
> +/dts-v1/;
> +
> +#include "mt7988a-bananapi-bpi-r4-pro.dtsi"
> +
> +/ {
> +	model = "Bananapi BPI-R4";
> +	compatible = "bananapi,bpi-r4-pro-8x",
> +		     "bananapi,bpi-r4-pro",
> +		     "mediatek,mt7988a";
> +};
> diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi
> new file mode 100644
> index 000000000000..44406e23c042
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi
> @@ -0,0 +1,559 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (C) 2025 MediaTek Inc.
> + * Author: Sam.Shih <sam.shih@mediatek.com>
> + * Author: Frank Wunderlich <frank-w@public-files.de>
> + */
> +
> +/dts-v1/;
> +
> +#include "mt7988a.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
> +
> +/*
> + * ----------------------------------- Bananapi Bpi R4 Pro PINs ---------------------------------
> + * |    | Function                               | Function                                |    |
> + * |----|----------------------------------------|-----------------------------------------|----|
> + * | 1  | 3V3                                    | 5V                                      | 2  |
> + * | 3  | GPIO18/I2C_1_SDA                       | 5V                                      | 4  |
> + * | 5  | GPIO17/I2C_1_SCL                       | GND                                     | 6  |
> + * | 7  | GPIO62/JTAG_JTRST_N/PWM6/I2P5G_LED1_P0 | GPIO59/JTAG_JTDO/UART2_TX/GBE_LED1_P1   | 8  |
> + * | 9  | GND                                    | GPIO58/JTAG_JTDI/UART2_RX/GBE_LED1_P0   | 10 |
> + * | 11 | GPIO81/UART1_TXD                       | GPIO51/PCM_CLK_I2S_BCLK                 | 12 |
> + * | 13 | GPIO80/UART1_RXD                       | GND                                     | 14 |
> + * | 15 | GPIO50/PCM_FS_I2S_LRCK                 | GPIO61/JTAG_JTCLK/UART2_RTS/GBE_LED1_P3 | 16 |
> + * | 17 | 3v3                                    | GPIO60/JTAG_JTMS/UART2_CTS/GBE_LED1_P2  | 18 |
> + * | 19 | GPIO30/SPI1_MOSI                       | GND                                     | 20 |
> + * | 21 | GPIO29/SPI1_MISO                       | GPIO53/PCM_DTX_I2S_DOUT                 | 22 |
> + * | 23 | GPIO31/SPI1_CLK                        | GPIO28/SPI1_CSB                         | 24 |
> + * | 25 | GND                                    | GPIO52/PCM_DRX_I2S_DIN                  | 26 |
> + * |----|----------------------------------------|-----------------------------------------|----|
> + */

Nice! Is this a "raspberry pi header" thingy?

Let's say that the header is called "CON89" on the schematics (if unsure, you
should find that name by looking at the PCB), so a better title would be:

* ------------------------------------- CON89 Pi header pins 
-----------------------------------

Also this relates to PIO, right? You could move that as a pio node comment,
either before or inside of your PIO overrides.
After all, this comment is mapping "header pin number" to "PIO pin number" ;-)

> +
> +/ {
> +	aliases {
> +		ethernet0 = &gmac0;
> +		i2c0 = &i2c0;
> +		i2c1 = &i2c1;
> +		i2c2 = &i2c2;
> +		/* PCA9548 (0-0070) provides 4 i2c channels */
> +		i2c3 = &imux0;
> +		i2c4 = &imux1_sfp1;
> +		i2c5 = &imux2_sfp2;
> +		i2c6 = &imux3_wifi;
> +	};
> +
> +	chosen {
> +		stdout-path = &serial0;
> +		bootargs = "console=ttyS0,115200n1 \
> +			    earlycon=uart8250,mmio32,0x11000000";

No, don't use bootargs - besides, earlycon is supposed to be for development
purposes only, and it *has to* be unnecessary after development, on upstreamed
devicetrees.
> +	};
> +
> +	fan: pwm-fan {
> +		compatible = "pwm-fan";
> +		/* cooling level (0, 1, 2, 3) : (0% duty, 30% duty, 50% duty, 100% duty) */
> +		cooling-levels = <0 80 128 255>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pwm0_pins>;
> +		pwms = <&pwm 0 50000>;
> +		#cooling-cells = <2>;
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +
> +		button-reset {
> +			label = "reset";
> +			linux,code = <KEY_RESTART>;
> +			gpios = <&pio 13 GPIO_ACTIVE_LOW>;

Please treat the linux,code property as a vendor property. Means...

label =
gpios =
linux,code =

> +		};
> +
> +		button-wps {
> +			label = "WPS";
> +			linux,code = <KEY_WPS_BUTTON>;
> +			gpios = <&pio 14 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +
> +	gpio-leds {
> +		compatible = "gpio-leds";
> +
> +		led_red: sys-led-red {
> +			color = <LED_COLOR_ID_RED>;
> +			gpios = <&pca9555 15 GPIO_ACTIVE_HIGH>;
> +			default-state = "on";
> +		};
> +
> +		led_blue: sys-led-blue {
> +			color = <LED_COLOR_ID_BLUE>;
> +			gpios = <&pca9555 14 GPIO_ACTIVE_HIGH>;
> +			default-state = "on";
> +		};
> +	};
> +
> +	reg_1p8v: regulator-1p8v {
> +		compatible = "regulator-fixed";
> +		regulator-name = "fixed-1.8V";

Have you got the board schematics?

If so, can you please change the regulator-name to the one from the schematics?

> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-boot-on;
> +		regulator-always-on;
> +	};
> +
> +	reg_3p3v: regulator-3p3v {
> +		compatible = "regulator-fixed";
> +		regulator-name = "fixed-3.3V";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-boot-on;
> +		regulator-always-on;
> +	};
> +
> +	/* SFP1 cage (LAN) */
> +	sfp1: sfp1 {
> +		compatible = "sff,sfp";
> +		i2c-bus = <&imux1_sfp1>;
> +		los-gpios = <&pio 70 GPIO_ACTIVE_HIGH>;//change4
> +		mod-def0-gpios = <&pio 69 GPIO_ACTIVE_LOW>; //change3
> +		tx-disable-gpios = <&pio 21 GPIO_ACTIVE_HIGH>; //change1

What does "change4", "change3", "change1" even mean?

Please remove.

> +		maximum-power-milliwatt = <3000>;
> +	};
> +
> +	/* SFP2 cage (WAN) */
> +	sfp2: sfp2 {
> +		compatible = "sff,sfp";
> +		i2c-bus = <&imux2_sfp2>;
> +		los-gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
> +		mod-def0-gpios = <&pio 1 GPIO_ACTIVE_LOW>;
> +		tx-disable-gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
> +		maximum-power-milliwatt = <3000>;
> +	};
> +};
> +

..snip..

> +
> +&gmac0 {
> +	status = "okay";
> +};
> +
> +&gsw_phy0 {
> +	pinctrl-names = "gbe-led";
> +	pinctrl-0 = <&gbe0_led0_pins>;
> +};
> +
> +&gsw_phy0_led0 {
> +	status = "okay";
> +	color = <LED_COLOR_ID_YELLOW>;

color first, status last

> +};
> +

..snip..

> +
> +&i2c1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c1_pins>;
> +	status = "okay";
> +};
> +
> +&i2c2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c2_1_pins>;
> +	status = "okay";
> +
> +	pca9545: i2c-mux@70 {
> +		reg = <0x70>;
> +		compatible = "nxp,pca9545";

compatible goes first. Check dts-coding-style.rst.

> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		imux0: i2c@0 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <0>;

reg goes first.

> +
> +			pca9555: i2c-gpio-expander@20 {
> +				compatible = "nxp,pca9555";

reg after compatible please

> +				gpio-controller;
> +				#gpio-cells = <2>;
> +				reg = <0x20>;
> +			};
> +
> +			rtc@51 {
> +				compatible = "nxp,pcf8563";
> +				reg = <0x51>;
> +			};
> +
> +			eeprom@57 {
> +				compatible = "atmel,24c02";
> +				reg = <0x57>;
> +				address-width = <8>;
> +				pagesize = <8>;
> +				size = <256>;
> +			};
> +		};
> +
> +		imux1_sfp1: i2c@1 {

reg first, cells later;

reg = <1>;
#address-cells = <1>;
#size-cells = <0>;

here and everywhere else.

> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <1>;
> +		};
> +
> +		imux2_sfp2: i2c@2 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <2>;
> +		};
> +
> +		imux3_wifi: i2c@3 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <3>;
> +		};
> +	};
> +};
> +
> +&int_2p5g_phy {
> +	status = "disabled";
> +};
> +
> +/* mPCIe SIM2 (11300000) */
> +&pcie0 {
> +	status = "okay";
> +};
> +
> +/* mPCIe (11310000 near leds) SIM3 */
> +&pcie1 {
> +	status = "okay";
> +};
> +
> +/* M.2 (11280000) 1L0 key-m SSD1 CN13 / key-b SIM1 CN15 */
> +&pcie2 {
> +	status = "okay";
> +};
> +
> +/* M.2 (11290000) 1L1 key-m SSD2 CN14 / key-b SIM2 CN18 */
> +&pcie3 {
> +	status = "okay";
> +};
> +
> +&pio {

--snip..

> +
> +	mmc0_pins_sdcard: mmc0-sdcard-pins {
> +		mux {
> +			function = "flash";
> +			groups = "sdcard";
> +		};
> +	};
> +
> +	// 1L0 0=key-b (CN15), 1=key-m (CN13)

Please fix the comments
/* 1L0 0=key-b (CN15), 1=key-m (CN13) */

> +	pcie-2-hog {
> +		gpio-hog;
> +		gpios = <79 GPIO_ACTIVE_HIGH>;
> +		output-high;
> +	};

Extra space here please, and

> +	// 1L1 0=key-b (CN18), 1=key-m (CN14)

/* 1L1 0=key-b (CN18), 1=key-m (CN14) */

> +	pcie-3-hog {
> +		gpio-hog;
> +		gpios = <63 GPIO_ACTIVE_HIGH>;
> +		output-high;
> +	};
> +
> +	pwm0_pins: pwm0-pins {
> +		mux {
> +			groups = "pwm0";
> +			function = "pwm";
> +		};
> +	};
> +
> +	spi0_flash_pins: spi0-flash-pins {
> +		mux {
> +			function = "spi";
> +			groups = "spi0", "spi0_wp_hold";
> +		};
> +	};
> +};
> +

..snip..

> +
> +/* back USB */
> +&ssusb0 {
> +	/* Use U2P only instead of both U3P/U2P due to U3P serdes shared with pcie2 */
> +	phys = <&xphyu2port0 PHY_TYPE_USB2>;
> +	mediatek,u3p-dis-msk = <1>;
> +	/delete-property/ mediatek,p0_speed_fixup;

Where's that property defined, even?
Am I blind, or it's nowhere to be found (in any dtsi)?

(no, seriously, I'm not sarcastic :P)

> +	status = "okay";
> +};
> +

Cheers,
Angelo

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

* Re: (subset) [PATCH v1 0/6] Add Bananapi R4 Pro support
  2025-10-27 13:28 [PATCH v1 0/6] Add Bananapi R4 Pro support Frank Wunderlich
                   ` (5 preceding siblings ...)
  2025-10-27 13:28 ` [PATCH v1 6/6] arm64: dts: mediatek: mt7988a-bpi-r4pro: Add mmc overlays Frank Wunderlich
@ 2025-11-05 12:56 ` AngeloGioacchino Del Regno
  6 siblings, 0 replies; 17+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-11-05 12:56 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger, Frank Wunderlich
  Cc: Frank Wunderlich, Sean Wang, Daniel Golle, devicetree,
	linux-kernel, linux-gpio, linux-arm-kernel, linux-mediatek

On Mon, 27 Oct 2025 14:28:10 +0100, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> BananaPi R4 Pro is a MT7988A based board which exists in 2 different
> hardware versions:
> 
> - 4E: 4 GB RAM and using internal 2.5G Phy for WAN-Combo
> - 8X: 8 GB RAM and 2x Aeonsemi AS21010P 10G phys
> 
> [...]

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

[2/6] dt-bindings: arm: mediatek: add BPI-R4 Pro board
      commit: b88827cb0bd1a192855db40494970bbdd7aad939

Cheers,
Angelo



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

* Re: [PATCH v1 4/6] arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro
  2025-11-05 12:55   ` AngeloGioacchino Del Regno
@ 2025-11-05 13:31     ` Frank Wunderlich
  0 siblings, 0 replies; 17+ messages in thread
From: Frank Wunderlich @ 2025-11-05 13:31 UTC (permalink / raw)
  To: AngeloGioacchino Del Regno, Frank Wunderlich, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Linus Walleij,
	Matthias Brugger
  Cc: Sean Wang, Daniel Golle, devicetree, linux-kernel, linux-gpio,
	linux-arm-kernel, linux-mediatek

Am 5. November 2025 13:55:43 MEZ schrieb AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>:
>Il 27/10/25 14:28, Frank Wunderlich ha scritto:
>> From: Frank Wunderlich <frank-w@public-files.de>
>> 
>> Add devicetree for Bpi-R4-Pro.
>
>Thanks for this!
>
>Overall, this looks good - there are just a few small things to fix, but hey,
>I bet you're getting this upstream as early as v2 :-D
>
>> 
>> BananaPi R4 Pro is a MT7988A based board which exists in 2 different
>> hardware versions:
>> 
>> - 4E: 4 GB RAM and using internal 2.5G Phy for WAN-Combo
>> - 8X: 8 GB RAM and 2x Aeonsemi AS21010P 10G phys
>> 
>> common parts:
>> 
>> - MediaTek MT7988A Quad-core Arm Corex-A73,1.8GHz processor
>> - 8GB eMMC flash
>> - 256MB SPI-NAND Flash
>> - Micro SD card slot
>> - 1x 10G SFP+ WAN
>> - 1x 10G SFP+ LAN
>> - 4x 2.5G RJ45 LAN (MxL86252C)
>> - 1x 1G RJ45 LAN (MT7988 internal switch)
>> - 2x miniPCIe slots with PCIe3.0 2lane interface for Wi-Fi NIC
>> - 2x M.2 M-KEY slots with PCIe3.0 1lane interface for NVME SSD
>> - 3x M.2 B-KEY slots with USB3.2 for 5G Module (PCIe shared with key-m)
>> - 1x USB3.2 slot
>> - 1x USB2.0 slot
>> - 1x USB TypeC Debug Console
>> - 2x13 PIN Header for expanding application
>> 
>> https://docs.banana-pi.org/en/BPI-R4_Pro/BananaPi_BPI-R4_Pro
>> 
>> The PCIe is per default in key-m state and can be changed to key-b with
>> the pcie-overlays.
>> 
>> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
>> ---
>>   arch/arm64/boot/dts/mediatek/Makefile         |   4 +
>>   .../mt7988a-bananapi-bpi-r4-pro-4e.dts        |  16 +
>>   .../mt7988a-bananapi-bpi-r4-pro-8x.dts        |  16 +
>>   .../mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi | 559 ++++++++++++++++++
>>   4 files changed, 595 insertions(+)
>>   create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
>>   create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
>>   create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi
>> 
>> diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
>> index a4df4c21399e..8640e5f32d4b 100644
>> --- a/arch/arm64/boot/dts/mediatek/Makefile
>> +++ b/arch/arm64/boot/dts/mediatek/Makefile
>> @@ -24,6 +24,8 @@ 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-pro-4e.dtb
>> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x.dtb
>>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
>>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
>>   dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm.dtb
>> @@ -111,4 +113,6 @@ 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_mt7988a-bananapi-bpi-r4-pro-4e := -@
>> +DTC_FLAGS_mt7988a-bananapi-bpi-r4-pro-8x := -@
>>   DTC_FLAGS_mt8395-radxa-nio-12l := -@
>> diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
>> new file mode 100644
>> index 000000000000..c7ea6e88c4f4
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts
>> @@ -0,0 +1,16 @@
>> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
>> +/*
>> + * Copyright (C) 2025 MediaTek Inc.
>> + * Author: Frank Wunderlich <frank-w@public-files.de>
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "mt7988a-bananapi-bpi-r4-pro.dtsi"
>> +
>> +/ {
>> +	model = "Bananapi BPI-R4";
>> +	compatible = "bananapi,bpi-r4-pro-4e",
>> +		     "bananapi,bpi-r4-pro",
>> +		     "mediatek,mt7988a";
>> +};
>> diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
>> new file mode 100644
>> index 000000000000..c9a0e69e9dd5
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x.dts
>> @@ -0,0 +1,16 @@
>> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
>> +/*
>> + * Copyright (C) 2025 MediaTek Inc.
>> + * Author: Frank Wunderlich <frank-w@public-files.de>
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "mt7988a-bananapi-bpi-r4-pro.dtsi"
>> +
>> +/ {
>> +	model = "Bananapi BPI-R4";
>> +	compatible = "bananapi,bpi-r4-pro-8x",
>> +		     "bananapi,bpi-r4-pro",
>> +		     "mediatek,mt7988a";
>> +};
>> diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi
>> new file mode 100644
>> index 000000000000..44406e23c042
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi
>> @@ -0,0 +1,559 @@
>> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
>> +/*
>> + * Copyright (C) 2025 MediaTek Inc.
>> + * Author: Sam.Shih <sam.shih@mediatek.com>
>> + * Author: Frank Wunderlich <frank-w@public-files.de>
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "mt7988a.dtsi"
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include <dt-bindings/input/input.h>
>> +#include <dt-bindings/leds/common.h>
>> +#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
>> +
>> +/*
>> + * ----------------------------------- Bananapi Bpi R4 Pro PINs ---------------------------------
>> + * |    | Function                               | Function                                |    |
>> + * |----|----------------------------------------|-----------------------------------------|----|
>> + * | 1  | 3V3                                    | 5V                                      | 2  |
>> + * | 3  | GPIO18/I2C_1_SDA                       | 5V                                      | 4  |
>> + * | 5  | GPIO17/I2C_1_SCL                       | GND                                     | 6  |
>> + * | 7  | GPIO62/JTAG_JTRST_N/PWM6/I2P5G_LED1_P0 | GPIO59/JTAG_JTDO/UART2_TX/GBE_LED1_P1   | 8  |
>> + * | 9  | GND                                    | GPIO58/JTAG_JTDI/UART2_RX/GBE_LED1_P0   | 10 |
>> + * | 11 | GPIO81/UART1_TXD                       | GPIO51/PCM_CLK_I2S_BCLK                 | 12 |
>> + * | 13 | GPIO80/UART1_RXD                       | GND                                     | 14 |
>> + * | 15 | GPIO50/PCM_FS_I2S_LRCK                 | GPIO61/JTAG_JTCLK/UART2_RTS/GBE_LED1_P3 | 16 |
>> + * | 17 | 3v3                                    | GPIO60/JTAG_JTMS/UART2_CTS/GBE_LED1_P2  | 18 |
>> + * | 19 | GPIO30/SPI1_MOSI                       | GND                                     | 20 |
>> + * | 21 | GPIO29/SPI1_MISO                       | GPIO53/PCM_DTX_I2S_DOUT                 | 22 |
>> + * | 23 | GPIO31/SPI1_CLK                        | GPIO28/SPI1_CSB                         | 24 |
>> + * | 25 | GND                                    | GPIO52/PCM_DRX_I2S_DIN                  | 26 |
>> + * |----|----------------------------------------|-----------------------------------------|----|
>> + */
>
>Nice! Is this a "raspberry pi header" thingy?
>
>Let's say that the header is called "CON89" on the schematics (if unsure, you
>should find that name by looking at the PCB), so a better title would be:
>
>* ------------------------------------- CON89 Pi header pins -----------------------------------
>
>Also this relates to PIO, right? You could move that as a pio node comment,
>either before or inside of your PIO overrides.
>After all, this comment is mapping "header pin number" to "PIO pin number" ;-)

I think i drop it on v2 as the "raspberry like" gpio header is not yet adressed here. Current dts is only first part.

>> +
>> +/ {
>> +	aliases {
>> +		ethernet0 = &gmac0;
>> +		i2c0 = &i2c0;
>> +		i2c1 = &i2c1;
>> +		i2c2 = &i2c2;
>> +		/* PCA9548 (0-0070) provides 4 i2c channels */
>> +		i2c3 = &imux0;
>> +		i2c4 = &imux1_sfp1;
>> +		i2c5 = &imux2_sfp2;
>> +		i2c6 = &imux3_wifi;
>> +	};
>> +
>> +	chosen {
>> +		stdout-path = &serial0;
>> +		bootargs = "console=ttyS0,115200n1 \
>> +			    earlycon=uart8250,mmio32,0x11000000";
>
>No, don't use bootargs - besides, earlycon is supposed to be for development
>purposes only, and it *has to* be unnecessary after development, on upstreamed
>devicetrees.

Yes that's already changed in my tree based on comment from krzysztof

>> +	};
>> +
>> +	fan: pwm-fan {
>> +		compatible = "pwm-fan";
>> +		/* cooling level (0, 1, 2, 3) : (0% duty, 30% duty, 50% duty, 100% duty) */
>> +		cooling-levels = <0 80 128 255>;
>> +		pinctrl-names = "default";
>> +		pinctrl-0 = <&pwm0_pins>;
>> +		pwms = <&pwm 0 50000>;
>> +		#cooling-cells = <2>;
>> +	};
>> +
>> +	gpio-keys {
>> +		compatible = "gpio-keys";
>> +
>> +		button-reset {
>> +			label = "reset";
>> +			linux,code = <KEY_RESTART>;
>> +			gpios = <&pio 13 GPIO_ACTIVE_LOW>;
>
>Please treat the linux,code property as a vendor property. Means...
>
>label =
>gpios =
>linux,code =

Ok

>> +		};
>> +
>> +		button-wps {
>> +			label = "WPS";
>> +			linux,code = <KEY_WPS_BUTTON>;
>> +			gpios = <&pio 14 GPIO_ACTIVE_LOW>;
>> +		};
>> +	};
>> +
>> +	gpio-leds {
>> +		compatible = "gpio-leds";
>> +
>> +		led_red: sys-led-red {
>> +			color = <LED_COLOR_ID_RED>;
>> +			gpios = <&pca9555 15 GPIO_ACTIVE_HIGH>;
>> +			default-state = "on";
>> +		};
>> +
>> +		led_blue: sys-led-blue {
>> +			color = <LED_COLOR_ID_BLUE>;
>> +			gpios = <&pca9555 14 GPIO_ACTIVE_HIGH>;
>> +			default-state = "on";
>> +		};
>> +	};
>> +
>> +	reg_1p8v: regulator-1p8v {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "fixed-1.8V";
>
>Have you got the board schematics?
>
>If so, can you please change the regulator-name to the one from the schematics?

Yes,have to look for it.

>> +		regulator-min-microvolt = <1800000>;
>> +		regulator-max-microvolt = <1800000>;
>> +		regulator-boot-on;
>> +		regulator-always-on;
>> +	};
>> +
>> +	reg_3p3v: regulator-3p3v {
>> +		compatible = "regulator-fixed";
>> +		regulator-name = "fixed-3.3V";
>> +		regulator-min-microvolt = <3300000>;
>> +		regulator-max-microvolt = <3300000>;
>> +		regulator-boot-on;
>> +		regulator-always-on;
>> +	};
>> +
>> +	/* SFP1 cage (LAN) */
>> +	sfp1: sfp1 {
>> +		compatible = "sff,sfp";
>> +		i2c-bus = <&imux1_sfp1>;
>> +		los-gpios = <&pio 70 GPIO_ACTIVE_HIGH>;//change4
>> +		mod-def0-gpios = <&pio 69 GPIO_ACTIVE_LOW>; //change3
>> +		tx-disable-gpios = <&pio 21 GPIO_ACTIVE_HIGH>; //change1
>
>What does "change4", "change3", "change1" even mean?
>
>Please remove.

Sorry that was my comments from changes between v0 and the v1 now.

>> +		maximum-power-milliwatt = <3000>;
>> +	};
>> +
>> +	/* SFP2 cage (WAN) */
>> +	sfp2: sfp2 {
>> +		compatible = "sff,sfp";
>> +		i2c-bus = <&imux2_sfp2>;
>> +		los-gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
>> +		mod-def0-gpios = <&pio 1 GPIO_ACTIVE_LOW>;
>> +		tx-disable-gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
>> +		maximum-power-milliwatt = <3000>;
>> +	};
>> +};
>> +
>
>..snip..
>
>> +
>> +&gmac0 {
>> +	status = "okay";
>> +};
>> +
>> +&gsw_phy0 {
>> +	pinctrl-names = "gbe-led";
>> +	pinctrl-0 = <&gbe0_led0_pins>;
>> +};
>> +
>> +&gsw_phy0_led0 {
>> +	status = "okay";
>> +	color = <LED_COLOR_ID_YELLOW>;
>
>color first, status last

Ok

>> +};
>> +
>
>..snip..
>
>> +
>> +&i2c1 {
>> +	pinctrl-names = "default";
>> +	pinctrl-0 = <&i2c1_pins>;
>> +	status = "okay";
>> +};
>> +
>> +&i2c2 {
>> +	pinctrl-names = "default";
>> +	pinctrl-0 = <&i2c2_1_pins>;
>> +	status = "okay";
>> +
>> +	pca9545: i2c-mux@70 {
>> +		reg = <0x70>;
>> +		compatible = "nxp,pca9545";
>
>compatible goes first. Check dts-coding-style.rst.

Ok,missed this

>> +		#address-cells = <1>;
>> +		#size-cells = <0>;
>> +
>> +		imux0: i2c@0 {
>> +			#address-cells = <1>;
>> +			#size-cells = <0>;
>> +			reg = <0>;
>
>reg goes first.
Ok
>> +
>> +			pca9555: i2c-gpio-expander@20 {
>> +				compatible = "nxp,pca9555";
>
>reg after compatible please

Ok
>> +				gpio-controller;
>> +				#gpio-cells = <2>;
>> +				reg = <0x20>;
>> +			};
>> +
>> +			rtc@51 {
>> +				compatible = "nxp,pcf8563";
>> +				reg = <0x51>;
>> +			};
>> +
>> +			eeprom@57 {
>> +				compatible = "atmel,24c02";
>> +				reg = <0x57>;
>> +				address-width = <8>;
>> +				pagesize = <8>;
>> +				size = <256>;
>> +			};
>> +		};
>> +
>> +		imux1_sfp1: i2c@1 {
>
>reg first, cells later;

>reg = <1>;
>#address-cells = <1>;
>#size-cells = <0>;
>
>here and everywhere else.

I do

>> +			#address-cells = <1>;
>> +			#size-cells = <0>;
>> +			reg = <1>;
>> +		};
>> +
>> +		imux2_sfp2: i2c@2 {
>> +			#address-cells = <1>;
>> +			#size-cells = <0>;
>> +			reg = <2>;
>> +		};
>> +
>> +		imux3_wifi: i2c@3 {
>> +			#address-cells = <1>;
>> +			#size-cells = <0>;
>> +			reg = <3>;
>> +		};
>> +	};
>> +};
>> +
>> +&int_2p5g_phy {
>> +	status = "disabled";
>> +};
>> +
>> +/* mPCIe SIM2 (11300000) */
>> +&pcie0 {
>> +	status = "okay";
>> +};
>> +
>> +/* mPCIe (11310000 near leds) SIM3 */
>> +&pcie1 {
>> +	status = "okay";
>> +};
>> +
>> +/* M.2 (11280000) 1L0 key-m SSD1 CN13 / key-b SIM1 CN15 */
>> +&pcie2 {
>> +	status = "okay";
>> +};
>> +
>> +/* M.2 (11290000) 1L1 key-m SSD2 CN14 / key-b SIM2 CN18 */
>> +&pcie3 {
>> +	status = "okay";
>> +};
>> +
>> +&pio {
>
>--snip..
>
>> +
>> +	mmc0_pins_sdcard: mmc0-sdcard-pins {
>> +		mux {
>> +			function = "flash";
>> +			groups = "sdcard";
>> +		};
>> +	};
>> +
>> +	// 1L0 0=key-b (CN15), 1=key-m (CN13)
>
>Please fix the comments
>/* 1L0 0=key-b (CN15), 1=key-m (CN13) */
>
>> +	pcie-2-hog {
>> +		gpio-hog;
>> +		gpios = <79 GPIO_ACTIVE_HIGH>;
>> +		output-high;
>> +	};
>
>Extra space here please, and
>
>> +	// 1L1 0=key-b (CN18), 1=key-m (CN14)
>
>/* 1L1 0=key-b (CN18), 1=key-m (CN14) */
Ok

>> +	pcie-3-hog {
>> +		gpio-hog;
>> +		gpios = <63 GPIO_ACTIVE_HIGH>;
>> +		output-high;
>> +	};
>> +
>> +	pwm0_pins: pwm0-pins {
>> +		mux {
>> +			groups = "pwm0";
>> +			function = "pwm";
>> +		};
>> +	};
>> +
>> +	spi0_flash_pins: spi0-flash-pins {
>> +		mux {
>> +			function = "spi";
>> +			groups = "spi0", "spi0_wp_hold";
>> +		};
>> +	};
>> +};
>> +
>
>..snip..
>
>> +
>> +/* back USB */
>> +&ssusb0 {
>> +	/* Use U2P only instead of both U3P/U2P due to U3P serdes shared with pcie2 */
>> +	phys = <&xphyu2port0 PHY_TYPE_USB2>;
>> +	mediatek,u3p-dis-msk = <1>;
>> +	/delete-property/ mediatek,p0_speed_fixup;
>
>Where's that property defined, even?
>Am I blind, or it's nowhere to be found (in any dtsi)?
>
>(no, seriously, I'm not sarcastic :P)

Possibly forgot to drop while adding node from sdk dts :p

>> +	status = "okay";
>> +};
>> +
>
>Cheers,
>Angelo

Hi Angelo

Thanks for review
regards Frank

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

end of thread, other threads:[~2025-11-05 13:31 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-27 13:28 [PATCH v1 0/6] Add Bananapi R4 Pro support Frank Wunderlich
2025-10-27 13:28 ` [PATCH v1 1/6] dt-bindings: pinctrl: mt7988: allow gpio-hogs Frank Wunderlich
2025-10-27 18:57   ` Krzysztof Kozlowski
2025-11-05 12:34   ` AngeloGioacchino Del Regno
2025-10-27 13:28 ` [PATCH v1 2/6] dt-bindings: arm: mediatek: add BPI-R4 Pro board Frank Wunderlich
2025-10-27 18:57   ` Krzysztof Kozlowski
2025-10-27 13:28 ` [PATCH v1 3/6] arm64: dts: mediatek: mt7988a: Add label for ssusb0 Frank Wunderlich
2025-10-27 18:58   ` Krzysztof Kozlowski
2025-10-27 19:04     ` Frank Wunderlich
2025-10-28  8:45       ` AngeloGioacchino Del Regno
2025-10-27 13:28 ` [PATCH v1 4/6] arm64: dts: mt7988: Add devicetree for BananaPi R4 Pro Frank Wunderlich
2025-10-27 18:59   ` Krzysztof Kozlowski
2025-11-05 12:55   ` AngeloGioacchino Del Regno
2025-11-05 13:31     ` Frank Wunderlich
2025-10-27 13:28 ` [PATCH v1 5/6] arm64: dts: mediatek: mt7988a-bpi-r4-pro: add PCIe overlays Frank Wunderlich
2025-10-27 13:28 ` [PATCH v1 6/6] arm64: dts: mediatek: mt7988a-bpi-r4pro: Add mmc overlays Frank Wunderlich
2025-11-05 12:56 ` (subset) [PATCH v1 0/6] Add Bananapi R4 Pro support 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).