forked from Openwrt-EcoNet/openwrt
Replace downstream files by patches, either backports of those which have already applied or pending patches tracked on patchwork. This is done to make future maintainance more easy. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
488 lines
8.8 KiB
Diff
488 lines
8.8 KiB
Diff
From f7fb27b62f0ef45f94f4ec33c608bfad1c7691b3 Mon Sep 17 00:00:00 2001
|
|
From: Daniel Golle <daniel@makrotopia.org>
|
|
Date: Wed, 26 Jul 2023 14:56:28 +0100
|
|
Subject: [PATCH 32/32] WIP: add BPi-R4
|
|
|
|
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
|
|
@@ -20,3 +20,16 @@
|
|
pinctrl-names = "i2p5gbe-led";
|
|
pinctrl-0 = <&i2p5gbe_led0_pins>;
|
|
};
|
|
+
|
|
+&gmac1 {
|
|
+ phy-mode = "internal";
|
|
+ phy-connection-type = "internal";
|
|
+ phy = <&int_2p5g_phy>;
|
|
+ openwrt,netdev-name = "lan4";
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&int_2p5g_phy {
|
|
+ pinctrl-names = "i2p5gbe-led";
|
|
+ pinctrl-0 = <&i2p5gbe_led0_pins>;
|
|
+};
|
|
--- /dev/null
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-emmc.dtso
|
|
@@ -0,0 +1,56 @@
|
|
+// 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", "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 = <®_1p8v>;
|
|
+ vmmc-supply = <®_3p3v>;
|
|
+ non-removable;
|
|
+ no-sd;
|
|
+ no-sdio;
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ status = "okay";
|
|
+
|
|
+ card@0 {
|
|
+ compatible = "mmc-card";
|
|
+ reg = <0>;
|
|
+
|
|
+ partitions {
|
|
+ compatible = "gpt-partitions";
|
|
+
|
|
+ block-partition-env {
|
|
+ partname = "ubootenv";
|
|
+ nvmem-layout {
|
|
+ compatible = "u-boot,env-layout";
|
|
+ };
|
|
+ };
|
|
+
|
|
+ emmc_rootfs: block-partition-production {
|
|
+ partname = "production";
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&{/chosen} {
|
|
+ rootdisk-emmc = <&emmc_rootfs>;
|
|
+};
|
|
--- /dev/null
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-rtc.dtso
|
|
@@ -0,0 +1,19 @@
|
|
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
+/*
|
|
+ * Copyright (C) 2023
|
|
+ * Author: Daniel Golle <daniel@makrotopia.org>
|
|
+ */
|
|
+
|
|
+/dts-v1/;
|
|
+/plugin/;
|
|
+
|
|
+/ {
|
|
+ compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
|
|
+
|
|
+ fragment@0 {
|
|
+ target = <&pcf8563>;
|
|
+ __overlay__ {
|
|
+ status = "okay";
|
|
+ };
|
|
+ };
|
|
+};
|
|
--- /dev/null
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-sd.dtso
|
|
@@ -0,0 +1,54 @@
|
|
+// 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", "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 = <52000000>;
|
|
+ cap-sd-highspeed;
|
|
+ vmmc-supply = <®_3p3v>;
|
|
+ vqmmc-supply = <®_3p3v>;
|
|
+ no-mmc;
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ status = "okay";
|
|
+
|
|
+ card@0 {
|
|
+ compatible = "mmc-card";
|
|
+ reg = <0>;
|
|
+
|
|
+ partitions {
|
|
+ compatible = "gpt-partitions";
|
|
+
|
|
+ block-partition-env {
|
|
+ partname = "ubootenv";
|
|
+ nvmem-layout {
|
|
+ compatible = "u-boot,env-layout";
|
|
+ };
|
|
+ };
|
|
+
|
|
+ sd_rootfs: block-partition-production {
|
|
+ partname = "production";
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&{/chosen} {
|
|
+ rootdisk-sd = <&sd_rootfs>;
|
|
+};
|
|
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
|
@@ -35,3 +35,11 @@
|
|
reg = <2>;
|
|
};
|
|
};
|
|
+
|
|
+&gmac1 {
|
|
+ sfp = <&sfp2>;
|
|
+ managed = "in-band-status";
|
|
+ phy-mode = "usxgmii";
|
|
+ openwrt,netdev-name = "sfp-lan";
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
|
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
|
@@ -3,6 +3,8 @@
|
|
/dts-v1/;
|
|
|
|
#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>
|
|
|
|
#include "mt7988a.dtsi"
|
|
@@ -10,6 +12,8 @@
|
|
/ {
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
+ bootargs = "console=ttyS0,115200n1 loglevel=8 pci=pcie_bus_perf ubi.block=0,fit root=/dev/fit0";
|
|
+ rootdisk-spim-nand = <&ubi_rootfs>;
|
|
};
|
|
|
|
fan: pwm-fan {
|
|
@@ -50,6 +54,141 @@
|
|
rate-select0-gpios = <&pio 21 GPIO_ACTIVE_LOW>;
|
|
maximum-power-milliwatt = <3000>;
|
|
};
|
|
+
|
|
+ aliases {
|
|
+ ethernet0 = &gmac0;
|
|
+ ethernet1 = &gmac1;
|
|
+ ethernet2 = &gmac2;
|
|
+ serial0 = &serial0;
|
|
+ led-boot = &led_green;
|
|
+ led-failsafe = &led_green;
|
|
+ led-running = &led_green;
|
|
+ led-upgrade = &led_green;
|
|
+ };
|
|
+
|
|
+ memory {
|
|
+ reg = <0x00 0x40000000 0x00 0x10000000>;
|
|
+ };
|
|
+
|
|
+ /* SFP1 cage (WAN) */
|
|
+ sfp1: sfp1 {
|
|
+ compatible = "sff,sfp";
|
|
+ i2c-bus = <&i2c_sfp1>;
|
|
+ los-gpios = <&pio 54 GPIO_ACTIVE_HIGH>;
|
|
+ mod-def0-gpios = <&pio 82 GPIO_ACTIVE_LOW>;
|
|
+ tx-disable-gpios = <&pio 70 GPIO_ACTIVE_HIGH>;
|
|
+ tx-fault-gpios = <&pio 69 GPIO_ACTIVE_HIGH>;
|
|
+ rate-select0-gpios = <&pio 21 GPIO_ACTIVE_LOW>;
|
|
+ maximum-power-milliwatt = <3000>;
|
|
+ };
|
|
+
|
|
+ gpio-keys {
|
|
+ compatible = "gpio-keys";
|
|
+
|
|
+ wps {
|
|
+ label = "WPS";
|
|
+ linux,code = <KEY_RESTART>;
|
|
+ gpios = <&pio 14 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ gpio-leds {
|
|
+ compatible = "gpio-leds";
|
|
+
|
|
+ led_green: led-green {
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_GREEN>;
|
|
+ gpios = <&pio 79 GPIO_ACTIVE_HIGH>;
|
|
+ default-state = "on";
|
|
+ };
|
|
+
|
|
+ led_blue: led-blue {
|
|
+ function = LED_FUNCTION_WPS;
|
|
+ color = <LED_COLOR_ID_BLUE>;
|
|
+ gpios = <&pio 63 GPIO_ACTIVE_HIGH>;
|
|
+ default-state = "off";
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+ð {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&gmac0 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&gmac2 {
|
|
+ sfp = <&sfp1>;
|
|
+ managed = "in-band-status";
|
|
+ phy-mode = "usxgmii";
|
|
+ openwrt,netdev-name = "sfp-wan";
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&switch {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&gsw_phy0 {
|
|
+ pinctrl-names = "gbe-led";
|
|
+ pinctrl-0 = <&gbe0_led0_pins>;
|
|
+};
|
|
+
|
|
+&gsw_port0 {
|
|
+ label = "wan";
|
|
+};
|
|
+
|
|
+&gsw_phy0_led0 {
|
|
+ status = "okay";
|
|
+ function = LED_FUNCTION_WAN;
|
|
+ color = <LED_COLOR_ID_GREEN>;
|
|
+};
|
|
+
|
|
+&gsw_phy1 {
|
|
+ pinctrl-names = "gbe-led";
|
|
+ pinctrl-0 = <&gbe1_led0_pins>;
|
|
+};
|
|
+
|
|
+&gsw_port1 {
|
|
+ label = "lan1";
|
|
+};
|
|
+
|
|
+&gsw_phy1_led0 {
|
|
+ status = "okay";
|
|
+ function = LED_FUNCTION_LAN;
|
|
+ color = <LED_COLOR_ID_GREEN>;
|
|
+};
|
|
+
|
|
+&gsw_phy2 {
|
|
+ pinctrl-names = "gbe-led";
|
|
+ pinctrl-0 = <&gbe2_led0_pins>;
|
|
+};
|
|
+
|
|
+&gsw_port2 {
|
|
+ label = "lan2";
|
|
+};
|
|
+
|
|
+&gsw_phy2_led0 {
|
|
+ status = "okay";
|
|
+ function = LED_FUNCTION_LAN;
|
|
+ color = <LED_COLOR_ID_GREEN>;
|
|
+};
|
|
+
|
|
+&gsw_phy3 {
|
|
+ pinctrl-names = "gbe-led";
|
|
+ pinctrl-0 = <&gbe3_led0_pins>;
|
|
+};
|
|
+
|
|
+&gsw_port3 {
|
|
+ label = "lan3";
|
|
+};
|
|
+
|
|
+&gsw_phy3_led0 {
|
|
+ status = "okay";
|
|
+ function = LED_FUNCTION_LAN;
|
|
+ color = <LED_COLOR_ID_GREEN>;
|
|
};
|
|
|
|
&cci {
|
|
@@ -174,6 +313,10 @@
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
};
|
|
|
|
+&cci {
|
|
+ proc-supply = <&rt5190_buck3>;
|
|
+};
|
|
+
|
|
&i2c0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c0_pins>;
|
|
@@ -265,6 +408,14 @@
|
|
#size-cells = <0>;
|
|
reg = <1>;
|
|
};
|
|
+
|
|
+ i2c_wifi: i2c@3 {
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ reg = <3>;
|
|
+
|
|
+ status = "disabled";
|
|
+ };
|
|
};
|
|
};
|
|
|
|
@@ -364,34 +515,6 @@
|
|
};
|
|
};
|
|
|
|
- gbe0_led1_pins: gbe0-led1-pins {
|
|
- mux {
|
|
- function = "led";
|
|
- groups = "gbe0_led1";
|
|
- };
|
|
- };
|
|
-
|
|
- gbe1_led1_pins: gbe1-led1-pins {
|
|
- mux {
|
|
- function = "led";
|
|
- groups = "gbe1_led1";
|
|
- };
|
|
- };
|
|
-
|
|
- gbe2_led1_pins: gbe2-led1-pins {
|
|
- mux {
|
|
- function = "led";
|
|
- groups = "gbe2_led1";
|
|
- };
|
|
- };
|
|
-
|
|
- gbe3_led1_pins: gbe3-led1-pins {
|
|
- mux {
|
|
- function = "led";
|
|
- groups = "gbe3_led1";
|
|
- };
|
|
- };
|
|
-
|
|
i2p5gbe_led0_pins: 2p5gbe-led0-pins {
|
|
mux {
|
|
function = "led";
|
|
@@ -399,13 +522,6 @@
|
|
};
|
|
};
|
|
|
|
- i2p5gbe_led1_pins: 2p5gbe-led1-pins {
|
|
- mux {
|
|
- function = "led";
|
|
- groups = "2p5gbe_led1";
|
|
- };
|
|
- };
|
|
-
|
|
mmc0_pins_emmc_45: mmc0-emmc-45-pins {
|
|
mux {
|
|
function = "flash";
|
|
@@ -427,40 +543,12 @@
|
|
};
|
|
};
|
|
|
|
- snfi_pins: snfi-pins {
|
|
- mux {
|
|
- function = "flash";
|
|
- groups = "snfi";
|
|
- };
|
|
- };
|
|
-
|
|
- spi0_pins: spi0-pins {
|
|
- mux {
|
|
- function = "spi";
|
|
- groups = "spi0";
|
|
- };
|
|
- };
|
|
-
|
|
spi0_flash_pins: spi0-flash-pins {
|
|
mux {
|
|
function = "spi";
|
|
groups = "spi0", "spi0_wp_hold";
|
|
};
|
|
};
|
|
-
|
|
- spi2_pins: spi2-pins {
|
|
- mux {
|
|
- function = "spi";
|
|
- groups = "spi2";
|
|
- };
|
|
- };
|
|
-
|
|
- spi2_flash_pins: spi2-flash-pins {
|
|
- mux {
|
|
- function = "spi";
|
|
- groups = "spi2", "spi2_wp_hold";
|
|
- };
|
|
- };
|
|
};
|
|
|
|
&pwm {
|
|
@@ -500,6 +588,32 @@
|
|
reg = <0x0 0x200000>;
|
|
read-only;
|
|
};
|
|
+
|
|
+ partition@200000 {
|
|
+ label = "ubi";
|
|
+ reg = <0x200000 0x7e00000>;
|
|
+ compatible = "linux,ubi";
|
|
+
|
|
+ volumes {
|
|
+ ubi-volume-ubootenv {
|
|
+ volname = "ubootenv";
|
|
+ nvmem-layout {
|
|
+ compatible = "u-boot,env-redundant-bool-layout";
|
|
+ };
|
|
+ };
|
|
+
|
|
+ ubi-volume-ubootenv2 {
|
|
+ volname = "ubootenv2";
|
|
+ nvmem-layout {
|
|
+ compatible = "u-boot,env-redundant-bool-layout";
|
|
+ };
|
|
+ };
|
|
+
|
|
+ ubi_rootfs: ubi-volume-fit {
|
|
+ volname = "fit";
|
|
+ };
|
|
+ };
|
|
+ };
|
|
};
|
|
};
|
|
|