Skip to content

Commit 045b5eb

Browse files
committed
mediatek: filogic: add support for HUASIFEI WH3000 PRO (aka Fudy Pro)
1 parent 423165d commit 045b5eb

File tree

5 files changed

+274
-1
lines changed

5 files changed

+274
-1
lines changed
Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2+
3+
/dts-v1/;
4+
5+
#include <dt-bindings/gpio/gpio.h>
6+
#include <dt-bindings/input/input.h>
7+
#include <dt-bindings/leds/common.h>
8+
#include <dt-bindings/thermal/thermal.h>
9+
10+
#include "mt7981.dtsi"
11+
12+
/ {
13+
model = "Huasifei WH3000 Pro";
14+
compatible = "huasifei,wh3000-pro", "mediatek,mt7981";
15+
16+
aliases {
17+
serial0 = &uart0;
18+
led-boot = &led_sys_red;
19+
led-failsafe = &led_sys_red;
20+
led-running = &led_sys_green;
21+
led-upgrade = &led_sys_green;
22+
};
23+
24+
chosen {
25+
stdout-path = "serial0:115200n8";
26+
bootargs-append = " root=PARTLABEL=rootfs rootwait";
27+
};
28+
29+
fan: pwm-fan {
30+
compatible = "pwm-fan";
31+
#cooling-cells = <2>;
32+
cooling-levels = <0 63 127 191 223 255>;
33+
interrupt-parent = <&pio>;
34+
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
35+
pwms = <&pwm 1 40000 0>;
36+
status = "okay";
37+
};
38+
39+
gpio-export {
40+
compatible = "gpio-export";
41+
42+
gpio_modem_power {
43+
gpio-export,name = "modem_power";
44+
gpio-export,output = <0>;
45+
gpios = <&pio 4 GPIO_ACTIVE_HIGH>;
46+
};
47+
48+
};
49+
50+
gpio-keys {
51+
compatible = "gpio-keys";
52+
53+
reset {
54+
label = "reset";
55+
linux,code = <KEY_RESTART>;
56+
gpios = <&pio 1 GPIO_ACTIVE_LOW>;
57+
};
58+
59+
mode {
60+
label = "mode";
61+
linux,code = <BTN_0>;
62+
linux,input-type = <EV_SW>;
63+
gpios = <&pio 0 GPIO_ACTIVE_LOW>;
64+
debounce-interval = <60>;
65+
};
66+
};
67+
68+
gpio-leds {
69+
compatible = "gpio-leds";
70+
71+
led_sys_red: led-0 {
72+
color = <LED_COLOR_ID_RED>;
73+
function = LED_FUNCTION_STATUS;
74+
gpios = <&pio 11 GPIO_ACTIVE_LOW>;
75+
};
76+
77+
led_sys_green: led-1 {
78+
color = <LED_COLOR_ID_GREEN>;
79+
function = LED_FUNCTION_STATUS;
80+
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
81+
};
82+
};
83+
};
84+
85+
&cpu_thermal {
86+
cooling-maps {
87+
cpu-active-low {
88+
cooling-device = <&fan 1 1>;
89+
trip = <&cpu_trip_active_low>;
90+
};
91+
92+
cpu-active-med {
93+
cooling-device = <&fan 2 2>;
94+
trip = <&cpu_trip_active_med>;
95+
};
96+
97+
cpu-active-high {
98+
cooling-device = <&fan 3 3>;
99+
trip = <&cpu_trip_active_high>;
100+
};
101+
};
102+
};
103+
104+
&eth {
105+
pinctrl-names = "default";
106+
pinctrl-0 = <&mdio_pins>;
107+
status = "okay";
108+
109+
gmac0: mac@0 {
110+
compatible = "mediatek,eth-mac";
111+
reg = <0>;
112+
phy-mode = "2500base-x";
113+
phy-handle = <&phy1>;
114+
115+
nvmem-cells = <&macaddr_factory_4 2>;
116+
nvmem-cell-names = "mac-address";
117+
};
118+
119+
gmac1: mac@1 {
120+
compatible = "mediatek,eth-mac";
121+
reg = <1>;
122+
phy-mode = "gmii";
123+
phy-handle = <&int_gbe_phy>;
124+
125+
nvmem-cells = <&macaddr_factory_4 3>;
126+
nvmem-cell-names = "mac-address";
127+
};
128+
};
129+
130+
&mdio_bus {
131+
phy1: ethernet-phy@1 {
132+
compatible = "ethernet-phy-ieee802.3-c45";
133+
reg = <1>;
134+
reset-assert-us = <100000>;
135+
reset-deassert-us = <100000>;
136+
reset-gpios = <&pio 39 GPIO_ACTIVE_LOW>;
137+
interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
138+
interrupt-parent = <&pio>;
139+
realtek,aldps-enable;
140+
};
141+
};
142+
143+
&mmc0 {
144+
bus-width = <8>;
145+
cap-mmc-highspeed;
146+
max-frequency = <52000000>;
147+
non-removable;
148+
pinctrl-names = "default", "state_uhs";
149+
pinctrl-0 = <&mmc0_pins_default>;
150+
pinctrl-1 = <&mmc0_pins_uhs>;
151+
vmmc-supply = <&reg_3p3v>;
152+
status = "okay";
153+
154+
card@0 {
155+
compatible = "mmc-card";
156+
reg = <0>;
157+
158+
block {
159+
compatible = "block-device";
160+
161+
partitions {
162+
block-partition-factory {
163+
partname = "factory";
164+
165+
nvmem-layout {
166+
compatible = "fixed-layout";
167+
#address-cells = <1>;
168+
#size-cells = <1>;
169+
170+
eeprom_factory_0: eeprom@0 {
171+
reg = <0x0 0x1000>;
172+
};
173+
174+
macaddr_factory_4: macaddr@4 {
175+
compatible = "mac-base";
176+
reg = <0x4 0x6>;
177+
#nvmem-cell-cells = <1>;
178+
};
179+
};
180+
};
181+
};
182+
};
183+
};
184+
};
185+
186+
&pio {
187+
mmc0_pins_default: mmc0-pins-default {
188+
mux {
189+
function = "flash";
190+
groups = "emmc_45";
191+
};
192+
};
193+
mmc0_pins_uhs: mmc0-pins-uhs {
194+
mux {
195+
function = "flash";
196+
groups = "emmc_45";
197+
};
198+
};
199+
200+
pwm1_pin: pwm1-pin-g0 {
201+
mux {
202+
function = "pwm";
203+
groups = "pwm1_0";
204+
};
205+
};
206+
};
207+
208+
&uart0 {
209+
status = "okay";
210+
};
211+
212+
&usb_phy {
213+
status = "okay";
214+
};
215+
216+
&watchdog {
217+
status = "okay";
218+
};
219+
220+
&wifi {
221+
nvmem-cells = <&eeprom_factory_0>;
222+
nvmem-cell-names = "eeprom";
223+
status = "okay";
224+
};
225+
226+
&pwm {
227+
pinctrl-names = "default";
228+
pinctrl-0 = <&pwm1_pin>;
229+
status = "okay";
230+
};
231+
232+
&fan {
233+
pwms = <&pwm 0 40000 0>;
234+
interrupt-parent = <&pio>;
235+
interrupts = <29 IRQ_TYPE_EDGE_RISING>;
236+
status = "okay";
237+
};
238+
239+
&xhci {
240+
status = "okay";
241+
};

target/linux/mediatek/filogic/base-files/etc/board.d/02_network

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ mediatek_setup_interfaces()
3535
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 sfp2" "eth1 wan"
3636
;;
3737
bananapi,bpi-r3-mini|\
38-
huasifei,wh3000-emmc)
38+
huasifei,wh3000-emmc|\
39+
huasifei,wh3000-pro)
3940
ucidef_set_interfaces_lan_wan eth0 eth1
4041
;;
4142
bananapi,bpi-r4|\
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
. /lib/functions/uci-defaults.sh
2+
3+
board_config_update
4+
5+
board=$(board_name)
6+
7+
case "$board" in
8+
huasifei,wh3000-pro)
9+
ucidef_add_gpio_switch "modem_power" "Modem power" "modem_power" "0"
10+
;;
11+
esac
12+
13+
board_config_flush
14+
15+
exit 0

target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ platform_do_upgrade() {
5050
glinet,gl-xe3000|\
5151
hf,m7986r1-emmc|\
5252
huasifei,wh3000-emmc|\
53+
huasifei,wh3000-pro|\
5354
jdcloud,re-cs-05)
5455
CI_KERNPART="kernel"
5556
CI_ROOTPART="rootfs"
@@ -106,6 +107,7 @@ platform_copy_config() {
106107
glinet,gl-xe3000|\
107108
hf,m7986r1-emmc|\
108109
huasifei,wh3000-emmc|\
110+
huasifei,wh3000-pro|\
109111
jdcloud,re-cs-05)
110112
emmc_copy_config
111113
;;

target/linux/mediatek/image/filogic.mk

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,20 @@ define Device/huasifei_wh3000-emmc
518518
endef
519519
TARGET_DEVICES += huasifei_wh3000-emmc
520520

521+
define Device/huasifei_wh3000-pro
522+
DEVICE_VENDOR := Huasifei
523+
DEVICE_MODEL := WH3000 PRO
524+
DEVICE_DTS := mt7981b-huasifei-wh3000-pro
525+
DEVICE_DTS_DIR := ../dts
526+
DEVICE_PACKAGES := kmod-mt7981-firmware mt7981-wo-firmware kmod-usb3 f2fsck mkf2fs kmod-hwmon-pwmfan
527+
KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
528+
KERNEL_INITRAMFS := kernel-bin | lzma | \
529+
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
530+
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
531+
SUPPORTED_DEVICES += huasifei,fudy-pro
532+
endef
533+
TARGET_DEVICES += huasifei_wh3000-pro
534+
521535
define Device/huasifei_ws3006
522536
DEVICE_VENDOR := Huasifei
523537
DEVICE_MODEL := WS3006

0 commit comments

Comments
 (0)