From: Jörg Seitz Date: Sun, 21 Dec 2025 09:59:06 +0000 (+0100) Subject: mediatek: extract DTS include for zbt z8103ax X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b21b019af4176eae2f7276c1e24ab55978fd377b;p=thirdparty%2Fopenwrt.git mediatek: extract DTS include for zbt z8103ax - Use .dtsi for old z8103ax featuring a 64M Nand - Prepare .dtsi for model C of z8103ax featuring a 128M Nand This .dtsi is supposed to match boards labeled as hardware revision Z8103AX_V01. Model variant D of zbt-z8103ax appears to use very same board. DTS include does also - set wifi mac addresses in &wifi section - set eth mac addresses in ð section - set LAN switch mac addresses in &switch section All of the above allows to get rid of 11_fix_wifi_mac script Signed-off-by: Jörg Seitz Link: https://github.com/openwrt/openwrt/pull/19823 Signed-off-by: Hauke Mehrtens --- diff --git a/target/linux/mediatek/dts/mt7981b-zbtlink-zbt-z8103ax.dts b/target/linux/mediatek/dts/mt7981b-zbtlink-zbt-z8103ax.dts index e0f02025abf..0639a6eedcc 100644 --- a/target/linux/mediatek/dts/mt7981b-zbtlink-zbt-z8103ax.dts +++ b/target/linux/mediatek/dts/mt7981b-zbtlink-zbt-z8103ax.dts @@ -2,267 +2,14 @@ /dts-v1/; -#include "mt7981b.dtsi" +#include "mt7981b-zbtlink-zbt-z8103ax.dtsi" / { model = "Zbtlink ZBT-Z8103AX"; - compatible = "zbtlink,zbt-z8103ax", "mediatek,mt7981"; - - aliases { - serial0 = &uart0; - led-boot = &led_status_green; - led-failsafe = &led_status_red; - led-running = &led_status_green; - led-upgrade = &led_status_green; - label-mac-device = &gmac0; - }; - - chosen { - stdout-path = "serial0:115200n8"; - bootargs = "earlycon=uart8250,mmio32,0x11002000 console=ttyS0,115200n8"; - }; - - memory@40000000 { - reg = <0 0x40000000 0 0x10000000>; - device_type = "memory"; - }; - - gpio-keys { - compatible = "gpio-keys"; - - button-mesh { - label = "mesh"; - linux,code = ; - linux,input-type = ; - gpios = <&pio 0 GPIO_ACTIVE_HIGH>; - }; - - button-reset { - label = "reset"; - linux,code = ; - gpios = <&pio 1 GPIO_ACTIVE_LOW>; - }; - }; - - leds { - compatible = "gpio-leds"; - - led-wan { - color = ; - function = LED_FUNCTION_WAN; - gpios = <&pio 8 GPIO_ACTIVE_LOW>; - }; - - led-status-blue { - color = ; - function = LED_FUNCTION_STATUS; - gpios = <&pio 23 GPIO_ACTIVE_HIGH>; - }; - - led_status_green: led-status-green { - color = ; - function = LED_FUNCTION_STATUS; - gpios = <&pio 24 GPIO_ACTIVE_LOW>; - }; - - led_status_red: led-status-red { - color = ; - function = LED_FUNCTION_STATUS; - gpios = <&pio 25 GPIO_ACTIVE_LOW>; - }; - - led-wlan2g { - color = ; - function = LED_FUNCTION_WLAN; - gpios = <&pio 34 GPIO_ACTIVE_LOW>; - function-enumerator = <0>; - linux,default-trigger = "phy0tpt"; - }; - - led-wlan5g { - color = ; - function = LED_FUNCTION_WLAN; - gpios = <&pio 35 GPIO_ACTIVE_LOW>; - function-enumerator = <1>; - linux,default-trigger = "phy1tpt"; - }; - }; -}; - -ð { - status = "okay"; - - gmac0: mac@0 { - /* LAN */ - compatible = "mediatek,eth-mac"; - reg = <0>; - phy-mode = "2500base-x"; - - nvmem-cell-names = "mac-address"; - nvmem-cells = <&macaddr_factory_4 2>; - - fixed-link { - speed = <2500>; - full-duplex; - pause; - }; - }; - - gmac1: mac@1 { - /* WAN */ - compatible = "mediatek,eth-mac"; - reg = <1>; - phy-mode = "gmii"; - phy-handle = <&int_gbe_phy>; - - nvmem-cell-names = "mac-address"; - nvmem-cells = <&macaddr_factory_4 3>; - }; -}; - -&mdio_bus { - switch: switch@1f { - compatible = "mediatek,mt7531"; - reg = <31>; - reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>; - interrupt-controller; - #interrupt-cells = <1>; - interrupt-parent = <&pio>; - interrupts = <38 IRQ_TYPE_LEVEL_HIGH>; - }; -}; - -&spi0 { - pinctrl-names = "default"; - pinctrl-0 = <&spi0_flash_pins>; - status = "okay"; - - spi_nand@0 { - compatible = "spi-nand"; - reg = <0>; - - spi-max-frequency = <52000000>; - spi-tx-bus-width = <4>; - spi-rx-bus-width = <4>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "bl2"; - reg = <0x0000000 0x0100000>; - read-only; - }; - - partition@100000 { - label = "u-boot-env"; - reg = <0x100000 0x80000>; - }; - - partition@180000 { - label = "Factory"; - reg = <0x180000 0x200000>; - read-only; - - nvmem-layout { - compatible = "fixed-layout"; - #address-cells = <1>; - #size-cells = <1>; - - eeprom_factory: eeprom@0 { - reg = <0x0 0x1000>; - }; - - macaddr_factory_4: macaddr@4 { - compatible = "mac-base"; - reg = <0x4 0x6>; - #nvmem-cell-cells = <1>; - }; - }; - }; - - partition@380000 { - label = "FIP"; - reg = <0x380000 0x200000>; - read-only; - }; - - partition@580000 { - label = "ubi"; - reg = <0x580000 0x4000000>; - }; - }; - }; -}; - -&switch { - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - label = "lan1"; - }; - - port@1 { - reg = <1>; - label = "lan2"; - }; - - port@2 { - reg = <2>; - label = "lan3"; - }; - - port@6 { - reg = <6>; - label = "cpu"; - ethernet = <&gmac0>; - phy-mode = "2500base-x"; - - fixed-link { - speed = <2500>; - full-duplex; - pause; - }; - }; - }; -}; - -&pio { - spi0_flash_pins: spi0-pins { - mux { - function = "spi"; - groups = "spi0", "spi0_wp_hold"; - }; - - conf-pu { - pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP"; - drive-strength = ; - bias-pull-up = ; - }; - - conf-pd { - pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO"; - drive-strength = ; - bias-pull-down = ; - }; - }; -}; - -&uart0 { - status = "okay"; -}; - -&watchdog { - status = "okay"; + compatible = "zbtlink,zbt-z8103ax", "mediatek,mt7981b"; }; -&wifi { - status = "okay"; - nvmem-cells = <&eeprom_factory>; - nvmem-cell-names = "eeprom"; +&ubi { + /* reduce ubi partition size from .dtsi to fit into 64M Nand */ + reg = <0x580000 0x4000000>; }; diff --git a/target/linux/mediatek/dts/mt7981b-zbtlink-zbt-z8103ax.dtsi b/target/linux/mediatek/dts/mt7981b-zbtlink-zbt-z8103ax.dtsi new file mode 100644 index 00000000000..28259976cc5 --- /dev/null +++ b/target/linux/mediatek/dts/mt7981b-zbtlink-zbt-z8103ax.dtsi @@ -0,0 +1,296 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +#include "mt7981b.dtsi" + +/ { + aliases { + serial0 = &uart0; + led-boot = &led_status_red; + led-failsafe = &led_status_red; + led-running = &led_status_green; + led-upgrade = &led_status_green; + label-mac-device = &gmac1; + }; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs = "earlycon=uart8250,mmio32,0x11002000 console=ttyS0,115200n8"; + }; + + memory@40000000 { + reg = <0 0x40000000 0 0x10000000>; + device_type = "memory"; + }; + + gpio-keys { + compatible = "gpio-keys"; + + button-mesh { + label = "mesh"; + linux,code = ; + linux,input-type = ; + gpios = <&pio 0 GPIO_ACTIVE_HIGH>; + }; + + button-reset { + label = "reset"; + linux,code = ; + gpios = <&pio 1 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + compatible = "gpio-leds"; + + wan { + color = ; + function = LED_FUNCTION_WAN; + gpios = <&pio 8 GPIO_ACTIVE_LOW>; + }; + + led_status_blue: mesh-blue { + color = ; + function = LED_FUNCTION_STATUS; + gpios = <&pio 23 GPIO_ACTIVE_LOW>; + }; + + led_status_green: mesh-green { + color = ; + function = LED_FUNCTION_STATUS; + gpios = <&pio 24 GPIO_ACTIVE_LOW>; + }; + + led_status_red: mesh-red { + color = ; + function = LED_FUNCTION_STATUS; + gpios = <&pio 25 GPIO_ACTIVE_LOW>; + default-state = "on"; + }; + led-wlan2g { + color = ; + function = LED_FUNCTION_WLAN_2GHZ; + gpios = <&pio 34 GPIO_ACTIVE_LOW>; + function-enumerator = <0>; + linux,default-trigger = "phy0tpt"; + }; + + led-wlan5g { + color = ; + function = LED_FUNCTION_WLAN_5GHZ; + gpios = <&pio 35 GPIO_ACTIVE_LOW>; + function-enumerator = <1>; + linux,default-trigger = "phy1tpt"; + }; + }; + +}; + +ð { + status = "okay"; + + gmac0: mac@0 { + /* LAN */ + compatible = "mediatek,eth-mac"; + reg = <0>; + phy-mode = "2500base-x"; + + nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_factory_4 0>; + + fixed-link { + speed = <2500>; + full-duplex; + pause; + }; + }; + + gmac1: mac@1 { + /* WAN */ + compatible = "mediatek,eth-mac"; + reg = <1>; + phy-mode = "gmii"; + phy-handle = <&int_gbe_phy>; + + nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_factory_2a 0>; + }; +}; + +&mdio_bus { + switch: switch@1f { + compatible = "mediatek,mt7531"; + reg = <31>; + reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-parent = <&pio>; + interrupts = <38 IRQ_TYPE_LEVEL_HIGH>; + }; +}; + +&switch { + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + label = "lan1"; + nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_factory_4 0>; + }; + + port@1 { + reg = <1>; + label = "lan2"; + nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_factory_4 1>; + }; + + port@2 { + reg = <2>; + label = "lan3"; + nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_factory_4 2>; + }; + + port@6 { + reg = <6>; + label = "cpu"; + ethernet = <&gmac0>; + phy-mode = "2500base-x"; + + fixed-link { + speed = <2500>; + full-duplex; + pause; + }; + }; + }; +}; + +&spi0 { + pinctrl-names = "default"; + pinctrl-0 = <&spi0_flash_pins>; + status = "okay"; + + spi_nand@0 { + compatible = "spi-nand"; + reg = <0>; + + spi-max-frequency = <52000000>; + spi-tx-bus-width = <4>; + spi-rx-bus-width = <4>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "BL2"; + reg = <0x0000000 0x0100000>; + read-only; + }; + + partition@100000 { + label = "u-boot-env"; + reg = <0x100000 0x80000>; + }; + + factory: partition@180000 { + label = "Factory"; + reg = <0x180000 0x200000>; + read-only; + }; + + partition@380000 { + label = "FIP"; + reg = <0x380000 0x200000>; + read-only; + }; + + ubi: partition@580000 { + label = "ubi"; + reg = <0x580000 0x7280000>; + }; + }; + }; +}; + +&pio { + spi0_flash_pins: spi0-pins { + mux { + function = "spi"; + groups = "spi0", "spi0_wp_hold"; + }; + + conf-pu { + pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP"; + drive-strength = ; + bias-pull-up = ; + }; + + conf-pd { + pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO"; + drive-strength = ; + bias-pull-down = ; + }; + }; +}; + +&uart0 { + status = "okay"; +}; + +&watchdog { + status = "okay"; +}; + +&wifi { + status = "okay"; + nvmem-cells = <&eeprom_factory>; + nvmem-cell-names = "eeprom"; + + band@0 { + reg = <0>; + nvmem-cells = <&macaddr_factory_4 0>; + nvmem-cell-names = "mac-address"; + }; + + band@1 { + reg = <1>; + nvmem-cells = <&macaddr_factory_a 1>; + nvmem-cell-names = "mac-address"; + }; +}; + +&factory { + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + eeprom_factory: eeprom@0 { + reg = <0x0 0x1000>; + }; + + macaddr_factory_4: macaddr@4 { + reg = <0x4 0x6>; + compatible = "mac-base"; + #nvmem-cell-cells = <1>; + }; + + macaddr_factory_a: macaddr@a { + reg = <0xa 0x6>; + compatible = "mac-base"; + #nvmem-cell-cells = <1>; + }; + + macaddr_factory_2a: macaddr@2a { + reg = <0x2a 0x6>; + compatible = "mac-base"; + #nvmem-cell-cells = <1>; + }; +}; diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac index 937f4f49c0a..87d91b401d8 100644 --- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac @@ -219,8 +219,7 @@ case "$board" in routerich,ax3000|\ routerich,ax3000-ubootmod|\ zbtlink,zbt-z8102ax|\ - zbtlink,zbt-z8102ax-v2|\ - zbtlink,zbt-z8103ax) + zbtlink,zbt-z8102ax-v2) addr=$(mtd_get_mac_binary "Factory" 0x4) [ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress ;;