Skip to content

Commit

Permalink
Add z8102ax support
Browse files Browse the repository at this point in the history
  • Loading branch information
Ysurac committed Nov 5, 2023
1 parent 2c35157 commit 33c0765
Show file tree
Hide file tree
Showing 4 changed files with 1,032 additions and 0 deletions.
275 changes: 275 additions & 0 deletions 6.1/target/linux/mediatek/dts/mt7981b-zbt-z8102ax.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,275 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

#include "mt7981.dtsi"

/ {
model = "ZBT Z8102AX";
compatible = "z8102ax", "mediatek,mt7981";

aliases {
serial0 = &uart0;
led-boot = &led_status_red;
led-failsafe = &led_status_red;
led-running = &led_status_green;
led-upgrade = &led_status_green;
};

chosen {
stdout-path = "serial0:115200n8";
};

gpio-keys {
compatible = "gpio-keys";

reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&pio 1 GPIO_ACTIVE_LOW>;
};

wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&pio 0 GPIO_ACTIVE_LOW>;
};

};

leds {
compatible = "gpio-leds";

led_status_red: red {
label = "red:status";
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
};

led_status_green: green {
label = "green:status";
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
};

led_status_blue: blue {
label = "blue:status";
gpios = <&pio 11 GPIO_ACTIVE_LOW>;
};

led_status_4g: 4g {
label = "4g:status";
gpios = <&pio 8 GPIO_ACTIVE_LOW>;
};

led_status_4g2: 4g2 {
label = "4g2:status";
gpios = <&pio 13 GPIO_ACTIVE_LOW>;
};

};

usb_vbus: regulator-usb-vbus {
compatible = "regulator-fixed";
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&pio 12 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-boot-on;
};
};

&eth {
status = "okay";

gmac0: mac@0 {
compatible = "mediatek,eth-mac";
reg = <0>;
phy-mode = "2500base-x";
nvmem-cell-names = "mac-address";
nvmem-cells = <&macaddr_factory_004>;

fixed-link {
speed = <2500>;
full-duplex;
pause;
};
};

gmac1: mac@1 {
compatible = "mediatek,eth-mac";
reg = <1>;
phy-mode = "gmii";
phy-handle = <&int_gbe_phy>;
};
};

&mdio_bus {
switch: switch@0 {
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";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;

spi-max-frequency = <52000000>;
spi-tx-buswidth = <4>;
spi-rx-buswidth = <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 = <0x0100000 0x0080000>;
};

factory: partition@180000 {
label = "Factory";
reg = <0x0180000 0x0200000>;
read-only;
};

partition@380000 {
label = "fip";
reg = <0x0380000 0x0200000>;
read-only;
};

partition@580000 {
label = "ubi";
reg = <0x0580000 0x4000000>;
};
};
};
};

&switch {
ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
reg = <0>;
label = "lan1";
nvmem-cell-names = "mac-address";
nvmem-cells = <&macaddr_factory_004>;
mac-address-increment = <2>;
};

port@1 {
reg = <1>;
label = "lan2";
nvmem-cell-names = "mac-address";
nvmem-cells = <&macaddr_factory_004>;
mac-address-increment = <2>;
};

port@2 {
reg = <2>;
label = "lan3";
nvmem-cell-names = "mac-address";
nvmem-cells = <&macaddr_factory_004>;
mac-address-increment = <2>;
};

port@3 {
reg = <3>;
label = "lan4";
nvmem-cell-names = "mac-address";
nvmem-cells = <&macaddr_factory_004>;
mac-address-increment = <2>;
};

port@6 {
reg = <6>;
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 = <8>;
mediatek,pull-up-adv = <0>; /* bias-disable */
};

conf-pd {
pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
drive-strength = <8>;
mediatek,pull-up-adv = <0>; /* bias-disable */
};
};
};

&uart0 {
status = "okay";
};

&watchdog {
status = "okay";
};

&wifi {
status = "okay";

mediatek,mtd-eeprom = <&factory 0x0>;
};

&usb_phy {
status = "okay";
};

&xhci {
vbus-supply = <&usb_vbus>;

status = "okay";
};

&factory {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;

macaddr_factory_004: macaddr@004 {
reg = <0x004 0x6>;
};
};
40 changes: 40 additions & 0 deletions 6.1/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
. /lib/functions/leds.sh
. /lib/functions/uci-defaults.sh

board=$(board_name)

board_config_update

case $board in
cudy,wr3000-v1)
ucidef_set_led_netdev "wan" "wan" "blue:wan" "wan"
;;
mercusys,mr90x-v1)
ucidef_set_led_netdev "lan0" "lan0" "green:lan0" "lan0" "link tx rx"
ucidef_set_led_netdev "lan1" "lan2" "green:lan1" "lan1" "link tx rx"
ucidef_set_led_netdev "lan2" "lan2" "green:lan2" "lan2" "link tx rx"
ucidef_set_led_netdev "wan" "wan" "green:wan" "eth1" "link tx rx"
;;
netgear,wax220)
ucidef_set_led_netdev "eth0" "LAN" "green:lan" "eth0"
ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan2g" "phy0-ap0"
ucidef_set_led_netdev "wlan5g" "WLAN5G" "blue:wlan5g" "phy1-ap0"
;;
xiaomi,mi-router-wr30u-112m-nmbm|\
xiaomi,mi-router-wr30u-stock|\
xiaomi,mi-router-wr30u-ubootmod)
ucidef_set_led_netdev "wan" "wan" "blue:network" "wan"
;;
xiaomi,redmi-router-ax6000-stock|\
xiaomi,redmi-router-ax6000-ubootmod)
ucidef_set_led_netdev "wan" "wan" "rgb:network" "wan"
;;
z8102axx)
ucidef_set_led_netdev "4g" "4g" "4g:status" "wwan0"
ucidef_set_led_netdev "4g2" "4g2" "4g2:status" "wwan1"
;;
esac

board_config_flush

exit 0
Loading

0 comments on commit 33c0765

Please sign in to comment.