]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
mediatek: filogic: prepare for ubootmod build of ASUS ZenWiFi BT8
authorDaniel Golle <daniel@makrotopia.org>
Thu, 13 Mar 2025 22:10:40 +0000 (22:10 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 30 Mar 2025 01:02:58 +0000 (02:02 +0100)
Break out all flash-layout dependent parts from device tree into separate
dtsi file to be used by both, stock layout and upcoming ubootmod variant.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8.dts
target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8.dtsi [new file with mode: 0644]

index ad12001c4ed20d264cf9ded9e2dd6b3fd972ec0b..b2cb1ceb726b763997a2bc414d3807e03641fe81 100644 (file)
 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
 
-/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/pinctrl/mt65xx.h>
-#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
+#include "mt7988d-asus-zenwifi-bt8.dtsi"
 
 / {
        model = "ASUS ZenWiFi BT8";
        compatible = "asus,zenwifi-bt8", "mediatek,mt7988a";
 
-       aliases {
-               serial0 = &uart0;
-               label-mac-device = &gmac0;
-               led-boot = &led_status_green;
-               led-failsafe = &led_status_red;
-               led-running = &led_status_green;
-               led-upgrade = &led_status_blue;
-       };
-
        chosen {
                bootargs-override = "earlycon=uart8250,mmio32,0x11000000 console=ttyS0,115200n8";
                stdout-path = "serial0:115200n8";
        };
-
-       memory {
-               reg = <0x0 0x40000000 0x0 0x40000000>;
-       };
-
-       cpus {
-               /delete-node/ cpu@3;
-       };
-
-       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;
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-               pinctrl-names = "default";
-               pinctrl-0 = <&button_pins>;
-
-               factory {
-                       label = "reset";
-                       linux,code = <KEY_RESTART>;
-                       gpios = <&pio 13 GPIO_ACTIVE_LOW>;
-               };
-
-               wps {
-                       label = "sync";
-                       linux,code = <KEY_WPS_BUTTON>;
-                       gpios = <&pio 14 GPIO_ACTIVE_LOW>;
-               };
-       };
-
-       pwm-leds {
-               compatible = "pwm-leds";
-
-               led_status_red: led-0 {
-                       color = <LED_COLOR_ID_RED>;
-                       function = LED_FUNCTION_STATUS;
-                       pwms = <&pwm 0 10000>;
-               };
-
-               led_status_green: led-1 {
-                       color = <LED_COLOR_ID_GREEN>;
-                       function = LED_FUNCTION_STATUS;
-                       pwms = <&pwm 1 10000>;
-               };
-
-               led_status_blue: led-2 {
-                       color = <LED_COLOR_ID_BLUE>;
-                       function = LED_FUNCTION_STATUS;
-                       pwms = <&pwm 3 10000>;
-               };
-       };
-};
-
-&cpu0 {
-       proc-supply = <&rt5190_buck3>;
-};
-
-&cpu1 {
-       proc-supply = <&rt5190_buck3>;
-};
-
-&cpu2 {
-       proc-supply = <&rt5190_buck3>;
-};
-
-&cci {
-       proc-supply = <&rt5190_buck3>;
-};
-
-&eth {
-       pinctrl-names = "default";
-       pinctrl-0 = <&mdio0_pins>;
-       status = "okay";
-};
-
-&gmac0 {
-       nvmem-cells = <&macaddr_factory_4>;
-       nvmem-cell-names = "mac-address";
-
-       status = "okay";
-};
-
-&gmac1 {
-       phy-mode = "internal";
-       phy-connection-type = "internal";
-       phy = <&int_2p5g_phy>;
-
-       nvmem-cells = <&macaddr_factory_a>;
-       nvmem-cell-names = "mac-address";
-
-       openwrt,netdev-name = "wan";
-
-       status = "okay";
-};
-
-&int_2p5g_phy {
-       pinctrl-names = "i2p5gbe-led";
-       pinctrl-0 = <&i2p5gbe_led0_pins>;
-};
-
-&gmac2 {
-       phy-mode = "2500base-x";
-       phy = <&phy5>;
-
-       nvmem-cells = <&macaddr_factory_4>;
-       nvmem-cell-names = "mac-address";
-
-       openwrt,netdev-name = "lan3";
-
-       status = "okay";
-};
-
-&gsw_phy0 {
-       status = "disabled";
-};
-
-&i2c0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c0_pins>;
-       status = "okay";
-
-       rt5190a_64: rt5190a@64 {
-               compatible = "richtek,rt5190a";
-               reg = <0x64>;
-               /*interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;*/
-               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;
-                       };
-
-                       buck4 {
-                               regulator-name = "rt5190a-buck4";
-                               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>;
-                               regulator-max-microvolt = <1200000>;
-                               regulator-boot-on;
-                               regulator-always-on;
-                       };
-               };
-       };
-};
-
-&mdio_bus {
-       phy5: ethernet-phy@5 {
-               compatible = "ethernet-phy-ieee802.3-c45";
-               reg = <5>;
-
-               reset-gpios = <&pio 0 GPIO_ACTIVE_LOW>;
-               reset-assert-us = <200000>;
-               reset-deassert-us = <2000000>;
-       };
-};
-
-&pcie0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie0_1_pins>;
-       reset-gpios = <&pio 7 GPIO_ACTIVE_LOW>;
-       status = "okay";
-
-       pcie@0,0 {
-               reg = <0x0000 0 0 0 0>;
-
-               mt7996@0,0 {
-                       reg = <0x0000 0 0 0 0>;
-                       nvmem-cells = <&eeprom_factory_0>;
-                       nvmem-cell-names = "eeprom";
-
-                       band@0 {
-                               /* 2.4 GHz */
-                               reg = <0>;
-                               nvmem-cells = <&macaddr_factory_fffee>;
-                               nvmem-cell-names = "mac-address";
-                       };
-
-                       band@1 {
-                               /* 5 GHz */
-                               reg = <1>;
-                               nvmem-cells = <&macaddr_factory_ffff4>;
-                               nvmem-cell-names = "mac-address";
-                       };
-
-                       band@2 {
-                               /* 6 GHz */
-                               reg = <2>;
-                               nvmem-cells = <&macaddr_factory_ffffa>;
-                               nvmem-cell-names = "mac-address";
-                       };
-               };
-       };
-};
-
-&pcie3 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie3_pins>;
-       status = "okay";
-};
-
-&pio {
-       button_pins: button-pins {
-               pins = "GPIO_RESET", "GPIO_WPS";
-               mediatek,pull-down-adv = <0>; /* bias-disable */
-       };
-
-       pcie0_1_pins: pcie0-pins-g1 {
-               mux {
-                       function = "pcie";
-                       groups = "pcie_2l_0_pereset", "pcie_clk_req_n0_0";
-               };
-       };
-
-       pwm_pins: pwm-pins {
-               mux {
-                       function = "pwm";
-                       groups = "pwm0", "pwm1", "pwm3_0";
-               };
-       };
 };
 
 &spi0 {
 };
 
 &ubi_factory {
-       nvmem-layout {
-               compatible = "fixed-layout";
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               macaddr_factory_4: macaddr@4 {
-                       reg = <0x4 0x6>;
-               };
-
-               macaddr_factory_a: macaddr@a {
-                       reg = <0xa 0x6>;
-               };
-
-               macaddr_factory_fffee: macaddr@fffee {
-                       reg = <0xfffee 0x6>;
-               };
-
-               macaddr_factory_ffff4: macaddr@ffff4 {
-                       reg = <0xffff4 0x6>;
-               };
-
-               macaddr_factory_ffffa: macaddr@ffffa {
-                       reg = <0xffffa 0x6>;
-               };
-
-               pin@101180 {
-                       reg = <0x101180 0x8>;
-               };
-
-               hwid@110e00 {
-                       reg = <0x110e00 0x1>;
-               };
-
-               hwrev@110e04 {
-                       reg = <0x110e04 0x4>;
-               };
-
-               board@110e0c {
-                       reg = <0x110e0c 0x20>;
-               };
-
-               mfgdate@110e3e {
-                       reg = <0x110e3e 0x8>;
-               };
-
-               market@110f90 {
-                       reg = <0x110f90 0x5>;
-               };
-
-               model@110fb0 {
-                       reg = <0x110fb0 0x10>;
-               };
-
-               serial@110ff0 {
-                       reg = <0x110ff0 0x10>;
-               };
-
-               eeprom-version@15480f {
-                       reg = <0x15480f 0x1>;
-               };
-       };
+       ASUS_BT8_NVMEM_LAYOUT;
 };
 
-&ssusb1 {
-       status = "okay";
+&gmac0 {
+       nvmem-cells = <&macaddr_factory_4>;
+       nvmem-cell-names = "mac-address";
 };
 
-&switch {
-       status = "okay";
-
-       ports {
-               port@0 {
-                       status = "disabled";
-               };
-
-               port@1 {
-                       label = "lan2";
-               };
-
-               port@2 {
-                       label = "lan1";
-               };
-
-               port@3 {
-                       status = "disabled";
-               };
-       };
+&gmac1 {
+       nvmem-cells = <&macaddr_factory_a>;
+       nvmem-cell-names = "mac-address";
 };
 
-&tphy {
-       status = "okay";
+&gmac2 {
+       nvmem-cells = <&macaddr_factory_4>;
+       nvmem-cell-names = "mac-address";
 };
 
-&uart0 {
-       status = "okay";
-};
+&mt7996_wifi {
+       nvmem-cells = <&eeprom_factory_0>;
+       nvmem-cell-names = "eeprom";
 
-&watchdog {
-       status = "okay";
-};
+       band@0 {
+               /* 2.4 GHz */
+               reg = <0>;
+               nvmem-cells = <&macaddr_factory_fffee>;
+               nvmem-cell-names = "mac-address";
+       };
 
-&xphy {
-       status = "okay";
-};
+       band@1 {
+               /* 5 GHz */
+               reg = <1>;
+               nvmem-cells = <&macaddr_factory_ffff4>;
+               nvmem-cell-names = "mac-address";
+       };
 
-&pwm {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pwm_pins>;
-       status = "okay";
+       band@2 {
+               /* 6 GHz */
+               reg = <2>;
+               nvmem-cells = <&macaddr_factory_ffffa>;
+               nvmem-cell-names = "mac-address";
+       };
 };
diff --git a/target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8.dtsi b/target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8.dtsi
new file mode 100644 (file)
index 0000000..a8de1ee
--- /dev/null
@@ -0,0 +1,369 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/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/pinctrl/mt65xx.h>
+#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
+
+#define ASUS_BT8_NVMEM_LAYOUT                          \
+       nvmem-layout {                                  \
+               compatible = "fixed-layout";            \
+               #address-cells = <1>;                   \
+               #size-cells = <1>;                      \
+                                                       \
+               eeprom_factory_0: eeprom@0 {            \
+                       reg = <0x0 0x1e00>;             \
+               };                                      \
+                                                       \
+               macaddr_factory_4: macaddr@4 {          \
+                       reg = <0x4 0x6>;                \
+               };                                      \
+                                                       \
+               macaddr_factory_a: macaddr@a {          \
+                       reg = <0xa 0x6>;                \
+               };                                      \
+                                                       \
+               macaddr_factory_fffee: macaddr@fffee {  \
+                       reg = <0xfffee 0x6>;            \
+               };                                      \
+                                                       \
+               macaddr_factory_ffff4: macaddr@ffff4 {  \
+                       reg = <0xffff4 0x6>;            \
+               };                                      \
+                                                       \
+               macaddr_factory_ffffa: macaddr@ffffa {  \
+                       reg = <0xffffa 0x6>;            \
+               };                                      \
+                                                       \
+               pin@101180 {                            \
+                       reg = <0x101180 0x8>;           \
+               };                                      \
+                                                       \
+               hwid@110e00 {                           \
+                       reg = <0x110e00 0x1>;           \
+               };                                      \
+                                                       \
+               hwrev@110e04 {                          \
+                       reg = <0x110e04 0x4>;           \
+               };                                      \
+                                                       \
+               board@110e0c {                          \
+                       reg = <0x110e0c 0x20>;          \
+               };                                      \
+                                                       \
+               mfgdate@110e3e {                        \
+                       reg = <0x110e3e 0x8>;           \
+               };                                      \
+                                                       \
+               market@110f90 {                         \
+                       reg = <0x110f90 0x5>;           \
+               };                                      \
+                                                       \
+               model@110fb0 {                          \
+                       reg = <0x110fb0 0x10>;          \
+               };                                      \
+                                                       \
+               serial@110ff0 {                         \
+                       reg = <0x110ff0 0x10>;          \
+               };                                      \
+                                                       \
+               eeprom-version@15480f {                 \
+                       reg = <0x15480f 0x1>;           \
+               };                                      \
+       }
+
+/ {
+       aliases {
+               serial0 = &uart0;
+               label-mac-device = &gmac0;
+               led-boot = &led_status_green;
+               led-failsafe = &led_status_red;
+               led-running = &led_status_green;
+               led-upgrade = &led_status_blue;
+       };
+
+       memory {
+               reg = <0x0 0x40000000 0x0 0x40000000>;
+       };
+
+       cpus {
+               /delete-node/ cpu@3;
+       };
+
+       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;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&button_pins>;
+
+               factory {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&pio 13 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "sync";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&pio 14 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       pwm-leds {
+               compatible = "pwm-leds";
+
+               led_status_red: led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_STATUS;
+                       pwms = <&pwm 0 10000>;
+               };
+
+               led_status_green: led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       pwms = <&pwm 1 10000>;
+               };
+
+               led_status_blue: led-2 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_STATUS;
+                       pwms = <&pwm 3 10000>;
+               };
+       };
+};
+
+&cpu0 {
+       proc-supply = <&rt5190_buck3>;
+};
+
+&cpu1 {
+       proc-supply = <&rt5190_buck3>;
+};
+
+&cpu2 {
+       proc-supply = <&rt5190_buck3>;
+};
+
+&cci {
+       proc-supply = <&rt5190_buck3>;
+};
+
+&eth {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mdio0_pins>;
+       status = "okay";
+};
+
+&gmac0 {
+       status = "okay";
+};
+
+&gmac1 {
+       phy-mode = "internal";
+       phy-connection-type = "internal";
+       phy = <&int_2p5g_phy>;
+
+       openwrt,netdev-name = "wan";
+
+       status = "okay";
+};
+
+&int_2p5g_phy {
+       pinctrl-names = "i2p5gbe-led";
+       pinctrl-0 = <&i2p5gbe_led0_pins>;
+};
+
+&gmac2 {
+       phy-mode = "2500base-x";
+       phy = <&phy5>;
+
+       openwrt,netdev-name = "lan3";
+
+       status = "okay";
+};
+
+&gsw_phy0 {
+       status = "disabled";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       status = "okay";
+
+       rt5190a_64: rt5190a@64 {
+               compatible = "richtek,rt5190a";
+               reg = <0x64>;
+               /*interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;*/
+               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;
+                       };
+
+                       buck4 {
+                               regulator-name = "rt5190a-buck4";
+                               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>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&mdio_bus {
+       phy5: ethernet-phy@5 {
+               compatible = "ethernet-phy-ieee802.3-c45";
+               reg = <5>;
+
+               reset-gpios = <&pio 0 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <200000>;
+               reset-deassert-us = <2000000>;
+       };
+};
+
+&pcie0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie0_1_pins>;
+       reset-gpios = <&pio 7 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       pcie@0,0 {
+               reg = <0x0000 0 0 0 0>;
+
+               mt7996_wifi: mt7996@0,0 {
+                       reg = <0x0000 0 0 0 0>;
+               };
+       };
+};
+
+&pcie3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie3_pins>;
+       status = "okay";
+};
+
+&pio {
+       button_pins: button-pins {
+               pins = "GPIO_RESET", "GPIO_WPS";
+               mediatek,pull-down-adv = <0>; /* bias-disable */
+       };
+
+       pcie0_1_pins: pcie0-pins-g1 {
+               mux {
+                       function = "pcie";
+                       groups = "pcie_2l_0_pereset", "pcie_clk_req_n0_0";
+               };
+       };
+
+       pwm_pins: pwm-pins {
+               mux {
+                       function = "pwm";
+                       groups = "pwm0", "pwm1", "pwm3_0";
+               };
+       };
+};
+
+&ssusb1 {
+       status = "okay";
+};
+
+&switch {
+       status = "okay";
+
+       ports {
+               port@0 {
+                       status = "disabled";
+               };
+
+               port@1 {
+                       label = "lan2";
+               };
+
+               port@2 {
+                       label = "lan1";
+               };
+
+               port@3 {
+                       status = "disabled";
+               };
+       };
+};
+
+&tphy {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&watchdog {
+       status = "okay";
+};
+
+&xphy {
+       status = "okay";
+};
+
+&pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm_pins>;
+       status = "okay";
+};