-// SPDX-License-Identifier: GPL-2.0
-/dts-v1/;
+// SPDX-License-Identifier: GPL-2.0-only
-#include "mt7621_netgear_sercomm.dtsi"
+#include "mt7621.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
/ {
+ compatible = "mediatek,mt7621-soc";
+
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ label-mac-device = &gmac0;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power: power {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+ };
+
+ usb {
+ function = LED_FUNCTION_USB;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&xhci_ehci_port1>, <&ehci_port2>;
+ linux,default-trigger = "usbport";
+ };
+
+ internet {
+ function = LED_FUNCTION_WAN;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi {
+ label = "green:wifi";
+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+ };
+
keys {
compatible = "gpio-keys";
wps {
label = "wps";
- gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
reset {
label = "reset";
- gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
+
+ reg_usb_vbus: regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio 10 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&xhci {
+ vbus-supply = <®_usb_vbus>;
+};
+
+&pcie {
+ status = "okay";
+};
+
+&pcie0 {
+ wifi@0,0 {
+ compatible = "mediatek,mt76";
+ reg = <0x0 0 0 0 0>;
+ nvmem-cells = <&eeprom_factory_8000>;
+ nvmem-cell-names = "eeprom";
+ ieee80211-freq-limit = <5000000 6000000>;
+ };
+};
+
+&pcie1 {
+ wifi@0,0 {
+ compatible = "mediatek,mt76";
+ reg = <0x0 0 0 0 0>;
+ nvmem-cells = <&eeprom_factory_0>;
+ nvmem-cell-names = "eeprom";
+ ieee80211-freq-limit = <2400000 2500000>;
+ };
+};
+
+&gmac0 {
+ nvmem-cells = <&macaddr_factory_4 0>;
+ nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+ status = "okay";
+ label = "wan";
+ phy-handle = <ðphy4>;
+
+ nvmem-cells = <&macaddr_factory_4 2>;
+ nvmem-cell-names = "mac-address";
+};
+
+&mdio {
+ ethphy4: ethernet-phy@4 {
+ reg = <4>;
+ };
+};
+
+&switch0 {
+ ports {
+ port@0 {
+ status = "okay";
+ label = "lan4";
+ };
+
+ port@1 {
+ status = "okay";
+ label = "lan3";
+ };
+
+ port@2 {
+ status = "okay";
+ label = "lan2";
+ };
+
+ port@3 {
+ status = "okay";
+ label = "lan1";
+ };
+ };
+};
+
+&state_default {
+ gpio {
+ groups = "uart3", "uart2", "jtag", "wdt";
+ function = "gpio";
+ };
};
&nand {
status = "okay";
partitions {
- compatible = "fixed-partitions";
+ compatible = "sercomm,sc-partitions", "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x100000>;
+ sercomm,scpart-id = <0>;
read-only;
};
partition@100000 {
label = "SC PART_MAP";
reg = <0x100000 0x100000>;
+ sercomm,scpart-id = <1>;
read-only;
};
partition@200000 {
label = "kernel";
reg = <0x200000 0x400000>;
+ sercomm,scpart-id = <2>;
};
partition@600000 {
label = "ubi";
reg = <0x600000 0x2800000>;
+ sercomm,scpart-id = <3>;
};
partition@2e00000 {
- label = "reserved0";
- reg = <0x2e00000 0x1800000>;
+ label = "English UI";
+ reg = <0x2e00000 0x200000>;
+ sercomm,scpart-id = <4>;
read-only;
};
- factory: partition@4600000 {
+ partition@3000000 {
+ label = "ML1";
+ reg = <0x3000000 0x200000>;
+ sercomm,scpart-id = <5>;
+ read-only;
+ };
+
+ partition@3200000 {
+ label = "ML2";
+ reg = <0x3200000 0x200000>;
+ sercomm,scpart-id = <6>;
+ read-only;
+ };
+
+ partition@3400000 {
+ label = "ML3";
+ reg = <0x3400000 0x200000>;
+ sercomm,scpart-id = <7>;
+ read-only;
+ };
+
+ partition@3600000 {
+ label = "ML4";
+ reg = <0x3600000 0x200000>;
+ sercomm,scpart-id = <8>;
+ read-only;
+ };
+
+ partition@3800000 {
+ label = "ML5";
+ reg = <0x3800000 0x200000>;
+ sercomm,scpart-id = <9>;
+ read-only;
+ };
+
+ partition@3a00000 {
+ label = "ML6";
+ reg = <0x3a00000 0x200000>;
+ sercomm,scpart-id = <10>;
+ read-only;
+ };
+
+ partition@3c00000 {
+ label = "ML7";
+ reg = <0x3c00000 0x200000>;
+ sercomm,scpart-id = <11>;
+ read-only;
+ };
+
+ partition@3e00000 {
+ label = "ML8";
+ reg = <0x3e00000 0x200000>;
+ sercomm,scpart-id = <12>;
+ read-only;
+ };
+
+ partition@4000000 {
+ label = "ML9";
+ reg = <0x4000000 0x200000>;
+ sercomm,scpart-id = <13>;
+ read-only;
+ };
+
+ partition@4200000 {
+ label = "ML10";
+ reg = <0x4200000 0x200000>;
+ sercomm,scpart-id = <14>;
+ read-only;
+ };
+
+ partition@4400000 {
+ label = "ML11";
+ reg = <0x4400000 0x200000>;
+ sercomm,scpart-id = <15>;
+ read-only;
+ };
+
+ partition@4600000 {
label = "factory";
reg = <0x4600000 0x200000>;
+ sercomm,scpart-id = <16>;
read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ eeprom_factory_0: eeprom@0 {
+ reg = <0x0 0x400>;
+ };
+
+ eeprom_factory_8000: eeprom@8000 {
+ reg = <0x8000 0x4da8>;
+ };
+
+ macaddr_factory_4: macaddr@4 {
+ compatible = "mac-base";
+ reg = <0x4 0x6>;
+ #nvmem-cell-cells = <1>;
+ };
+ };
};
partition@4800000 {
+ label = "SC Private Data";
+ reg = <0x4800000 0x200000>;
+ sercomm,scpart-id = <17>;
+ read-only;
+ };
+
+ partition@4a00000 {
+ label = "POT";
+ reg = <0x4a00000 0x200000>;
+ sercomm,scpart-id = <18>;
+ read-only;
+ };
+
+ partition@4c00000 {
+ label = "Traffic Meter";
+ reg = <0x4c00000 0x200000>;
+ sercomm,scpart-id = <19>;
+ read-only;
+ };
+
+ partition@4e00000 {
+ label = "SC PID";
+ reg = <0x4e00000 0x200000>;
+ sercomm,scpart-id = <20>;
+ read-only;
+ };
+
+ partition@5000000 {
+ label = "SC Nvram";
+ reg = <0x5000000 0x200000>;
+ sercomm,scpart-id = <21>;
+ read-only;
+ };
+
+ partition@5200000 {
+ label = "Ralink Nvram";
+ reg = <0x5200000 0x200000>;
+ sercomm,scpart-id = <22>;
+ read-only;
+ };
+
+ partition@5400000 {
+ label = "reserved0";
+ reg = <0x5400000 0x200000>;
+ sercomm,scpart-id = <23>;
+ read-only;
+ };
+
+ partition@5600000 {
label = "reserved1";
- reg = <0x4800000 0x3800000>;
+ reg = <0x5600000 0x200000>;
+ sercomm,scpart-id = <24>;
+ read-only;
+ };
+
+ partition@5800000 {
+ label = "reserved2";
+ reg = <0x5800000 0x200000>;
+ sercomm,scpart-id = <25>;
+ read-only;
+ };
+
+ partition@5a00000 {
+ label = "reserved3";
+ reg = <0x5a00000 0x200000>;
+ sercomm,scpart-id = <26>;
+ read-only;
+ };
+
+ partition@5c00000 {
+ label = "reserved4";
+ reg = <0x5c00000 0x200000>;
+ sercomm,scpart-id = <27>;
+ read-only;
+ };
+
+ partition@5e00000 {
+ label = "reserved5";
+ reg = <0x5e00000 0x2180000>;
+ sercomm,scpart-id = <28>;
read-only;
};
};