Initial commit

This commit is contained in:
domenico
2025-06-24 16:03:39 +02:00
commit f3256cdaf2
6949 changed files with 1441681 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
include $(TOPDIR)/rules.mk
ARCH:=mips
BOARD:=ath79
BOARDNAME:=Atheros ATH79 (DTS)
CPU_TYPE:=24kc
SUBTARGETS:=generic nand tiny
FEATURES:=ramdisk
KERNEL_PATCHVER:=4.14
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += \
kmod-gpio-button-hotplug swconfig \
kmod-ath9k uboot-envtools
$(eval $(call BuildTarget))

View File

@@ -0,0 +1,272 @@
#!/bin/sh
. /lib/functions/uci-defaults.sh
board_config_update
board=$(board_name)
boardname="${board##*,}"
case "$board" in
8dev,carambola2)
ucidef_set_led_netdev "lan" "LAN" "$boardname:orange:eth0" "eth0"
ucidef_set_led_switch "wan" "WAN" "$boardname:orange:eth1" "switch0" "0x04"
;;
avm,fritz300e)
ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:green:rssi0" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "$boardname:green:rssi1" "wlan0" "20" "100"
ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "$boardname:green:rssi2" "wlan0" "40" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssi3" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssi4" "wlan0" "80" "100"
;;
avm,fritz4020)
ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan" "switch0" "0x1E"
;;
buffalo,whr-g301n)
ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0"
ucidef_set_led_switch "lan1" "LAN1" "$boardname:green:lan1" "switch0" "0x02"
ucidef_set_led_switch "lan2" "LAN2" "$boardname:green:lan2" "switch0" "0x04"
ucidef_set_led_switch "lan3" "LAN3" "$boardname:green:lan3" "switch0" "0x08"
ucidef_set_led_switch "lan4" "LAN4" "$boardname:green:lan4" "switch0" "0x10"
;;
comfast,cf-e110n-v2)
ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth1"
ucidef_set_led_switch "wan" "WAN" "$boardname:green:wan" "switch0" "0x02"
ucidef_set_led_wlan "wlan" "WLAN" "$boardname:green:wlan" "phy0tpt"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:red:rssilow" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "$boardname:red:rssimediumlow" "wlan0" "26" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssihigh" "wlan0" "76" "100"
;;
comfast,cf-e120a-v3)
ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth1"
ucidef_set_led_switch "wan" "WAN" "$boardname:green:wan" "switch0" "0x04"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:red:rssilow" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "$boardname:red:rssimediumlow" "wlan0" "26" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssimediumhigh" "wlan0" "51" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssihigh" "wlan0" "76" "100"
;;
comfast,cf-e5)
ucidef_set_led_switch "lan" "LAN" "$boardname:blue:lan" "switch0" "0x02"
ucidef_set_led_netdev "wan" "WAN" "$boardname:blue:wan" "eth1"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:blue:rssi0" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "$boardname:blue:rssi1" "wlan0" "33" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:blue:rssi2" "wlan0" "66" "100"
;;
dlink,dir-859-a1)
ucidef_set_led_switch "internet" "WAN" "$boardname:green:internet" "switch0" "0x20"
;;
engenius,ecb1750)
ucidef_set_led_netdev "lan" "LAN" "$boardname:blue:lan" "eth0"
;;
engenius,ews511ap)
ucidef_set_led_netdev "lan1" "LAN1" "$boardname:blue:lan1" "eth1"
ucidef_set_led_netdev "lan2" "LAN2" "$boardname:blue:lan2" "eth0"
;;
etactica,eg200)
ucidef_set_led_netdev "lan" "LAN" "$boardname:red:eth0" "eth0"
ucidef_set_led_oneshot "modbus" "Modbus" "$boardname:red:modbus" "100" "33"
ucidef_set_led_default "etactica" "etactica" "$boardname:red:etactica" "ignore"
;;
glinet,gl-ar300m-nand|\
glinet,gl-ar300m-nor)
ucidef_set_led_netdev "lan" "LAN" "gl-ar300m:green:lan" "eth0"
;;
glinet,gl-ar300m-lite)
ucidef_set_led_netdev "lan" "LAN" "gl-ar300m-lite:green:lan" "eth0"
;;
glinet,gl-x750)
ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
;;
netgear,wnr612-v2|\
on,n150r)
ucidef_set_led_netdev "wan" "WAN" "netgear:green:wan" "eth0"
ucidef_set_led_switch "lan1" "LAN1" "netgear:green:lan1" "switch0" "0x02" "0x0f"
ucidef_set_led_switch "lan2" "LAN2" "netgear:green:lan2" "switch0" "0x04" "0x0f"
;;
pcs,cap324)
ucidef_set_led_netdev "lan" "LAN" "pcs:green:lan" "eth0"
;;
pcs,cr3000)
ucidef_set_led_netdev "wan" "WAN" "pcs:blue:wan" "eth1"
ucidef_set_led_switch "lan1" "LAN1" "pcs:blue:lan1" "switch0" "0x04"
ucidef_set_led_switch "lan2" "LAN2" "pcs:blue:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "pcs:blue:lan3" "switch0" "0x10"
ucidef_set_led_switch "lan4" "LAN4" "pcs:blue:lan4" "switch0" "0x02"
;;
tplink,archer-a7-v5|\
tplink,archer-c7-v4|\
tplink,archer-c7-v5)
ucidef_set_led_switch "wan" "WAN" "tp-link:green:wan" "switch0" "0x02"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04"
ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10"
ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x20"
;;
tplink,archer-c2-v3|\
tplink,tl-wr1043nd-v4|\
tplink,tl-wr1043n-v5)
ucidef_set_led_switch "wan" "WAN" "tp-link:green:wan" "switch0" "0x20"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x04"
ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
;;
tplink,archer-c6-v2)
ucidef_set_led_switch "lan" "LAN" "tp-link:green:lan" "switch0" "0x3C"
ucidef_set_led_switch "wan" "WAN" "tp-link:green:wan" "switch0" "0x02"
;;
tplink,archer-c25-v1|\
tplink,tl-wr841-v9|\
tplink,tl-wr841-v10|\
tplink,tl-wr841-v11|\
tplink,tl-wr841-v12|\
tplink,tl-wr842n-v3)
ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x04"
ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
;;
tplink,archer-c58-v1|\
tplink,archer-c59-v1|\
tplink,archer-c60-v1|\
tplink,archer-c60-v2|\
tplink,archer-c60-v3)
ucidef_set_led_switch "lan" "LAN" "tp-link:green:lan" "switch0" "0x1E"
ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
;;
tplink,archer-d50-v1)
ucidef_set_led_switch "lan" "LAN" "tp-link:white:lan" "switch0" "0x1c"
ucidef_set_led_switch "wan_data" "WAN Data" "tp-link:white:internet" "switch0" "0x02" "" "tx rx"
ucidef_set_led_switch "wan_link" "WAN Link" "tp-link:white:wan" "switch0" "0x02" "" "link"
;;
tplink,cpe220-v3)
ucidef_set_led_netdev "lan0" "LAN0" "tp-link:green:lan0" "eth1"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "tp-link:green:link1" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "tp-link:green:link2" "wlan0" "30" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "tp-link:green:link3" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "tp-link:green:link4" "wlan0" "80" "100"
;;
tplink,cpe210-v2|\
tplink,cpe210-v3)
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "tp-link:green:link1" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "tp-link:green:link2" "wlan0" "30" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "tp-link:green:link3" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "tp-link:green:link4" "wlan0" "80" "100"
;;
tplink,re450-v2)
ucidef_set_led_netdev "lan_data" "LAN Data" "tp-link:green:lan_data" "eth0" "tx rx"
ucidef_set_led_netdev "lan_link" "LAN Link" "tp-link:green:lan_link" "eth0" "link"
;;
tplink,tl-mr3020-v1|\
tplink,tl-mr3040-v2|\
tplink,tl-wa701nd-v1|\
tplink,tl-wa730re-v1|\
tplink,tl-wa801nd-v1|\
tplink,tl-wa801nd-v3|\
tplink,tl-wa801nd-v4|\
tplink,tl-wa830re-v1|\
tplink,tl-wa860re-v1|\
tplink,tl-wa901nd-v1|\
tplink,tl-wa901nd-v4|\
tplink,tl-wa901nd-v5)
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
;;
tplink,tl-mr3420-v2|\
tplink,tl-wr740n-v4|\
tplink,tl-wr740n-v5|\
tplink,tl-wr741nd-v4|\
tplink,tl-wr841-v8|\
tplink,tl-wr842n-v2)
ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04"
ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10"
ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
;;
tplink,tl-wa850re-v1)
ucidef_set_led_netdev "lan" "LAN" "tp-link:blue:lan" "eth0"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "tp-link:blue:signal1" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "tp-link:blue:signal2" "wlan0" "20" "100"
ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "tp-link:blue:signal3" "wlan0" "40" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "tp-link:blue:signal4" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "tp-link:blue:signal5" "wlan0" "80" "100"
;;
tplink,tl-wr740n-v1|\
tplink,tl-wr740n-v3|\
tplink,tl-wr741-v1|\
tplink,tl-wr743nd-v1|\
tplink,tl-wr841-v5|\
tplink,tl-wr941-v4)
ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth0"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x02"
ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x04"
ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x08"
ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x10"
;;
tplink,tl-wr940n-v3|\
tplink,tl-wr940n-v4|\
tplink,tl-wr941nd-v6)
ucidef_set_led_netdev "wan" "WAN" "tp-link:blue:wan" "eth1"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:blue:lan1" "switch0" "0x10"
ucidef_set_led_switch "lan2" "LAN2" "tp-link:blue:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "tp-link:blue:lan3" "switch0" "0x04"
ucidef_set_led_switch "lan4" "LAN4" "tp-link:blue:lan4" "switch0" "0x02"
;;
tplink,tl-wr940n-v6)
ucidef_set_led_netdev "wan" "WAN" "tp-link:blue:wan" "eth1"
;;
ubnt,bullet-m|\
ubnt,bullet-m-xw|\
ubnt,nanostation-loco-m|\
ubnt,nanostation-loco-m-xw|\
ubnt,nanostation-m|\
ubnt,nanostation-m-xw|\
ubnt,picostation-m|\
ubnt,rocket-m)
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:red:link1" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "ubnt:orange:link2" "wlan0" "26" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "ubnt:green:link3" "wlan0" "51" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "ubnt:green:link4" "wlan0" "76" "100"
;;
ubnt,nanobeam-ac|\
ubnt,nanostation-ac)
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:blue:rssi0" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "ubnt:blue:rssi1" "wlan0" "26" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "ubnt:blue:rssi2" "wlan0" "51" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "ubnt:blue:rssi3" "wlan0" "76" "100"
;;
wd,mynet-wifi-rangeextender)
ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:blue:rssi-low" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimedium" "RSSIMED" "$boardname:blue:rssi-med" "wlan0" "33" "100"
ucidef_set_led_rssi "rssihigh" "RSSIMAX" "$boardname:blue:rssi-max" "wlan0" "66" "100"
;;
yuncore,a770)
ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan" "switch0" "0x10"
;;
zbtlink,zbt-wd323)
ucidef_set_led_switch "lan1" "LAN1" "zbt-wd323:orange:lan1" "switch0" "0x10"
ucidef_set_led_switch "lan2" "LAN2" "zbt-wd323:orange:lan2" "switch0" "0x08"
;;
esac
board_config_flush
exit 0

View File

@@ -0,0 +1,407 @@
#!/bin/sh
. /lib/functions/system.sh
. /lib/functions/uci-defaults.sh
. /lib/functions/k2t.sh
ath79_setup_interfaces()
{
local board="$1"
case "$board" in
aruba,ap-105|\
avm,fritz300e|\
devolo,dvl1200i|\
devolo,dvl1750c|\
devolo,dvl1750i|\
devolo,dvl1750x|\
engenius,ecb1750|\
glinet,gl-ar300m-lite|\
netgear,ex6400|\
netgear,ex7300|\
ocedo,koala|\
ocedo,raccoon|\
pcs,cap324|\
pisen,wmm003n|\
pqi,air-pen|\
tplink,cpe210-v2|\
tplink,cpe210-v3|\
tplink,re350k-v1|\
tplink,re450-v2|\
tplink,tl-mr10u|\
tplink,tl-mr3020-v1|\
tplink,tl-mr3040-v2|\
tplink,tl-wa701nd-v1|\
tplink,tl-wa730re-v1|\
tplink,tl-wa801nd-v1|\
tplink,tl-wa801nd-v3|\
tplink,tl-wa801nd-v4|\
tplink,tl-wa830re-v1|\
tplink,tl-wa850re-v1|\
tplink,tl-wa860re-v1|\
tplink,tl-wa901nd-v1|\
tplink,tl-wa901nd-v2|\
tplink,tl-wa901nd-v4|\
tplink,tl-wa901nd-v5|\
tplink,tl-wr703n|\
tplink,tl-wr802n-v1|\
tplink,tl-wr802n-v2|\
ubnt,bullet-m|\
ubnt,bullet-m-xw|\
ubnt,lap-120|\
ubnt,nanobeam-ac|\
ubnt,nanostation-ac-loco|\
ubnt,nanostation-loco-m|\
ubnt,nanostation-loco-m-xw|\
ubnt,picostation-m|\
ubnt,rocket-m|\
ubnt,unifiac-lite|\
ubnt,unifiac-lr|\
ubnt,unifiac-mesh|\
ubnt,unifi|\
wd,mynet-wifi-rangeextender|\
winchannel,wb2000)
ucidef_set_interface_lan "eth0"
;;
avm,fritz4020|\
pcs,cr3000|\
tplink,archer-c58-v1|\
tplink,archer-c59-v1)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
;;
buffalo,bhr-4grv|\
buffalo,wzr-hp-g450h)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
;;
buffalo,bhr-4grv2)
ucidef_add_switch "switch0" \
"0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
;;
buffalo,whr-g301n)
ucidef_set_interface_wan "eth0"
ucidef_add_switch "switch0" \
"0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
;;
buffalo,wzr-hp-ag300h|\
tplink,archer-c25-v1|\
tplink,archer-c60-v1|\
tplink,archer-c60-v2|\
tplink,archer-c60-v3|\
tplink,tl-mr3220-v1|\
tplink,tl-mr3420-v1|\
tplink,tl-wdr3500-v1|\
tplink,tl-wr841-v7|\
tplink,tl-wr841-v9|\
tplink,tl-wr841-v10|\
tplink,tl-wr841-v11|\
tplink,tl-wr841-v12|\
tplink,tl-wr842n-v1|\
tplink,tl-wr842n-v3|\
tplink,tl-wr940n-v3|\
tplink,tl-wr940n-v4|\
tplink,tl-wr940n-v6|\
tplink,tl-wr941nd-v6|\
ubnt,airrouter)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
;;
buffalo,wzr-hp-g302h-a1a0)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
;;
comfast,cf-e110n-v2|\
comfast,cf-e120a-v3|\
tplink,cpe220-v3|\
ubnt,nanostation-m|\
ubnt,routerstation)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
;;
devolo,dvl1200e|\
devolo,dvl1750e|\
ocedo,ursus)
ucidef_set_interface_lan "eth0 eth1"
;;
dlink,dir-825-b1)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
;;
dlink,dir-825-c1|\
dlink,dir-835-a1|\
dlink,dir-859-a1|\
engenius,epg5000|\
tplink,archer-c2-v3|\
tplink,tl-wr1043nd-v4|\
tplink,tl-wr1043n-v5)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
;;
elecom,wrc-1750ghbk2-i|\
elecom,wrc-300ghbk2-i)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
;;
embeddedwireless,dorin)
ucidef_add_switch "switch0" \
"0@eth0" "1:wan" "2:lan:3" "3:lan:2"
;;
engenius,ews511ap)
ucidef_set_interface_lan "eth0 eth1" "dhcp"
;;
etactica,eg200)
ucidef_set_interface_lan "eth0" "dhcp"
;;
glinet,gl-ar750s)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:2" "3:lan:1" "1:wan"
;;
iodata,etg3-r|\
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr|\
iodata,wn-ac1600dgr2|\
iodata,wn-ag300dgr|\
pcs,cr5000|\
wd,mynet-n750)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
;;
librerouter,librerouter-v1)
ucidef_add_switch "switch0" \
"0@eth0" "5:wan" "6@eth1" "4:lan"
;;
nec,wg1200cr|\
ubnt,nanostation-ac|\
ubnt,unifiac-mesh-pro|\
ubnt,unifiac-pro|\
yuncore,a782|\
yuncore,xd4200)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan" "3:wan"
;;
nec,wg800hp)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
;;
netgear,wndr3700|\
netgear,wndr3700v2|\
netgear,wndr3800)
ucidef_set_interfaces_lan_wan "eth0" "eth1"
ucidef_add_switch "switch0" \
"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5u@eth0"
ucidef_add_switch_attr "switch0" "blinkrate" 2
ucidef_add_switch_port_attr "switch0" 1 led 6
ucidef_add_switch_port_attr "switch0" 2 led 9
ucidef_add_switch_port_attr "switch0" 5 led 2
;;
netgear,wnr612-v2|\
on,n150r|\
tplink,tl-wr740n-v1|\
tplink,tl-wr740n-v3|\
tplink,tl-wr741-v1|\
tplink,tl-wr743nd-v1|\
tplink,tl-wr841-v5|\
tplink,tl-wr941-v4)
ucidef_set_interface_wan "eth0"
ucidef_add_switch "switch0" \
"0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
;;
phicomm,k2t)
ucidef_add_switch "switch0" \
"0@eth0" "3:lan:1" "5:lan:2" "4:wan"
;;
rosinson,wr818)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan" "2:lan" "3:wan"
;;
tplink,archer-a7-v5|\
tplink,archer-c6-v2|\
tplink,archer-c7-v4|\
tplink,archer-c7-v5|\
tplink,tl-wdr3600-v1|\
tplink,tl-wdr4300-v1|\
tplink,tl-wdr4300-v1-il|\
tplink,tl-wdr4310-v1|\
tplink,tl-wr941n-v7-cn)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
;;
tplink,archer-c5-v1|\
tplink,archer-c7-v1|\
tplink,archer-c7-v2|\
tplink,tl-wdr4900-v2)
ucidef_add_switch "switch0" \
"0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
;;
tplink,archer-d50-v1)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
;;
tplink,tl-mr3420-v2|\
tplink,tl-wr740n-v4|\
tplink,tl-wr740n-v5|\
tplink,tl-wr741nd-v4|\
tplink,tl-wr841-v8|\
tplink,tl-wr842n-v2)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
;;
tplink,tl-wr1043nd-v1)
ucidef_add_switch "switch0" \
"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
;;
tplink,tl-wr1043nd-v2|\
tplink,tl-wr1043nd-v3)
ucidef_add_switch "switch0" \
"0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
;;
tplink,tl-wr2543-v1)
ucidef_add_switch "switch0" \
"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
;;
tplink,tl-wr941-v2)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
;;
ubnt,acb-isp)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:1" "3:lan:3" "4:lan:2"
;;
ubnt,routerstation-pro)
ucidef_set_interface_wan "eth0"
ucidef_add_switch "switch0" \
"0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
;;
ubnt,nanostation-m-xw)
ucidef_add_switch "switch0" \
"0@eth0" "5:lan" "1:wan"
;;
zbtlink,zbt-wd323|\
xiaomi,mi-router-4q)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0@eth0" "3:lan:1" "4:lan:2"
;;
*)
ucidef_set_interfaces_lan_wan "eth0" "eth1"
;;
esac
}
ath79_setup_macs()
{
local board="$1"
case "$board" in
avm,fritz300e)
lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
;;
avm,fritz4020)
lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
wan_mac=$(fritz_tffs -n macb -i $(find_mtd_part "tffs (1)"))
;;
dlink,dir-825-b1)
lan_mac=$(mtd_get_mac_text "caldata" 65440)
wan_mac=$(mtd_get_mac_text "caldata" 65460)
;;
dlink,dir-825-c1|\
dlink,dir-835-a1)
lan_mac=$(mtd_get_mac_text "mac" 4)
wan_mac=$(mtd_get_mac_text "mac" 24)
;;
dlink,dir-859-a1|\
nec,wg1200cr|\
wd,mynet-n750)
lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
;;
elecom,wrc-1750ghbk2-i|\
elecom,wrc-300ghbk2-i)
wan_mac=$(macaddr_add "$(mtd_get_mac_binary art 4098)" -2)
;;
engenius,ecb1750)
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
;;
engenius,epg5000|\
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr|\
iodata,wn-ac1600dgr2|\
iodata,wn-ag300dgr)
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
;;
engenius,ews511ap)
lan_mac=$(mtd_get_mac_text "u-boot-env" 233)
eth1_mac=$(macaddr_add "$lan_mac" 1)
ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
;;
iodata,etg3-r)
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
wan_mac=$(macaddr_add "$lan_mac" -1)
;;
jjplus,ja76pf2)
wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n alias/ethaddr)
lan_mac=$(macaddr_add "$wan_mac" 1)
;;
nec,wg800hp)
lan_mac=$(mtd_get_mac_text board_data 640)
wan_mac=$(mtd_get_mac_text board_data 1152)
;;
netgear,wndr3700|\
netgear,wndr3700v2|\
netgear,wndr3800)
lan_mac=$(macaddr_setbit_la "$(mtd_get_mac_binary art 0)")
;;
phicomm,k2t)
lan_mac=$(k2t_get_mac "lan_mac")
wan_mac=$(k2t_get_mac "wan_mac")
;;
rosinson,wr818)
wan_mac=$(mtd_get_mac_binary factory 0)
lan_mac=$(macaddr_setbit_la "$wan_mac")
;;
tplink,archer-a7-v5|\
tplink,archer-c7-v4|\
tplink,archer-c7-v5|\
tplink,tl-wr1043nd-v4|\
tplink,tl-wr1043n-v5)
base_mac=$(mtd_get_mac_binary info 8)
wan_mac=$(macaddr_add "$base_mac" 1)
;;
tplink,tl-wdr3600-v1|\
tplink,tl-wdr4300-v1|\
tplink,tl-wdr4300-v1-il)
base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
wan_mac=$(macaddr_add "$base_mac" 1)
;;
tplink,tl-wr941-v2|\
tplink,tl-wr941n-v7-cn)
base_mac=$(mtd_get_mac_binary u-boot 130048)
wan_mac=$(macaddr_add "$base_mac" 1)
;;
ubnt,routerstation|\
ubnt,routerstation-pro)
wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
lan_mac=$(macaddr_add "$wan_mac" 1)
;;
wd,mynet-wifi-rangeextender)
lan_mac=$(nvram get et0macaddr)
;;
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
}
board_config_update
board=$(board_name)
ath79_setup_interfaces $board
ath79_setup_macs $board
board_config_flush
exit 0

View File

@@ -0,0 +1,55 @@
#!/bin/sh
#
# Copyright (C) 2018 OpenWrt.org
#
. /lib/functions/uci-defaults.sh
board_config_update
board=$(board_name)
case "$board" in
comfast,cf-e5)
ucidef_add_gpio_switch "lte_power" "LTE Power" "14" "1"
ucidef_add_gpio_switch "lte_wakeup" "LTE Wakeup" "11" "1"
ucidef_add_gpio_switch "lte_poweroff" "LTE Poweroff" "1" "1"
ucidef_add_gpio_switch "lte_reset" "LTE Reset" "12" "1"
;;
dlink,dir-825-c1|\
dlink,dir-835-a1)
ucidef_add_gpio_switch "wan_led_auto" "WAN LED Auto" "20" "0"
;;
librerouter,librerouter-v1)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "1" "0"
;;
tplink,archer-c25-v1)
ucidef_add_gpio_switch "led_control" "LED control" "21" "0"
ucidef_add_gpio_switch "led_reset" "LED reset" "19" "1"
;;
tplink,cpe220-v3)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "20"
;;
ubnt,nanostation-ac)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "3"
;;
ubnt,nanostation-m)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "8"
;;
ubnt,nanostation-m-xw)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "2"
;;
ubnt,acb-isp)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "11"
;;
zbtlink,zbt-wd323)
ucidef_add_gpio_switch "io0" "IO#0" "0"
ucidef_add_gpio_switch "io1" "IO#1" "1"
ucidef_add_gpio_switch "io2" "IO#2" "2"
ucidef_add_gpio_switch "io14" "IO#14" "14"
;;
esac
board_config_flush
exit 0

View File

@@ -0,0 +1,240 @@
#!/bin/sh
[ -e /lib/firmware/$FIRMWARE ] && exit 0
. /lib/functions.sh
. /lib/functions/system.sh
ath9k_eeprom_die() {
echo "ath9k eeprom: " "$*"
exit 1
}
ath9k_eeprom_extract() {
local part=$1
local offset=$2
local count=$3
local mtd
mtd=$(find_mtd_chardev $part)
[ -n "$mtd" ] || \
ath9k_eeprom_die "no mtd device found for partition $part"
dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
ath9k_eeprom_die "failed to extract from $mtd"
}
ath9k_eeprom_extract_reverse() {
local part=$1
local offset=$2
local count=$3
local mtd
local reversed
local caldata
mtd=$(find_mtd_chardev "$part")
reversed=$(hexdump -v -s $offset -n $count -e '/1 "%02x "' $mtd)
for byte in $reversed; do
caldata="\x${byte}${caldata}"
done
printf "%b" "$caldata" > /lib/firmware/$FIRMWARE
}
xor() {
local val
local ret="0x$1"
local retlen=${#1}
shift
while [ -n "$1" ]; do
val="0x$1"
ret=$((ret ^ val))
shift
done
printf "%0${retlen}x" "$ret"
}
ath9k_patch_fw_mac() {
local mac=$1
local mac_offset=$2
local chksum_offset=$3
local xor_mac
local xor_fw_mac
local xor_fw_chksum
[ -z "$mac" -o -z "$mac_offset" ] && return
[ -n "$chksum_offset" ] && {
xor_mac=${mac//:/}
xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}"
xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE)
xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}"
xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE)
xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac)
printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \
dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=$chksum_offset count=2
}
macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc oflag=seek_bytes bs=6 seek=$mac_offset count=1
}
ath9k_patch_fw_mac_crc() {
local mac=$1
local mac_offset=$2
local chksum_offset=$((mac_offset - 10))
ath9k_patch_fw_mac "${mac}" "${mac_offset}" "${chksum_offset}"
}
board=$(board_name)
case "$FIRMWARE" in
"ath9k-eeprom-ahb-18100000.wmac.bin")
case $board in
avm,fritz4020)
ath9k_eeprom_extract_reverse "urlader" 5441 1088
;;
dlink,dir-825-c1|\
dlink,dir-835-a1)
ath9k_eeprom_extract "art" 4096 1088
ath9k_patch_fw_mac $(mtd_get_mac_text "mac" 4) 2
;;
dlink,dir-859-a1|\
nec,wg1200cr|\
wd,mynet-n750)
ath9k_eeprom_extract "art" 4096 1088
ath9k_patch_fw_mac $(mtd_get_mac_ascii devdata "wlan24mac") 2
;;
engenius,ecb1750)
ath9k_eeprom_extract "art" 4096 1088
ath9k_patch_fw_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env "athaddr") +1) 2
;;
engenius,epg5000|\
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr|\
iodata,wn-ac1600dgr2|\
iodata,wn-ag300dgr)
ath9k_eeprom_extract "art" 4096 1088
ath9k_patch_fw_mac $(mtd_get_mac_ascii u-boot-env ethaddr) 2
;;
nec,wg800hp)
ath9k_eeprom_extract "art" 4096 1088
ath9k_patch_fw_mac $(mtd_get_mac_text board_data 1664) 2
;;
*)
ath9k_eeprom_die "board $board is not supported yet"
;;
esac
;;
"ath9k-eeprom-pci-0000:00:00.0.bin")
case $board in
avm,fritz300e)
ath9k_eeprom_extract_reverse "urloader" 5441 1088
;;
buffalo,whr-g301n|\
buffalo,wzr-hp-g302h-a1a0|\
tplink,tl-wa701nd-v1|\
tplink,tl-wa730re-v1|\
tplink,tl-wa801nd-v1|\
tplink,tl-wa830re-v1|\
tplink,tl-wa901nd-v1|\
tplink,tl-wr841-v5|\
tplink,tl-wr941-v4)
ath9k_eeprom_extract "art" 4096 3768
;;
buffalo,wzr-hp-g450h|\
ubnt,unifi)
ath9k_eeprom_extract "art" 4096 1088
;;
dlink,dir-825-c1|\
dlink,dir-835-a1)
ath9k_eeprom_extract "art" 20480 1088
ath9k_patch_fw_mac $(macaddr_add $(mtd_get_mac_text "mac" 24) 1) 2
;;
ocedo,raccoon|\
tplink,tl-wdr3500-v1|\
tplink,tl-wdr3600-v1|\
tplink,tl-wdr4300-v1|\
tplink,tl-wdr4300-v1-il|\
tplink,tl-wdr4310-v1|\
tplink,tl-wdr4900-v2|\
winchannel,wb2000)
ath9k_eeprom_extract "art" 20480 1088
;;
netgear,wnr612-v2|\
on,n150r|\
pcs,cap324|\
tplink,tl-mr3220-v1|\
tplink,tl-mr3420-v1|\
tplink,tl-wr2543-v1|\
tplink,tl-wr740n-v1|\
tplink,tl-wr740n-v3|\
tplink,tl-wr741-v1|\
tplink,tl-wr743nd-v1|\
tplink,tl-wr841-v7|\
tplink,tl-wr842n-v1|\
ubnt,airrouter|\
ubnt,bullet-m|\
ubnt,nanostation-loco-m|\
ubnt,nanostation-m|\
ubnt,picostation-m|\
ubnt,rocket-m)
ath9k_eeprom_extract "art" 4096 4096
;;
pqi,air-pen)
ath9k_eeprom_extract "art" 4096 2002
;;
wd,mynet-n750)
ath9k_eeprom_extract "art" 20480 1088
ath9k_patch_fw_mac $(mtd_get_mac_ascii devdata "wlan5mac") 2
;;
wd,mynet-wifi-rangeextender)
ath9k_eeprom_extract "art" 4096 4096
ath9k_patch_fw_mac $(nvram get wl0_hwaddr) 2
;;
*)
ath9k_eeprom_die "board $board is not supported yet"
;;
esac
;;
"ath9k-eeprom-pci-0000:00:11.0.bin")
case $board in
buffalo,wzr-hp-ag300h|\
netgear,wndr3700|\
netgear,wndr3700v2|\
netgear,wndr3800)
ath9k_eeprom_extract "art" 4096 3768
;;
dlink,dir-825-b1)
ath9k_eeprom_extract "caldata" 4096 3768
ath9k_patch_fw_mac_crc $(mtd_get_mac_text "caldata" 65440) 524
;;
*)
ath9k_eeprom_die "board $board is not supported yet"
;;
esac
;;
"ath9k-eeprom-pci-0000:00:12.0.bin")
case $board in
buffalo,wzr-hp-ag300h|\
netgear,wndr3700|\
netgear,wndr3700v2|\
netgear,wndr3800)
ath9k_eeprom_extract "art" 20480 3768
;;
dlink,dir-825-b1)
ath9k_eeprom_extract "caldata" 20480 3768
ath9k_patch_fw_mac_crc $(macaddr_add $(mtd_get_mac_text "caldata" 65460) 1) 524
;;
*)
ath9k_eeprom_die "board $board is not supported yet"
;;
esac
;;
esac

View File

@@ -0,0 +1,223 @@
#!/bin/sh
. /lib/functions/k2t.sh
# xor multiple hex values of the same length
xor() {
local val
local ret="0x$1"
local retlen=${#1}
shift
while [ -n "$1" ]; do
val="0x$1"
ret=$((ret ^ val))
shift
done
printf "%0${retlen}x" "$ret"
}
ath10kcal_die() {
echo "ath10cal: " "$*"
exit 1
}
ath10kcal_from_file() {
local source=$1
local offset=$2
local count=$3
dd if=$source of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
ath10kcal_die "failed to extract calibration data from $source"
}
ath10kcal_extract() {
local part=$1
local offset=$2
local count=$3
local mtd
mtd=$(find_mtd_chardev $part)
[ -n "$mtd" ] || \
ath10kcal_die "no mtd device found for partition $part"
dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
ath10kcal_die "failed to extract calibration data from $mtd"
}
ath10kcal_patch_mac() {
local mac=$1
[ -z "$mac" ] && return
macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc oflag=seek_bytes bs=6 seek=6 count=1
}
ath10kcal_patch_mac_crc() {
local mac=$1
local mac_offset=6
local chksum_offset=2
local xor_mac
local xor_fw_mac
local xor_fw_chksum
xor_fw_mac=$(hexdump -v -n 6 -s $mac_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE)
xor_fw_mac="${xor_fw_mac:0:4} ${xor_fw_mac:4:4} ${xor_fw_mac:8:4}"
ath10kcal_patch_mac "$mac" && {
xor_mac=${mac//:/}
xor_mac="${xor_mac:0:4} ${xor_mac:4:4} ${xor_mac:8:4}"
xor_fw_chksum=$(hexdump -v -n 2 -s $chksum_offset -e '/1 "%02x"' /lib/firmware/$FIRMWARE)
xor_fw_chksum=$(xor $xor_fw_chksum $xor_fw_mac $xor_mac)
printf "%b" "\x${xor_fw_chksum:0:2}\x${xor_fw_chksum:2:2}" | \
dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=$chksum_offset count=2
}
}
[ -e /lib/firmware/$FIRMWARE ] && exit 0
. /lib/functions.sh
. /lib/functions/system.sh
board=$(board_name)
case "$FIRMWARE" in
"ath10k/cal-pci-0000:00:00.0.bin")
case $board in
devolo,dvl1200e|\
devolo,dvl1200i|\
devolo,dvl1750c|\
devolo,dvl1750e|\
devolo,dvl1750i|\
devolo,dvl1750x)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary art 0) -1)
;;
dlink,dir-859-a1)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(mtd_get_mac_ascii devdata "wlan5mac")
;;
elecom,wrc-1750ghbk2-i)
ath10kcal_extract "art" 20480 2116
;;
engenius,ecb1750)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(mtd_get_mac_ascii u-boot-env athaddr)
;;
engenius,epg5000|\
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr2)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1)
;;
engenius,ews511ap)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
;;
glinet,gl-ar750s)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0) +1)
;;
glinet,gl-x750)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0) +2)
;;
nec,wg800hp)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac_crc $(mtd_get_mac_text board_data 2176)
;;
ocedo,koala|\
ocedo,ursus)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(mtd_get_mac_binary art 12)
;;
openmesh,om5p-ac-v2)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
;;
tplink,archer-a7-v5|\
tplink,archer-c2-v3|\
tplink,archer-c7-v4|\
tplink,archer-c7-v5|\
tplink,archer-c25-v1)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary info 8) -1)
;;
tplink,archer-c5-v1|\
tplink,archer-c7-v2)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary u-boot 0x1fc00) -1)
;;
tplink,archer-d50-v1)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary romfile 0xf100) +2)
;;
tplink,re350k-v1)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary config 0x10008) +2)
;;
tplink,re450-v2)
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary info 8) +1)
;;
ubnt,unifiac-lite|\
ubnt,unifiac-lr|\
ubnt,unifiac-mesh|\
ubnt,unifiac-mesh-pro|\
ubnt,lap-120|\
ubnt,nanobeam-ac|\
ubnt,nanostation-ac|\
ubnt,nanostation-ac-loco|\
ubnt,unifiac-pro)
ath10kcal_extract "EEPROM" 20480 2116
;;
yuncore,a770)
ath10kcal_extract "art" 20480 2116
;;
esac
;;
"ath10k/pre-cal-pci-0000:00:00.0.bin")
case $board in
nec,wg1200cr)
ath10kcal_extract "art" 20480 12064
ath10kcal_patch_mac_crc $(mtd_get_mac_ascii devdata wlan5mac)
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
;;
netgear,ex6400|\
netgear,ex7300)
ath10kcal_extract "caldata" 20480 12064
ath10kcal_patch_mac $(mtd_get_mac_binary caldata 12)
;;
phicomm,k2t)
ath10kcal_extract "art" 20480 12064
ath10kcal_patch_mac_crc $(k2t_get_mac "5g_mac")
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
;;
tplink,archer-c58-v1|\
tplink,archer-c59-v1|\
tplink,archer-c60-v1|\
tplink,archer-c60-v2|\
tplink,archer-c60-v3|\
tplink,archer-c6-v2)
ath10kcal_extract "art" 20480 12064
ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary mac 8) -1)
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
;;
yuncore,a782|\
yuncore,xd4200)
ath10kcal_extract "art" 20480 12064
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
;;
esac
;;
*)
exit 1
;;
esac

View File

@@ -0,0 +1,51 @@
#!/bin/sh
WIFI_PATH_CHANGED=0
. /lib/functions.sh
migrate_wifi_path() {
local section="$1"
local path
config_get path ${section} path
case ${path} in
"pci0000:01/0000:01:00.0")
board=$(board_name)
case "$board" in
tplink,archer-c7-v1|\
tplink,archer-c7-v2)
path="pci0000:00/0000:00:00.0"
WIFI_PATH_CHANGED=1
;;
*)
return 0
;;
esac
;;
"platform/ahb/ahb:apb/18100000.wmac"|\
"platform/ar933x_wmac"|\
"platform/ar934x_wmac"|\
"platform/qca953x_wmac"|\
"platform/qca955x_wmac"|\
"platform/qca956x_wmac")
path="platform/ahb/18100000.wmac"
WIFI_PATH_CHANGED=1
;;
*)
return 0
;;
esac
uci set wireless.${section}.path=${path}
}
[ "${ACTION}" = "add" ] && {
[ ! -e /etc/config/wireless ] && return 0
config_load wireless
config_foreach migrate_wifi_path wifi-device
[ "${WIFI_PATH_CHANGED}" = "1" ] && uci commit wireless
}

View File

@@ -0,0 +1,36 @@
#!/bin/ash
[ "$ACTION" == "add" ] || exit 0
PHYNBR=${DEVPATH##*/phy}
[ -n $PHYNBR ] || exit 0
. /lib/functions.sh
. /lib/functions/system.sh
. /lib/functions/k2t.sh
board=$(board_name)
case "$board" in
iodata,wn-ag300dgr)
# There is no eeprom data for 5 GHz wlan in "art" partition
# which would allow to patch the macaddress
[ "$PHYNBR" -eq 1 ] && \
echo $(macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" 1) > /sys${DEVPATH}/macaddress
;;
iodata,wn-ac1600dgr)
# There is no eeprom data for 5 GHz wlan in "art" partition
# which would allow to patch the macaddress
[ "$PHYNBR" -eq 0 ] && \
echo $(macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" 1) > /sys${DEVPATH}/macaddress
;;
phicomm,k2t)
# The K2T factory firmware does use LAN mac address as the 2.4G wifi mac address
[ "$PHYNBR" -eq 1 ] && \
echo $(k2t_get_mac "lan_mac") > /sys${DEVPATH}/macaddress
;;
*)
;;
esac

View File

@@ -0,0 +1,39 @@
#!/bin/sh
. /lib/functions.sh
. /lib/functions/migrations.sh
board=$(board_name)
boardonly="${board##*,}"
case "$board" in
engenius,epg5000)
migrate_leds ":wlan-2g=:wlan2g" ":wlan-5g=:wlan5g"
;;
pcs,cap324)
migrate_leds "lan:amber=amber:lan" "lan:green=green:lan"
;;
tplink,archer-c25-v1|\
tplink,archer-c58-v1|\
tplink,archer-c59-v1|\
tplink,archer-c7-v4|\
tplink,archer-c7-v5|\
tplink,tl-wr802n-v2)
migrate_leds "^$boardonly:=tp-link:"
;;
tplink,archer-c7-v2|\
tplink,tl-wdr3600-v1|\
tplink,tl-wdr4300-v1|\
tplink,tl-wdr4300-v1-il|\
tplink,tl-wdr4310-v1|\
tplink,tl-wr802n-v1)
migrate_leds ":blue:=:green:"
;;
wd,mynet-n750)
migrate_leds "wd:=mynet-n750:"
;;
esac
migrations_apply system
exit 0

View File

@@ -0,0 +1,55 @@
#!/bin/sh
#
# Copyright (C) 2018 Weijie Gao <hackpascal@gmail.com>
#
# Helper function to extract mac addresses from mtd part for Phicomm K2T
#
. /lib/functions.sh
. /lib/functions/system.sh
. /usr/share/libubox/jshn.sh
k2t_config_load() {
local mtd_blk=$(find_mtd_part config)
if [ -z "$mtd_blk" ]; then
echo "k2t_config_load: no mtd part named config" >&2
exit 1
fi
local json_size=$(dd if=$mtd_blk bs=1 count=8 2>/dev/null)
json_size="0x$json_size"
json_size=$((json_size))
if [ "$?" -ne 0 ]; then
echo "k2t_config_load: invalid json data size" >&2
exit 2
fi
if [ "$json_size" -eq 0 ]; then
echo "k2t_config_load: empty json data" >&2
exit 3
fi
local json_data=$(dd if=$mtd_blk bs=1 skip=8 count=$json_size 2>/dev/null)
json_load "$json_data"
}
k2t_get_mac() {
local old_ns
json_set_namespace "k2t" old_ns
if k2t_config_load; then
json_select "this_dev_info"
json_get_var val "$1"
json_select ..
fi
json_set_namespace old_ns
echo $val
}

View File

@@ -0,0 +1,54 @@
#
# Copyright (C) 2011 OpenWrt.org
#
PART_NAME=firmware
REQUIRE_IMAGE_METADATA=1
redboot_fis_do_upgrade() {
local append
local sysup_file="$1"
local kern_part="$2"
local magic=$(get_magic_word "$sysup_file")
if [ "$magic" = "4349" ]; then
local kern_length=0x$(dd if="$sysup_file" bs=2 skip=1 count=4 2>/dev/null)
[ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
dd if="$sysup_file" bs=64k skip=1 2>/dev/null | \
mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
elif [ "$magic" = "7379" ]; then
local board_dir=$(tar tf $sysup_file | grep -m 1 '^sysupgrade-.*/$')
local kern_length=$(tar xf $sysup_file ${board_dir}kernel -O | wc -c)
[ -f "$UPGRADE_BACKUP" ] && append="-j $UPGRADE_BACKUP"
tar xf $sysup_file ${board_dir}kernel ${board_dir}root -O | \
mtd -r $append -F$kern_part:$kern_length:0x80060000,rootfs write - $kern_part:rootfs
else
echo "Unknown image, aborting!"
return 1
fi
}
platform_check_image() {
return 0
}
platform_do_upgrade() {
local board=$(board_name)
case "$board" in
jjplus,ja76pf2)
redboot_fis_do_upgrade "$1" linux
;;
ubnt,routerstation|\
ubnt,routerstation-pro)
redboot_fis_do_upgrade "$1" kernel
;;
*)
default_do_upgrade "$1"
;;
esac
}

View File

@@ -0,0 +1,233 @@
CONFIG_AG71XX=y
# CONFIG_AG71XX_DEBUG is not set
CONFIG_AG71XX_DEBUG_FS=y
CONFIG_AR8216_PHY=y
CONFIG_AR8216_PHY_LEDS=y
CONFIG_ARCH_BINFMT_ELF_STATE=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL is not set
CONFIG_ARCH_HAS_RESET_CONTROLLER=y
# CONFIG_ARCH_HAS_SG_CHAIN is not set
# CONFIG_ARCH_HAS_STRICT_KERNEL_RWX is not set
# CONFIG_ARCH_HAS_STRICT_MODULE_RWX is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_ARCH_MMAP_RND_BITS_MAX=15
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set
# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_ATH79=y
CONFIG_ATH79_WDT=y
CONFIG_CEVT_R4K=y
CONFIG_CLKDEV_LOOKUP=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
CONFIG_CMDLINE_BOOL=y
# CONFIG_CMDLINE_OVERRIDE is not set
CONFIG_COMMON_CLK=y
# CONFIG_COMMON_CLK_BOSTON is not set
CONFIG_CPU_BIG_ENDIAN=y
CONFIG_CPU_GENERIC_DUMP_TLB=y
CONFIG_CPU_HAS_PREFETCH=y
CONFIG_CPU_HAS_RIXI=y
CONFIG_CPU_HAS_SYNC=y
CONFIG_CPU_MIPS32=y
CONFIG_CPU_MIPS32_R2=y
CONFIG_CPU_MIPSR2=y
CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y
CONFIG_CPU_R4K_CACHE_TLB=y
CONFIG_CPU_R4K_FPU=y
CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_HIGHMEM=y
CONFIG_CPU_SUPPORTS_MSA=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CSRC_R4K=y
CONFIG_DMA_NONCOHERENT=y
CONFIG_DTC=y
CONFIG_EARLY_PRINTK=y
CONFIG_ETHERNET_PACKET_MANGLE=y
CONFIG_FIXED_PHY=y
CONFIG_GENERIC_ATOMIC64=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_GENERIC_IO=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_PHY=y
CONFIG_GENERIC_PINCONF=y
CONFIG_GENERIC_PINCTRL_GROUPS=y
CONFIG_GENERIC_PINMUX_FUNCTIONS=y
CONFIG_GENERIC_SCHED_CLOCK=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_74X164=y
CONFIG_GPIO_ATH79=y
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_SYSFS=y
# CONFIG_GRO_CELLS is not set
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDWARE_WATCHPOINTS=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
# CONFIG_HAVE_ARCH_BITREVERSE is not set
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_HAVE_CBPF_JIT=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_COPY_THREAD_TLS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_HAVE_DEBUG_KMEMLEAK=y
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_HAVE_IDE=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_HAVE_NET_DSA=y
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HW_HAS_PCI=y
CONFIG_HZ_PERIODIC=y
CONFIG_IMAGE_CMDLINE_HACK=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_IRQCHIP=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_IRQ_MIPS_CPU=y
CONFIG_IRQ_WORK=y
CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_RESET is not set
CONFIG_LIBFDT=y
CONFIG_MDIO_BITBANG=y
CONFIG_MDIO_BUS=y
CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_GPIO=y
CONFIG_MFD_SYSCON=y
CONFIG_MIPS=y
CONFIG_MIPS_ASID_BITS=8
CONFIG_MIPS_ASID_SHIFT=0
CONFIG_MIPS_CLOCK_VSYSCALL=y
# CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set
# CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set
# CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set
CONFIG_MIPS_CMDLINE_FROM_DTB=y
# CONFIG_MIPS_ELF_APPENDED_DTB is not set
# CONFIG_MIPS_HUGE_TLB_SUPPORT is not set
CONFIG_MIPS_L1_CACHE_SHIFT=5
# CONFIG_MIPS_MACHINE is not set
# CONFIG_MIPS_NO_APPENDED_DTB is not set
CONFIG_MIPS_RAW_APPENDED_DTB=y
CONFIG_MIPS_SPRAM=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_GEOMETRY=y
# CONFIG_MTD_CFI_I2 is not set
# CONFIG_MTD_CFI_INTELEXT is not set
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_M25P80=y
# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
CONFIG_MTD_PARSER_CYBERTAN=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_SPLIT_FIRMWARE=y
CONFIG_MTD_SPLIT_LZMA_FW=y
CONFIG_MTD_SPLIT_SEAMA_FW=y
CONFIG_MTD_SPLIT_TPLINK_FW=y
CONFIG_MTD_SPLIT_UIMAGE_FW=y
CONFIG_MTD_TPLINK_PARTS=y
CONFIG_MTD_VIRT_CONCAT=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
# CONFIG_NO_IOPORT_MAP is not set
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_EARLY_FLATTREE=y
CONFIG_OF_FLATTREE=y
CONFIG_OF_GPIO=y
CONFIG_OF_IRQ=y
CONFIG_OF_MDIO=y
CONFIG_OF_NET=y
CONFIG_PCI_DRIVERS_LEGACY=y
CONFIG_PERF_USE_VMALLOC=y
CONFIG_PGTABLE_LEVELS=2
CONFIG_PHYLIB=y
# CONFIG_PHY_AR7100_USB is not set
# CONFIG_PHY_AR7200_USB is not set
CONFIG_PINCTRL=y
CONFIG_RATIONAL=y
# CONFIG_RCU_NEED_SEGCBLIST is not set
# CONFIG_RCU_STALL_COMMON is not set
CONFIG_REGMAP=y
CONFIG_REGMAP_MMIO=y
CONFIG_RESET_ATH79=y
CONFIG_RESET_CONTROLLER=y
# CONFIG_SCHED_INFO is not set
# CONFIG_SCSI_DMA is not set
# CONFIG_SERIAL_8250_FSL is not set
CONFIG_SERIAL_8250_NR_UARTS=1
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
CONFIG_SERIAL_AR933X=y
CONFIG_SERIAL_AR933X_CONSOLE=y
CONFIG_SERIAL_AR933X_NR_UARTS=2
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SPI=y
CONFIG_SPI_ATH79=y
CONFIG_SPI_BITBANG=y
CONFIG_SPI_GPIO=y
CONFIG_SPI_MASTER=y
# CONFIG_SPI_RB4XX is not set
CONFIG_SRCU=y
CONFIG_SWCONFIG=y
CONFIG_SWCONFIG_LEDS=y
CONFIG_SWPHY=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_SYS_HAS_CPU_MIPS32_R2=y
CONFIG_SYS_HAS_EARLY_PRINTK=y
CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
CONFIG_SYS_SUPPORTS_MIPS16=y
CONFIG_SYS_SUPPORTS_ZBOOT=y
CONFIG_SYS_SUPPORTS_ZBOOT_UART_PROM=y
CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_TINY_SRCU=y
CONFIG_USB_SUPPORT=y
CONFIG_USE_OF=y

View File

@@ -0,0 +1,217 @@
// 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 "ar9344.dtsi"
/ {
compatible = "iodata,wn-ag300dgr", "qca,ar9344";
model = "I-O DATA WN-AG300DGR";
aliases {
led-boot = &router;
led-failsafe = &router;
led-running = &router;
led-upgrade = &router;
};
leds {
compatible = "gpio-leds";
router: router {
label = "wn-ag300dgr:green:router";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
default-state = "on";
};
children {
label = "wn-ag300dgr:green:children";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
eco {
label = "wn-ag300dgr:green:eco";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
notification {
label = "wn-ag300dgr:amber:notification";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
wlan2g {
label = "wn-ag300dgr:green:wlan2g";
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
wlan5g {
label = "wn-ag300dgr:green:wlan5g";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
eco {
label = "eco";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
linux,code = <BTN_1>;
debounce-interval = <60>;
};
router {
label = "router";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
linux,code = <BTN_0>;
linux,input-type = <EV_SW>;
debounce-interval = <60>;
};
auto {
label = "auto";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
linux,code = <BTN_0>;
linux,input-type = <EV_SW>;
debounce-interval = <60>;
};
wps {
label = "wps";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
debounce-interval = <60>;
};
reset {
label = "reset";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
debounce-interval = <60>;
};
children {
label = "children";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
linux,code = <BTN_1>;
debounce-interval = <60>;
};
};
};
&ref {
clock-frequency = <25000000>;
};
&spi {
num-cs = <1>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x030000>;
read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x030000 0x010000>;
read-only;
};
partition@40000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x040000 0xf10000>;
};
partition@f50000 {
label = "manufacture";
reg = <0xf50000 0x40000>;
read-only;
};
partition@f90000 {
label = "backup";
reg = <0xf90000 0x10000>;
read-only;
};
partition@fa0000 {
label = "storage";
reg = <0xfa0000 0x50000>;
read-only;
};
partition@ff0000 {
label = "art";
reg = <0xff0000 0x010000>;
read-only;
};
};
};
};
&mdio0 {
status = "okay";
phy0: ethernet-phy@0 {
reg = <0>;
phy-mode = "rgmii";
qca,ar8327-initvals = <
0x04 0x07a00000 /* PORT0 PAD MODE CTRL */
0x7c 0x000000fe /* PORT0_STATUS */
>;
};
};
&eth0 {
status = "okay";
pll-data = <0x06000000 0x00000101 0x00001616>;
phy-mode = "rgmii";
phy-handle = <&phy0>;
gmac-config {
device = <&gmac>;
rgmii-gmac0 = <1>;
};
};
&pcie {
status = "okay";
};
&uart {
status = "okay";
};
&usb {
status = "okay";
};
&usb_phy {
status = "okay";
};
&wmac {
status = "okay";
qca,no-eeprom;
};

View File

@@ -0,0 +1,221 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/clock/ath79-clk.h>
#include "ath79.dtsi"
/ {
compatible = "qca,ar7100";
chosen {
bootargs = "console=ttyS0,115200";
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "mips,mips24Kc";
clocks = <&pll ATH79_CLK_CPU>;
reg = <0>;
};
};
ahb {
apb {
ddr_ctrl: memory-controller@18000000 {
compatible = "qca,ar7100-ddr-controller";
reg = <0x18000000 0x100>;
#qca,ddr-wb-channel-cells = <1>;
};
uart: uart@18020000 {
compatible = "ns16550a";
reg = <0x18020000 0x20>;
interrupts = <3>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "uart";
reg-io-width = <4>;
reg-shift = <2>;
no-loopback-test;
status = "disabled";
};
usb_phy: usb-phy@18030000 {
compatible = "qca,ar7100-usb-phy";
reg = <0x18030000 0x10>;
reset-names = "usb-phy", "usb-host", "usb-ohci-dll";
resets = <&rst 4>, <&rst 5>, <&rst 6>;
#phy-cells = <0>;
status = "disabled";
};
gpio: gpio@18040000 {
compatible = "qca,ar7100-gpio";
reg = <0x18040000 0x30>;
interrupts = <2>;
ngpios = <16>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
pll: pll-controller@18050000 {
compatible = "qca,ar7100-pll", "syscon";
reg = <0x18050000 0x20>;
clock-names = "ref";
/* The board must provides the ref clock */
#clock-cells = <1>;
clock-output-names = "cpu", "ddr", "ahb";
};
wdt: wdt@18060008 {
compatible = "qca,ar7130-wdt";
reg = <0x18060008 0x8>;
interrupts = <4>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "wdt";
};
pci_intc: interrupt-controller@18060018 {
compatible = "qca,ar7100-misc-intc";
reg = <0x18060018 0x4>;
interrupt-parent = <&cpuintc>;
interrupts = <2>;
interrupt-controller;
#interrupt-cells = <1>;
};
rst: reset-controller@18060024 {
compatible = "qca,ar7100-reset";
reg = <0x18060024 0x4>;
#reset-cells = <1>;
};
pcie0: pcie-controller@17010000 {
compatible = "qca,ar7100-pci";
#address-cells = <3>;
#size-cells = <2>;
bus-range = <0x0 0x0>;
reg = <0x17010000 0x100>;
reg-names = "cfg_base";
ranges = <0x2000000 0 0x10000000 0x10000000 0 0x07000000 /* pci memory */
0x1000000 0 0x00000000 0x0000000 0 0x000001>; /* io space */
interrupt-parent = <&pci_intc>;
interrupts = <4>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xf800 0 0 0>;
interrupt-map = <0x8800 0 0 0 &pci_intc 0
0x9000 0 0 0 &pci_intc 1
0x9800 0 0 0 &pci_intc 2>;
status = "disabled";
};
};
};
usb2: usb@1b000000 {
compatible = "generic-ehci";
reg = <0x1b000000 0x1000>;
interrupt-parent = <&cpuintc>;
interrupts = <3>;
phy-names = "usb-phy";
phys = <&usb_phy>;
has-synopsys-hc-bug;
status = "disabled";
};
usb1: usb@1c000000 {
compatible = "generic-ohci";
reg = <0x1c000000 0x1000>;
interrupt-parent = <&miscintc>;
interrupts = <6>;
phy-names = "usb-phy";
phys = <&usb_phy>;
status = "disabled";
};
spi: spi@1f000000 {
compatible = "qca,ar7100-spi";
reg = <0x1f000000 0x10>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "ahb";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
};
&cpuintc {
qca,ddr-wb-channel-interrupts = <2>, <3>, <4>, <5>;
qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>,
<&ddr_ctrl 0>, <&ddr_ctrl 1>;
};
&miscintc {
compatible = "qca,ar7100-misc-intc";
};
&eth0 {
compatible = "qca,ar7100-eth", "syscon";
reg = <0x19000000 0x200
0x18070000 0x4>;
pll-data = <0x00110000 0x00001099 0x00991099>;
pll-reg = <0x4 0x10 17>;
pll-handle = <&pll>;
phy-mode = "rgmii";
resets = <&rst 9>;
reset-names = "mac";
qca,mac-idx = <0>;
};
&mdio1 {
builtin-switch;
};
&eth1 {
compatible = "qca,ar7100-eth", "syscon";
reg = <0x1a000000 0x200
0x18070004 0x4>;
pll-data = <0x00110000 0x00001099 0x00991099>;
pll-reg = <0x4 0x14 19>;
pll-handle = <&pll>;
phy-mode = "rgmii";
resets = <&rst 13>;
reset-names = "mac";
qca,mac-idx = <1>;
};

View File

@@ -0,0 +1,190 @@
// 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 "ar7100.dtsi"
/ {
compatible = "aruba,ap-105", "qca,ar7161";
model = "Aruba AP-105";
chosen {
bootargs = "console=ttyS0,9600";
};
aliases {
led-boot = &power_green;
led-failsafe = &power_red;
led-running = &power_green;
led-upgrade = &power_green;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-output-names = "ref";
clock-frequency = <40000000>;
};
leds {
compatible = "gpio-leds";
power_green: power_green {
label = "ap-105:green:power";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
power_red: power_red {
label = "ap-105:red:power";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
panic-indicator;
};
wifi_2g_red: wifi_2g_red {
label = "ap-105:red:wlan2g";
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
};
wifi_5g_red: wifi_5g_red {
label = "ap-105:red:wlan5g";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
};
ath9k-leds {
compatible = "gpio-leds";
wifi_2g_green {
label = "ap-105:green:wlan2g";
gpios = <&ath9k0 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
wifi_5g_green {
label = "ap-105:green:wlan5g";
gpios = <&ath9k1 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
};
};
i2c {
compatible = "i2c-gpio";
sda-gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
scl-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
/* can be removed on 4.19 */
gpios = <&gpio 5 GPIO_ACTIVE_LOW>,
<&gpio 4 GPIO_ACTIVE_LOW>;
#address-cells = <1>;
#size-cells = <0>;
tpm@29 {
compatible = "atmel,at97sc3203s";
reg = <0x29>;
/* triggering it, will also kill system */
reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
};
};
};
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 { /* 2.4 GHz */
compatible = "pci168c,0029";
mtd-mac-address = <&hwinfo 0x1c>;
mtd-mac-address-increment = <1>;
reg = <0x8800 0 0 0 0>;
#gpio-cells = <2>;
gpio-controller;
};
ath9k1: wifi@0,12 { /* 5 GHz */
compatible = "pci168c,0029";
mtd-mac-address = <&hwinfo 0x1c>;
mtd-mac-address-increment = <2>;
reg = <0x9000 0 0 0 0>;
#gpio-cells = <2>;
gpio-controller;
};
};
&uart {
status = "okay";
};
&mdio0 {
status = "okay";
phy-mask = <0x1>;
phy0: ethernet-phy@0 {
reg = <0>;
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&hwinfo 0x1c>;
pll-data = <0x00110000 0x00001099 0x00991099>;
phy-mode = "rgmii";
phy-handle = <&phy0>;
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x40000>;
read-only;
};
partition@40000 {
label = "firmware";
reg = <0x40000 0xfa0000>;
compatible = "denx,uimage";
};
hwinfo: partition@fe0000 {
label = "hwinfo";
reg = <0xfe0000 0x10000>;
read-only;
};
partition@ff0000 {
label = "u-boot-env";
reg = <0xff0000 0x10000>;
read-only;
};
};
};
};

View File

@@ -0,0 +1,273 @@
// 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 "ar7100.dtsi"
/ {
compatible = "buffalo,wzr-hp-ag300h", "qca,ar7161";
model = "Buffalo WZR-HP-AG300H/WZR-600DHP";
aliases {
led-boot = &diag;
led-failsafe = &diag;
led-upgrade = &diag;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-output-names = "ref";
clock-frequency = <40000000>;
};
gpio-leds {
compatible = "gpio-leds";
diag: diag {
label = "buffalo:red:diag";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
};
ath9k-leds {
// those leds are indeed attached to the wifi chips
compatible = "gpio-leds";
band2g_a {
label = "buffalo:amber:band2g";
gpios = <&ath9k0 1 GPIO_ACTIVE_LOW>;
};
usb {
label = "buffalo:green:usb";
gpios = <&ath9k0 3 GPIO_ACTIVE_LOW>;
trigger-sources = <&usb_ochi_port>, <&usb_echi_port>;
linux,default-trigger = "usbport";
};
band2g_g {
label = "buffalo:green:band2g";
gpios = <&ath9k0 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
band5g_g {
label = "buffalo:green:band5g";
gpios = <&ath9k1 1 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};
router {
label = "buffalo:green:router";
gpios = <&ath9k1 3 GPIO_ACTIVE_LOW>;
};
movie_engine {
label = "buffalo:blue:movie_engine";
gpios = <&ath9k1 4 GPIO_ACTIVE_LOW>;
};
band5g_a {
label = "buffalo:amber:band5g";
gpios = <&ath9k1 5 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
usb {
linux,code = <BTN_2>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
aoss {
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
router_auto {
linux,code = <BTN_6>;
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
router_off {
linux,code = <BTN_5>;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
movie_engine {
linux,code = <BTN_7>;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
gpio-export {
compatible = "gpio-export";
gpio_usb_power {
gpio-export,name = "buffalo:power:usb";
gpio-export,output = <1>;
gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
};
};
flash {
compatible = "mtd-concat";
devices = <&flash0 &flash1>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0000000 0x0040000>;
read-only;
};
partition@40000 {
label = "u-boot-env";
reg = <0x0040000 0x0010000>;
read-only;
};
art: partition@50000 {
label = "art";
reg = <0x0050000 0x0010000>;
read-only;
};
partition@60000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x0060000 0x1f90000>;
};
partition@1ff0000 {
label = "user_property";
reg = <0x1ff0000 0x0010000>;
read-only;
};
};
};
};
&usb_phy {
status = "okay";
};
&usb1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
usb_ochi_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb2 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
usb_echi_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
};
ath9k1: wifi@0,12 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
};
};
&uart {
status = "okay";
};
&pll {
clocks = <&extosc>;
};
&spi {
status = "okay";
num-cs = <2>;
cs-gpios = <0>, <0>;
flash0: flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <104000000>;
m25p,fast-read;
};
flash1: flash@1 {
compatible = "jedec,spi-nor";
reg = <1>;
spi-max-frequency = <104000000>;
m25p,fast-read;
};
};
&mdio0 {
status = "okay";
phy4: ethernet-phy@4 {
reg = <4>;
phy-mode = "rgmii";
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&art 0x120c>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&eth1 {
status = "okay";
mtd-mac-address = <&art 0x520c>;
mtd-mac-address-increment = <1>;
phy-handle = <&phy4>;
};

View File

@@ -0,0 +1,237 @@
// 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 "ar7100.dtsi"
/ {
compatible = "dlink,dir-825-b1", "qca,ar7161";
model = "D-Link DIR825B1";
aliases {
led-boot = &orange_power;
led-failsafe = &orange_power;
led-running = &blue_power;
led-upgrade = &orange_power;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-output-names = "ref";
clock-frequency = <40000000>;
};
leds {
compatible = "gpio-leds";
blue_usb {
label = "d-link:blue:usb";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
trigger-sources = <&usb_ochi_port>, <&usb_echi_port>;
linux,default-trigger = "usbport";
};
orange_power: orange_power {
label = "d-link:orange:power";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
default-state = "on";
};
blue_power: blue_power {
label = "d-link:blue:power";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
blue_wps {
label = "d-link:blue:wps";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
};
orange_planet {
label = "d-link:orange:planet";
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
};
blue_planet {
label = "d-link:blue:planet";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
};
ath9k-leds {
compatible = "gpio-leds";
wlan2g {
label = "d-link:blue:wlan2g";
gpios = <&ath9k0 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
wlan5g {
label = "d-link:blue:wlan5g";
gpios = <&ath9k1 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
rtl8366s {
compatible = "realtek,rtl8366s";
gpio-sda = <&gpio 5 GPIO_ACTIVE_HIGH>;
gpio-sck = <&gpio 7 GPIO_ACTIVE_HIGH>;
realtek,initvals = <0x06 0x0108>;
mdio-bus {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
phy-mask = <0x10>;
phy4: ethernet-phy@4 {
reg = <4>;
phy-mode = "rgmii";
};
};
};
};
&usb1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
usb_ochi_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb2 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
usb_echi_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
};
ath9k1: wifi@0,12 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
};
};
&uart {
status = "okay";
};
&pll {
clocks = <&extosc>;
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x040000>;
read-only;
};
partition@40000 {
label = "config";
reg = <0x040000 0x010000>;
read-only;
};
partition@50000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x050000 0x610000>;
};
caldata: partition@60000 {
label = "caldata";
reg = <0x660000 0x010000>;
read-only;
};
partition@670000 {
label = "unknown";
reg = <0x670000 0x190000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
pll-data = <0x11110000 0x00001099 0x00991099>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&eth1 {
status = "okay";
pll-data = <0x11110000 0x00001099 0x00991099>;
phy-handle = <&phy4>;
};

View File

@@ -0,0 +1,126 @@
// 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 "ar7100.dtsi"
/ {
model = "jjPlus JA76PF2";
compatible = "jjplus,ja76pf2", "qca,ar7161";
memory@0 {
device_type = "memory";
reg = <0x0 0x4000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
aliases {
led-boot = &d2;
led-failsafe = &d2;
led-running = &d2;
led-upgrade = &d2;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-output-names = "ref";
clock-frequency = <40000000>;
};
leds {
compatible = "gpio-leds";
d2: d2 {
label = "ja76pf2:green:d2";
gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
};
d3 {
label = "ja76pf2:green:d3";
gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
};
d4 {
label = "ja76pf2:green:d4";
gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
sw1 {
label = "sw1";
linux,code = <KEY_RESTART>;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
sw2 {
label = "sw2";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
};
&mdio0 {
status = "okay";
phy-mask = <0x1>;
phy0: ethernet-phy@0 {
reg = <0>;
phy-mode = "rgmii";
};
phy4: ethernet-phy@4 {
reg = <4>;
phy-mode = "rgmii";
};
};
&eth0 {
status = "okay";
phy-handle = <&phy0>;
};
&eth1 {
status = "okay";
phy-handle = <&phy4>;
};
&pcie0 {
status = "okay";
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
#address-cells = <1>;
#size-cells = <1>;
compatible = "ecoscentric,redboot-fis-partitions";
};
};
};
&uart {
status = "okay";
};

View File

@@ -0,0 +1,55 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7161_netgear_wndr3700.dtsi"
/ {
compatible = "netgear,wndr3700", "qca,ar7161";
model = "Netgear WNDR3700";
};
&partitions {
partition@0 {
label = "u-boot";
reg = <0x000000 0x050000>;
read-only;
};
partition@50000 {
label = "u-boot-env";
reg = <0x050000 0x020000>;
};
partition@70000 {
label = "firmware";
reg = <0x070000 0x780000>;
compatible = "netgear,uimage";
};
art: partition@7f0000 {
label = "art";
reg = <0x7f0000 0x010000>;
read-only;
};
};
&ath9k1 {
/* The original WNDR3700(v1) variant have four antennae dedicated
* to the 5GHz radio as well. Again, two antennae are available for
* each chain to switch between. The following configuration is the
* default setting which taken from the vendor's wifi
* code for that radio.
*
* All possible options [GPIO6,GPIO7,GPIO8,GPIO9]:
* [0,1,0,1], [0,1,1,0], [1,0,0,1], [1,0,1,0]
*/
antenna-demux {
gpio-hog;
line-name = "fixed antenna group 2";
gpios = <6 GPIO_ACTIVE_LOW>,
<7 GPIO_ACTIVE_HIGH>,
<8 GPIO_ACTIVE_HIGH>,
<9 GPIO_ACTIVE_LOW>;
output-high;
};
};

View File

@@ -0,0 +1,230 @@
// 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 "ar7100.dtsi"
/ {
aliases {
led-boot = &power_orange;
led-failsafe = &power_orange;
led-running = &power_green;
led-upgrade = &power_orange;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-output-names = "ref";
clock-frequency = <40000000>;
};
reset-leds {
compatible = "reset-leds";
usb_led {
label = "netgear:green:usb";
resets = <&rst 12>;
trigger-sources = <&usb_ochi_port>, <&usb_echi_port>;
linux,default-trigger = "usbport";
};
};
gpio-leds {
compatible = "gpio-leds";
wps {
label = "netgear:orange:wps";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
power_green: power_green {
label = "netgear:green:power";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
power_orange: power_orange {
label = "netgear:orange:power";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
default-state = "on";
};
wps_green {
label = "netgear:green:wps";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
};
wan_green {
label = "netgear:green:wan";
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
};
};
ath9k-leds {
compatible = "gpio-leds";
wlan2g {
label = "netgear:green:wlan2g";
gpios = <&ath9k0 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
wlan5g {
label = "netgear:blue:wlan5g";
gpios = <&ath9k1 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};
};
keys {
compatible = "gpio-keys";
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
};
rfkill {
label = "rfkill";
linux,code = <KEY_RFKILL>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
};
rtl8366s {
compatible = "realtek,rtl8366s";
gpio-sda = <&gpio 5 GPIO_ACTIVE_HIGH>;
gpio-sck = <&gpio 7 GPIO_ACTIVE_HIGH>;
mdio-bus {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
phy-mask = <0x10>;
phy4: ethernet-phy@4 {
reg = <4>;
phy-mode = "rgmii";
};
};
};
};
&usb_phy {
status = "okay";
};
&usb1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
usb_ochi_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb2 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
usb_echi_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0x10000>;
mtd-mac-address = <&art 0x0>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
/* all WNDR3700 variants have four antennae dedicated
* to the 2.4GHz radio. Two antennae are available for
* each chain. The following configuration is the
* default setting which taken from the vendor's wifi
* code for that radio.
*
* All possible options [GPIO6,GPIO7,GPIO8,GPIO9]:
* [0,1,0,1], [0,1,1,0], [1,0,0,1], [1,0,1,0]
*/
antenna-demux {
gpio-hog;
line-name = "fixed antenna group 1";
gpios = <6 GPIO_ACTIVE_LOW>,
<7 GPIO_ACTIVE_HIGH>,
<8 GPIO_ACTIVE_LOW>,
<9 GPIO_ACTIVE_HIGH>;
output-high;
};
};
ath9k1: wifi@0,12 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0x10000>;
mtd-mac-address = <&art 0xc>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
};
};
&uart {
status = "okay";
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions: partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
};
};
};
&eth0 {
status = "okay";
pll-data = <0x11110000 0x00001099 0x00991099>;
mtd-mac-address = <&art 0x00>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&eth1 {
status = "okay";
pll-data = <0x11110000 0x00001099 0x00991099>;
mtd-mac-address = <&art 0x06>;
phy-handle = <&phy4>;
};

View File

@@ -0,0 +1,34 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7161_netgear_wndr3700.dtsi"
/ {
compatible = "netgear,wndr3700v2", "qca,ar7161";
model = "Netgear WNDR3700v2";
};
&partitions {
partition@0 {
label = "u-boot";
reg = <0x000000 0x050000>;
read-only;
};
partition@50000 {
label = "u-boot-env";
reg = <0x050000 0x020000>;
};
partition@70000 {
label = "firmware";
reg = <0x070000 0xf80000>;
compatible = "netgear,uimage";
};
art: partition@ff0000 {
label = "art";
reg = <0xff0000 0x010000>;
read-only;
};
};

View File

@@ -0,0 +1,36 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7161_netgear_wndr3700.dtsi"
/ {
compatible = "netgear,wndr3800", "qca,ar7161";
model = "Netgear WNDR3800";
};
&partitions {
partition@0 {
label = "u-boot";
reg = <0x000000 0x050000>;
read-only;
};
partition@50000 {
label = "u-boot-env";
reg = <0x050000 0x020000>;
read-only;
};
partition@70000 {
label = "firmware";
reg = <0x070000 0xf80000>;
compatible = "netgear,uimage";
};
art: partition@ff0000 {
label = "art";
reg = <0xff0000 0x010000>;
read-only;
};
};

View File

@@ -0,0 +1,31 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7161_ubnt_routerstation.dtsi"
/ {
compatible = "ubnt,routerstation-pro", "qca,ar7161";
model = "Ubiquiti RouterStation Pro";
};
&mdio0 {
status = "okay";
phy0: ethernet-phy@0 {
reg = <0>;
};
phy4: ethernet-phy@4 {
reg = <4>;
};
};
&eth0 {
phy-mode = "rgmii";
phy-handle = <&phy4>;
};
&eth1 {
phy-mode = "rgmii";
phy-handle = <&phy0>;
};

View File

@@ -0,0 +1,27 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7161_ubnt_routerstation.dtsi"
/ {
compatible = "ubnt,routerstation", "qca,ar7161";
model = "Ubiquiti Networks RouterStation";
};
&eth0 {
phy-mode = "mii";
fixed-link {
speed = <100>;
full-duplex;
};
};
&eth1 {
phy-mode = "rmii";
fixed-link {
speed = <100>;
full-duplex;
};
};

View File

@@ -0,0 +1,101 @@
// 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 "ar7100.dtsi"
/ {
aliases {
led-boot = &rf;
led-failsafe = &rf;
led-running = &rf;
led-upgrade = &rf;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-output-names = "ref";
clock-frequency = <40000000>;
};
leds {
compatible = "gpio-leds";
rf: rf_green {
label = "ubnt:green:rf";
gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
wps {
label = "sw4";
linux,code = <KEY_RESTART>;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
};
&eth0 {
status = "okay";
};
&eth1 {
status = "okay";
};
&pcie0 {
status = "okay";
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "ecoscentric,redboot-fis-partitions";
};
};
};
&uart {
status = "okay";
};
&usb_phy {
status = "okay";
};
&usb1 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
usb_ochi_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb2 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
usb_echi_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};

View File

@@ -0,0 +1,88 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar724x.dtsi"
/ {
usb_phy: usb-phy {
compatible = "qca,ar7200-usb-phy";
reset-names = "usb-phy", "usb-ohci-dll";
resets = <&rst 4>, <&rst 3>;
#phy-cells = <0>;
status = "disabled";
};
};
&ahb {
usb: usb@1b000000 {
compatible = "generic-ohci";
reg = <0x1b000000 0x1000>;
interrupts = <3>;
resets = <&rst 5>;
reset-names = "usb-host";
phy-names = "usb-phy";
phys = <&usb_phy>;
status = "disabled";
};
};
&mdio0 {
status = "okay";
compatible = "qca,ar7240-mdio";
builtin-switch;
builtin_switch: switch0@1f {
compatible = "qca,ar7240sw";
reg = <0x1f>;
resets = <&rst 8>;
reset-names = "switch";
qca,mib-poll-interval = <500>;
mdio-bus {
#address-cells = <1>;
#size-cells = <0>;
swphy4: ethernet-phy@4 {
reg = <4>;
phy-mode = "mii";
};
};
};
};
&eth0 {
status = "okay";
compatible = "qca,ar7240-eth", "syscon";
pll-data = <0x00110000 0x00001099 0x00991099>;
resets = <&rst 9>;
reset-names = "mac";
phy-mode = "mii";
phy-handle = <&swphy4>;
};
&eth1 {
compatible = "qca,ar7240-eth", "syscon";
pll-data = <0x00110000 0x00001099 0x00991099>;
resets = <&rst 13>;
reset-names = "mac";
phy-mode = "gmii";
fixed-link {
speed = <1000>;
full-duplex;
};
};

View File

@@ -0,0 +1,190 @@
// 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 "ar7240.dtsi"
/ {
compatible = "buffalo,whr-g301n", "qca,ar7240";
model = "Buffalo WHR-G301N";
aliases {
led-boot = &diag;
led-failsafe = &diag;
led-upgrade = &diag;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
router_on {
label = "router_on";
linux,code = <BTN_2>;
linux,input-type = <EV_SW>;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
router_off {
label = "router_off";
linux,code = <BTN_3>;
linux,input-type = <EV_SW>;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
gpio-leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&switch_led_pins>;
security {
label = "whr-g301n:orange:security";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
diag: diag {
label = "whr-g301n:red:diag";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
router {
label = "whr-g301n:green:router";
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
};
lan1 {
label = "whr-g301n:green:lan1";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
};
lan2 {
label = "whr-g301n:green:lan2";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
};
lan3 {
label = "whr-g301n:green:lan3";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
};
lan4 {
label = "whr-g301n:green:lan4";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
};
wan {
label = "whr-g301n:green:wan";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
};
ath9k-leds {
compatible = "gpio-leds";
wlan {
label = "whr-g301n:green:wlan";
gpios = <&ath9k 1 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0 0x3e000>;
label = "u-boot";
read-only;
};
partition@3e000 {
reg = <0x3e000 0x2000>;
label = "u-boot-env";
read-only;
};
partition@40000 {
compatible = "denx,uimage";
reg = <0x40000 0x3a0000>;
label = "firmware";
};
partition@3e0000 {
reg = <0x3e0000 0x10000>;
label = "user_property";
read-only;
};
art: partition@3f0000 {
reg = <0x3f0000 0x10000>;
label = "art";
read-only;
};
};
};
};
&eth0 {
mtd-mac-address = <&art 0x120c>;
};
&eth1 {
status = "okay";
mtd-mac-address = <&art 0x120c>;
mtd-mac-address-increment = <1>;
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
compatible = "pci168c,002a";
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
mtd-mac-address = <&art 0x120c>;
#gpio-cells = <2>;
gpio-controller;
};
};
&pinmux {
switch_led_pins: switch_led_pins {
pinctrl-single,bits = <0x0 0x0 0xf8>;
};
};
&uart {
status = "okay";
};

View File

@@ -0,0 +1,10 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_netgear_wnr612-v2.dtsi"
/ {
compatible = "netgear,wnr612-v2", "qca,ar7240";
model = "Netgear WNR612 v2";
};

View File

@@ -0,0 +1,133 @@
// 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 "ar7240.dtsi"
/ {
aliases {
led-boot = &power;
led-failsafe = &power;
led-running = &power;
led-upgrade = &power;
};
ath9k-keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&ath9k 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&jtag_disable_pins &switch_led_disable_pins &clks_disable_pins>;
power: power {
label = "netgear:green:power";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
lan1 {
label = "netgear:green:lan1";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
};
lan2 {
label = "netgear:green:lan2";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
};
wan {
label = "netgear:green:wan";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
};
ath9k-leds {
compatible = "gpio-leds";
wlan: wlan {
label = "netgear:green:wlan";
gpios = <&ath9k 1 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0 0x40000>;
label = "u-boot";
read-only;
};
partition@40000 {
reg = <0x40000 0x10000>;
label = "u-boot-env";
};
partition@50000 {
compatible = "netgear,uimage";
reg = <0x50000 0x3a0000>;
label = "firmware";
};
art: partition@3f0000 {
reg = <0x3f0000 0x10000>;
label = "art";
read-only;
};
};
};
};
&eth0 {
mtd-mac-address = <&art 0x0>;
};
&eth1 {
status = "okay";
mtd-mac-address = <&art 0x6>;
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
compatible = "pci168c,002b";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x0>;
mtd-mac-address-increment = <1>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
};
};
&uart {
status = "okay";
};

View File

@@ -0,0 +1,10 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_netgear_wnr612-v2.dtsi"
/ {
compatible = "on,n150r", "qca,ar7240";
model = "ON Network N150R";
};

View File

@@ -0,0 +1,122 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar7240.dtsi"
/ {
aliases {
led-boot = &led_system;
led-failsafe = &led_system;
led-running = &led_system;
led-upgrade = &led_system;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds: leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinmux_switch_led_pins>;
led_system: system {
label = "tp-link:green:system";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
qss {
label = "tp-link:green:qss";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
};
ath9k-leds {
compatible = "gpio-leds";
wlan {
label = "tp-link:green:wlan";
gpios = <&ath9k 1 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
reg = <0x0 0x20000>;
label = "u-boot";
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
reg = <0x20000 0x3d0000>;
label = "firmware";
};
art: partition@3f0000 {
reg = <0x3f0000 0x10000>;
label = "art";
read-only;
};
};
};
};
&eth1 {
status = "okay";
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
mtd-mac-address = <&uboot 0x1fc00>;
#gpio-cells = <2>;
gpio-controller;
};
};
&pinmux {
pinmux_switch_led_pins: switch_led_pins {
pinctrl-single,bits = <0x0 0x0 0xf8>;
};
};
&uart {
status = "okay";
};

View File

@@ -0,0 +1,22 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar7240_tplink.dtsi"
&leds {
lan {
label = "tp-link:green:lan";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
};
};
&eth0 {
compatible = "syscon", "simple-mfd";
};
&eth1 {
mtd-mac-address = <&uboot 0x1fc00>;
};
&ath9k {
compatible = "pci168c,002a";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wa.dtsi"
/ {
model = "TP-Link TL-WA701ND v1";
compatible = "tplink,tl-wa701nd-v1", "qca,ar7240";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wa.dtsi"
/ {
model = "TP-Link TL-WA730RE v1";
compatible = "tplink,tl-wa730re-v1", "qca,ar7240";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wa.dtsi"
/ {
model = "TP-Link TL-WA801ND v1";
compatible = "tplink,tl-wa801nd-v1", "qca,ar7240";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wa.dtsi"
/ {
model = "TP-Link TL-WA830RE v1";
compatible = "tplink,tl-wa830re-v1", "qca,ar7240";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wa.dtsi"
/ {
model = "TP-Link TL-WA901ND v1";
compatible = "tplink,tl-wa901nd-v1", "qca,ar7240";
};

View File

@@ -0,0 +1,44 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar7240_tplink.dtsi"
&leds {
lan1 {
label = "tp-link:green:lan1";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
};
lan2 {
label = "tp-link:green:lan2";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
};
lan3 {
label = "tp-link:green:lan3";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
};
lan4 {
label = "tp-link:green:lan4";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
};
wan {
label = "tp-link:green:wan";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
};
&eth0 {
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <(-1)>;
};
&eth1 {
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <1>;
};
&ath9k {
compatible = "pci168c,002b";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wr.dtsi"
/ {
model = "TP-Link TL-WR740N v1/v2";
compatible = "tplink,tl-wr740n-v1", "qca,ar7240";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wr.dtsi"
/ {
model = "TP-Link TL-WR740N v3";
compatible = "tplink,tl-wr740n-v3", "qca,ar7240";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wr.dtsi"
/ {
model = "TP-Link TL-WR741N/ND v1/v2";
compatible = "tplink,tl-wr741-v1", "qca,ar7240";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wr.dtsi"
/ {
model = "TP-Link TL-WR743ND v1";
compatible = "tplink,tl-wr743nd-v1", "qca,ar7240";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wr.dtsi"
/ {
model = "TP-Link TL-WR841N/ND v5/v6";
compatible = "tplink,tl-wr841-v5", "qca,ar7240";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7240_tplink_tl-wr.dtsi"
/ {
model = "TP-Link TL-WR941N/ND v4";
compatible = "tplink,tl-wr941-v4", "qca,ar7240";
};

View File

@@ -0,0 +1,96 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar724x.dtsi"
/ {
usb_phy: usb-phy {
compatible = "qca,ar7200-usb-phy";
reset-names = "usb-phy", "usb-suspend-override";
resets = <&rst 4>, <&rst 3>;
#phy-cells = <0>;
status = "disabled";
};
};
&gpio {
ngpios = <20>;
};
&ahb {
usb: usb@1b000000 {
compatible = "generic-ehci";
reg = <0x1b000000 0x1000>;
interrupts = <3>;
resets = <&rst 5>;
reset-names = "usb-host";
has-transaction-translator;
caps-offset = <0x100>;
phy-names = "usb-phy";
phys = <&usb_phy>;
status = "disabled";
};
};
&eth0 {
compatible = "qca,ar7241-eth", "syscon";
pll-data = <0x00110000 0x00001099 0x00991099>;
resets = <&rst 9>;
reset-names = "mac";
phy-mode = "mii";
phy-handle = <&swphy4>;
};
&mdio1 {
status = "okay";
resets = <&rst 23>;
reset-names = "mdio";
builtin-switch;
builtin_switch: switch0@1f {
compatible = "qca,ar7240sw";
reg = <0x1f>;
resets = <&rst 8>;
reset-names = "switch";
qca,mib-poll-interval = <500>;
mdio-bus {
#address-cells = <1>;
#size-cells = <0>;
swphy4: ethernet-phy@4 {
reg = <4>;
phy-mode = "mii";
};
};
};
};
&eth1 {
status = "okay";
compatible = "qca,ar7241-eth", "syscon";
pll-data = <0x00110000 0x00001099 0x00991099>;
resets = <&rst 13>;
reset-names = "mac";
phy-mode = "gmii";
fixed-link {
speed = <1000>;
full-duplex;
};
};

View File

@@ -0,0 +1,115 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar7241.dtsi"
/ {
aliases {
led-boot = &led_system;
led-failsafe = &led_system;
led-running = &led_system;
led-upgrade = &led_system;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
qss {
label = "qss";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
gpio_leds: gpio-leds {
compatible = "gpio-leds";
led_system: system {
label = "tp-link:green:system";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
qss {
label = "tp-link:green:qss";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
};
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
reg = <0x0 0x20000>;
label = "u-boot";
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
reg = <0x20000 0x3d0000>;
label = "firmware";
};
partition@3f0000 {
reg = <0x3f0000 0x10000>;
label = "art";
read-only;
};
};
};
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
reg = <0x0000 0 0 0 0>;
#gpio-cells = <2>;
gpio-controller;
qca,no-eeprom;
mtd-mac-address = <&uboot 0x1fc00>;
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <(-1)>;
};
&eth1 {
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <1>;
};
&gpio {
status = "okay";
};
&uart {
status = "okay";
};

View File

@@ -0,0 +1,19 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7241_tplink_tl-mr3x20.dtsi"
/ {
compatible = "tplink,tl-mr3220-v1", "qca,ar7241";
model = "TP-Link TL-MR3220 v1";
ath9k-leds {
compatible = "gpio-leds";
wlan {
label = "tp-link:green:wlan";
gpios = <&ath9k 1 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};

View File

@@ -0,0 +1,19 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7241_tplink_tl-mr3x20.dtsi"
/ {
compatible = "tplink,tl-mr3420-v1", "qca,ar7241";
model = "TP-Link TL-MR3420 v1";
ath9k-leds {
compatible = "gpio-leds";
wlan {
label = "tp-link:green:wlan";
gpios = <&ath9k 0 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};

View File

@@ -0,0 +1,40 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar7241_tplink.dtsi"
/ {
gpio-export {
compatible = "gpio-export";
#size-cells = <0>;
gpio_usb_power {
gpio-export,name = "tp-link:power:usb";
gpio-export,output = <1>;
gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
};
};
};
&gpio_leds {
led3g {
label = "tp-link:green:3g";
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
&usb {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};

View File

@@ -0,0 +1,19 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7241_tplink.dtsi"
/ {
compatible = "tplink,tl-wr841-v7", "qca,ar7241";
model = "TP-Link TL-WR841N/ND v7";
ath9k-leds {
compatible = "gpio-leds";
wlan {
label = "tp-link:green:wlan";
gpios = <&ath9k 0 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};

View File

@@ -0,0 +1,162 @@
// 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 "ar7241.dtsi"
/ {
compatible = "tplink,tl-wr842n-v1", "qca,ar7241";
model = "TP-Link TL-WR842N/ND v1";
aliases {
led-boot = &led_system;
led-failsafe = &led_system;
led-running = &led_system;
led-upgrade = &led_system;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
rfkill {
label = "rfkill";
linux,code = <KEY_RFKILL>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
gpio-leds {
compatible = "gpio-leds";
led_system: system {
label = "tp-link:green:system";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
qss {
label = "tp-link:green:qss";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
led3g {
label = "tp-link:green:3g";
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
ath9k-leds {
compatible = "gpio-leds";
wlan {
label = "tp-link:green:wlan";
gpios = <&ath9k 0 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
gpio-export {
compatible = "gpio-export";
gpio_usb_power {
gpio-export,name = "tp-link:power:usb";
gpio-export,output = <1>;
gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
};
};
};
&usb {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
reg = <0x0 0x20000>;
label = "u-boot";
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
reg = <0x20000 0x7d0000>;
label = "firmware";
};
partition@7f0000 {
reg = <0x7f0000 0x10000>;
label = "art";
read-only;
};
};
};
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
compatible = "pci168c,002e";
reg = <0x0000 0 0 0 0>;
#gpio-cells = <2>;
gpio-controller;
qca,no-eeprom;
mtd-mac-address = <&uboot 0x1fc00>;
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <(-1)>;
};
&eth1 {
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <1>;
};
&gpio {
status = "okay";
};
&uart {
status = "okay";
};

View File

@@ -0,0 +1,38 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7241_ubnt_xm.dtsi"
/ {
compatible = "ubnt,airrouter", "ubnt,xm", "qca,ar7241";
model = "Ubiquiti AirRouter";
aliases {
led-boot = &globe;
led-failsafe = &globe;
led-running = &globe;
led-upgrade = &globe;
};
airrouter-leds {
compatible = "gpio-leds";
globe: globe {
label = "ubnt:green:globe";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
power {
label = "ubnt:green:power";
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
};
};
};
&usb_phy {
status = "okay";
};
&usb {
status = "okay";
};

View File

@@ -0,0 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7241_ubnt_xm_outdoor.dtsi"
/ {
compatible = "ubnt,bullet-m", "ubnt,xm", "qca,ar7241";
model = "Ubiquiti Bullet M";
};
&eth1 {
compatible = "syscon", "simple-mfd";
};

View File

@@ -0,0 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7241_ubnt_xm_outdoor.dtsi"
/ {
compatible = "ubnt,nanostation-loco-m", "ubnt,xm", "qca,ar7241";
model = "Ubiquiti Nanostation Loco M";
};
&eth1 {
compatible = "syscon", "simple-mfd";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7241_ubnt_xm_outdoor.dtsi"
/ {
compatible = "ubnt,nanostation-m", "ubnt,xm", "qca,ar7241";
model = "Ubiquiti Nanostation M";
};

View File

@@ -0,0 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7241_ubnt_xm_outdoor.dtsi"
/ {
compatible = "ubnt,picostation-m", "ubnt,xm", "qca,ar7241";
model = "Ubiquiti Picostation M";
};
&eth1 {
compatible = "syscon", "simple-mfd";
};

View File

@@ -0,0 +1,21 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7241_ubnt_xm_outdoor.dtsi"
/ {
compatible = "ubnt,rocket-m", "ubnt,xm", "qca,ar7241";
model = "Ubiquiti Rocket M";
};
&eth1 {
compatible = "syscon", "simple-mfd";
};
&usb_phy {
status = "okay";
};
&usb {
status = "okay";
};

View File

@@ -0,0 +1,127 @@
// 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 "ar7241.dtsi"
/ {
compatible = "ubnt,unifi", "qca,ar7241";
model = "Ubiquiti UniFi AP";
aliases {
led-boot = &dome_green;
led-failsafe = &dome_green;
led-running = &dome_green;
led-upgrade = &dome_green;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
linux,code = <KEY_RESTART>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
dome_green: dome-green {
label = "ubnt:green:dome";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
};
dome-orange {
label = "ubnt:orange:dome";
gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
};
};
};
&uart {
status = "okay";
};
&pll {
clocks = <&extosc>;
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x040000>;
read-only;
};
partition@1 {
label = "u-boot-env";
reg = <0x040000 0x010000>;
};
partition@2 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x050000 0x750000>;
};
partition@3 {
label = "board_config";
reg = <0x7a0000 0x010000>;
read-only;
};
partition@4 {
label = "cfg";
reg = <0x7b0000 0x040000>;
read-only;
};
art: partition@5 {
label = "art";
reg = <0x7f0000 0x010000>;
read-only;
};
};
};
};
&pcie {
status = "okay";
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&art 0x0>;
};
&eth1 {
compatible = "syscon", "simple-mfd";
};

View File

@@ -0,0 +1,108 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar7241.dtsi"
/ {
compatible = "ubnt,xm", "qca,ar7241";
model = "Ubiquiti Networks XM (rev 1.0) board";
/* extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
};
*/
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
linux,code = <KEY_RESTART>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
};
&uart {
status = "okay";
};
/*&pll {
clocks = <&extosc>;
};*/
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x040000>;
read-only;
};
partition@1 {
label = "u-boot-env";
reg = <0x040000 0x010000>;
};
partition@2 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x050000 0x750000>;
};
partition@3 {
label = "board_config";
reg = <0x7a0000 0x010000>;
read-only;
};
partition@4 {
label = "cfg";
reg = <0x7b0000 0x040000>;
read-only;
};
art: partition@5 {
label = "art";
reg = <0x7f0000 0x010000>;
read-only;
};
};
};
};
&pcie {
status = "okay";
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&art 0x0>;
};
&eth1 {
status = "okay";
mtd-mac-address = <&art 0x6>;
};

View File

@@ -0,0 +1,36 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar7241_ubnt_xm.dtsi"
/ {
aliases {
led-boot = &link4;
led-failsafe = &link4;
};
leds {
compatible = "gpio-leds";
link1 {
label = "ubnt:red:link1";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
};
link2 {
label = "ubnt:orange:link2";
gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
};
link3 {
label = "ubnt:green:link3";
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
};
link4: link4 {
label = "ubnt:green:link4";
gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
};
};
};

View File

@@ -0,0 +1,86 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar724x.dtsi"
/ {
usb_phy: usb-phy {
compatible = "qca,ar7200-usb-phy";
reset-names = "usb-phy", "usb-suspend-override";
resets = <&rst 4>, <&rst 3>;
#phy-cells = <0>;
status = "disabled";
};
};
&gpio {
ngpios = <20>;
};
&ahb {
usb: usb@1b000000 {
compatible = "generic-ehci";
reg = <0x1b000000 0x1000>;
interrupts = <3>;
resets = <&rst 5>;
reset-names = "usb-host";
has-transaction-translator;
caps-offset = <0x100>;
phy-names = "usb-phy";
phys = <&usb_phy>;
status = "disabled";
};
};
&mdio0 {
resets = <&rst 22>;
reset-names = "mdio";
};
&eth0 {
compatible = "qca,ar7242-eth", "syscon";
pll-data = <0x16000000 0x00000101 0x00001616>;
pll-reg = <0x4 0x2c 17>;
pll-handle = <&pll>;
resets = <&rst 9>;
reset-names = "mac";
};
&mdio1 {
resets = <&rst 23>;
reset-names = "mdio";
builtin-switch;
builtin_switch: switch0@1f {
compatible = "qca,ar7240sw";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x1f>;
resets = <&rst 8>;
reset-names = "switch";
qca,mib-poll-interval = <500>;
};
};
&eth1 {
compatible = "qca,ar7242-eth", "syscon";
resets = <&rst 13>;
reset-names = "mac";
phy-mode = "gmii";
fixed-link {
speed = <1000>;
full-duplex;
};
};

View File

@@ -0,0 +1,169 @@
// 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 "ar7242.dtsi"
/ {
compatible = "avm,fritz300e", "qca,ar7242";
model = "AVM FRITZ!WLAN Repeater 300E";
aliases {
led-boot = &power;
led-failsafe = &power;
led-running = &power;
led-upgrade = &power;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
power: power {
label = "fritz300e:green:power";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
default-state = "on";
};
lan {
label = "fritz300e:green:lan";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
};
wlan {
label = "fritz300e:green:wlan";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
ath9k-leds {
compatible = "gpio-leds";
rssi0 {
label = "fritz300e:green:rssi0";
gpios = <&ath9k 10 GPIO_ACTIVE_LOW>;
};
rssi1 {
label = "fritz300e:green:rssi1";
gpios = <&ath9k 4 GPIO_ACTIVE_LOW>;
};
rssi2 {
label = "fritz300e:green:rssi2";
gpios = <&ath9k 6 GPIO_ACTIVE_LOW>;
};
rssi3 {
label = "fritz300e:green:rssi3";
gpios = <&ath9k 7 GPIO_ACTIVE_LOW>;
};
rssi4 {
label = "fritz300e:green:rssi4";
gpios = <&ath9k 5 GPIO_ACTIVE_LOW>;
};
};
eth-phy-reset {
compatible = "regulator-fixed";
regulator-name = "eth-phy-reset";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio 11 GPIO_ACTIVE_LOW>;
startup-delay-us = <300000>;
enable-active-high;
regulator-always-on;
};
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0 0x20000>;
label = "urloader";
read-only;
};
partition@20000 {
compatible = "avm,eva-firmware";
reg = <0x20000 0xee0000>;
label = "firmware";
};
partition@f00000 {
reg = <0xf00000 0x80000>;
label = "tffs (1)";
read-only;
};
partition@f80000 {
reg = <0xf80000 0x80000>;
label = "tffs (2)";
read-only;
};
};
};
};
&uart {
status = "okay";
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
reg = <0x0000 0 0 0 0>;
#gpio-cells = <2>;
gpio-controller;
qca,no-eeprom;
};
};
&mdio0 {
status = "okay";
phy0: ethernet-phy@0 {
reg = <0>;
phy-mode = "rgmii";
};
};
&eth0 {
status = "okay";
phy-mode = "rgmii";
phy-handle = <&phy0>;
pll-data = <0x16000000 0x00000101 0x00001313>;
};

View File

@@ -0,0 +1,17 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar7242_buffalo_wzr-bhr.dtsi"
/ {
compatible = "buffalo,bhr-4grv", "qca,ar7242";
model = "Buffalo BHR-4GRV";
};
&eth0 {
mtd-mac-address = <&art 0x0>;
};
&sec_vpn {
label = "buffalo:orange:vpn";
};

View File

@@ -0,0 +1,170 @@
// 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 "ar7242.dtsi"
/ {
aliases {
led-boot = &diag;
led-failsafe = &diag;
led-upgrade = &diag;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
};
keys: keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
usb {
label = "usb";
linux,code = <BTN_2>;
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
sec_vpn: sec_vpn {
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
};
diag: diag {
label = "buffalo:red:diag";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
};
usb {
label = "buffalo:green:usb";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
gpio-export {
compatible = "gpio-export";
#size-cells = <0>;
gpio_usb_power {
gpio-export,name = "buffalo:usb-power";
gpio-export,output = <1>;
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
};
};
virtual_flash {
compatible = "mtd-concat";
devices = <&flash0 &flash1>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0 0x40000>;
label = "u-boot";
read-only;
};
partition@40000 {
reg = <0x40000 0x10000>;
label = "u-boot-env";
};
art: partition@50000 {
reg = <0x50000 0x10000>;
label = "art";
read-only;
};
partition@60000 {
compatible = "denx,uimage";
reg = <0x60000 0x1f80000>;
label = "firmware";
};
partition@1fe0000 {
reg = <0x1fe0000 0x20000>;
label = "user_property";
read-only;
};
};
};
};
&spi {
status = "okay";
cs-gpios = <0>, <0>;
num-cs = <2>;
flash0: flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
};
flash1: flash@1 {
compatible = "jedec,spi-nor";
reg = <1>;
spi-max-frequency = <25000000>;
};
};
&mdio0 {
status = "okay";
phy-mask = <0x1>;
phy0: ethernet-phy@0 {
reg = <0>;
phy-mode = "rgmii";
};
};
&eth0 {
status = "okay";
phy-mode = "rgmii";
phy-handle = <&phy0>;
};
&pll {
clocks = <&extosc>;
};
&uart {
status = "okay";
};
&usb_phy {
status = "okay";
};
&usb {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};

View File

@@ -0,0 +1,239 @@
// 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 "ar7242.dtsi"
/ {
compatible = "buffalo,wzr-hp-g302h-a1a0", "qca,ar7242";
model = "Buffalo WZR-HP-G302H A1A0";
aliases {
led-boot = &diag;
led-failsafe = &diag;
led-upgrade = &diag;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
button_usb {
label = "usb";
linux,code = <BTN_2>;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
router_on {
label = "router_on";
linux,code = <BTN_5>;
linux,input-type = <EV_SW>;
gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
movie_engine {
label = "movie_engine";
linux,code = <BTN_3>;
linux,input-type = <EV_SW>;
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
diag: diag {
label = "buffalo:red:diag";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
};
};
ath9k-leds {
compatible = "gpio-leds";
usb {
label = "buffalo:blue:usb";
gpios = <&ath9k 4 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
wireless {
label = "buffalo:green:wireless";
gpios = <&ath9k 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
security {
label = "buffalo:orange:security";
gpios = <&ath9k 6 GPIO_ACTIVE_LOW>;
};
router {
label = "buffalo:green:router";
gpios = <&ath9k 7 GPIO_ACTIVE_LOW>;
};
movie_engine_on {
label = "buffalo:blue:movie_engine_on";
gpios = <&ath9k 8 GPIO_ACTIVE_LOW>;
};
movie_engine_off {
label = "buffalo:blue:movie_engine_off";
gpios = <&ath9k 9 GPIO_ACTIVE_LOW>;
};
};
gpio-export {
compatible = "gpio-export";
#size-cells = <0>;
gpio_usb_power {
gpio-export,name = "buffalo:usb-power";
gpio-export,output = <1>;
gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
};
};
virtual_flash {
compatible = "mtd-concat";
devices = <&flash0 &flash1>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0 0x40000>;
label = "u-boot";
read-only;
};
partition@40000 {
reg = <0x40000 0x10000>;
label = "u-boot-env";
};
art: partition@50000 {
reg = <0x50000 0x10000>;
label = "art";
read-only;
};
partition@60000 {
compatible = "denx,uimage";
reg = <0x60000 0x1f60000>;
label = "firmware";
};
partition@1fc0000 {
reg = <0x1fc0000 0x40000>;
label = "user_property";
read-only;
};
};
};
};
&spi {
status = "okay";
cs-gpios = <0>, <0>;
num-cs = <2>;
flash0: flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
};
flash1: flash@1 {
compatible = "jedec,spi-nor";
reg = <1>;
spi-max-frequency = <25000000>;
};
};
&mdio0 {
status = "okay";
phy-mask = <0x1>;
phy0: ethernet-phy@0 {
reg = <0>;
phy-mode = "rgmii";
};
};
&eth0 {
status = "okay";
pll-data = <0x1c000000 0x00000101 0x00001616>;
mtd-mac-address = <&art 0x120c>;
phy-mode = "rgmii";
phy-handle = <&phy0>;
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
compatible = "pci168c,002a";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x120c>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
};
};
&pll {
clocks = <&extosc>;
};
&uart {
status = "okay";
};
&usb_phy {
status = "okay";
};
&usb {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};

View File

@@ -0,0 +1,78 @@
// 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 "ar7242_buffalo_wzr-bhr.dtsi"
/ {
compatible = "buffalo,wzr-hp-g450h", "qca,ar7242";
model = "Buffalo WZR-HP-G450H/WZR-450HP";
ath9k-leds {
compatible = "gpio-leds";
led_movie_engine {
label = "buffalo:blue:movie_engine";
gpios = <&ath9k 13 GPIO_ACTIVE_LOW>;
};
router {
label = "buffalo:green:router";
gpios = <&ath9k 14 GPIO_ACTIVE_LOW>;
};
wireless {
label = "buffalo:green:wireless";
gpios = <&ath9k 15 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};
&keys {
movie_engine {
label = "movie_engine";
linux,code = <BTN_6>;
linux,input-type = <EV_SW>;
gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
aoss {
label = "aoss";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
router_off {
label = "router_off";
linux,code = <BTN_5>;
linux,input-type = <EV_SW>;
gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
};
&eth0 {
mtd-mac-address = <&art 0x1002>;
};
&sec_vpn {
label = "buffalo:orange:security";
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
compatible = "pci168c,0030";
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&art 0x1002>;
qca,no-eeprom;
#gpio-cells = <2>;
gpio-controller;
};
};

View File

@@ -0,0 +1,180 @@
// 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 "ar7242.dtsi"
/ {
compatible = "tplink,tl-wr2543-v1", "qca,ar7242";
model = "TP-Link TL-WR2543N/ND";
aliases {
led-boot = &system;
led-failsafe = &system;
led-running = &system;
led-upgrade = &system;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
system: wps {
label = "tplink:green:wps";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
usb {
label = "tplink:green:usb";
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
ath9k-leds {
compatible = "gpio-leds";
wlan2g {
label = "tplink:green:wlan2g";
gpios = <&ath9k 0 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
wlan5g {
label = "tplink:green:wlan5g";
gpios = <&ath9k 1 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
rtl8367 {
compatible = "realtek,rtl8367";
gpio-sda = <&gpio 1 GPIO_ACTIVE_HIGH>;
gpio-sck = <&gpio 6 GPIO_ACTIVE_HIGH>;
realtek,extif0 = <1 0 1 1 1 1 1 1 2>;
mdio-bus {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
phy0: ethernet-phy@0 {
reg = <0>;
};
};
};
};
&pll {
clocks = <&extosc>;
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x7d0000>;
};
partition@7f0000 {
label = "art";
reg = <0x7f0000 0x010000>;
read-only;
};
};
};
};
&uart {
status = "okay";
};
&usb {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
reg = <0x0000 0 0 0 0>;
#gpio-cells = <2>;
gpio-controller;
qca,no-eeprom;
mtd-mac-address = <&uboot 0x1fc00>;
};
};
&eth0 {
status = "okay";
phy-mode = "rgmii";
mtd-mac-address = <&uboot 0x1fc00>;
phy-handle = <&phy0>;
fixed-link {
speed = <1000>;
full-duplex;
};
};

View File

@@ -0,0 +1,162 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/clock/ath79-clk.h>
#include "ath79.dtsi"
/ {
compatible = "qca,ar7240";
#address-cells = <1>;
#size-cells = <1>;
chosen {
bootargs = "console=ttyS0,115200";
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "mips,mips24Kc";
clocks = <&pll ATH79_CLK_CPU>;
reg = <0>;
};
};
ahb: ahb {
apb {
ddr_ctrl: memory-controller@18000000 {
compatible = "qca,ar9132-ddr-controller",
"qca,ar7240-ddr-controller";
reg = <0x18000000 0x100>;
#qca,ddr-wb-channel-cells = <1>;
};
uart: uart@18020000 {
compatible = "ns16550a";
reg = <0x18020000 0x20>;
interrupts = <3>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "uart";
reg-io-width = <4>;
reg-shift = <2>;
no-loopback-test;
status = "disabled";
};
gpio: gpio@18040000 {
compatible = "qca,ar7240-gpio",
"qca,ar7100-gpio";
reg = <0x18040000 0x30>;
interrupts = <2>;
ngpios = <18>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
pinmux: pinmux@18040028 {
compatible = "pinctrl-single";
reg = <0x18040028 0x8>;
pinctrl-single,bit-per-mux;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0x1>;
#pinctrl-cells = <2>;
jtag_disable_pins: pinmux_jtag_disable_pins {
pinctrl-single,bits = <0x0 0x1 0x1>;
};
switch_led_disable_pins: pinmux_switch_led_disable_pins {
pinctrl-single,bits = <0x0 0x0 0xf8>;
};
clks_disable_pins: pinmux_clks_disable_pins {
pinctrl-single,bits = <0x0 0x0 0x81f00>;
};
};
pll: pll-controller@18050000 {
compatible = "qca,ar7240-pll", "syscon";
reg = <0x18050000 0x3c>;
clock-names = "ref";
/* The board must provides the ref clock */
#clock-cells = <1>;
clock-output-names = "cpu", "ddr", "ahb";
};
wdt: wdt@18060008 {
compatible = "qca,ar7130-wdt";
reg = <0x18060008 0x8>;
interrupts = <4>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "wdt";
};
rst: reset-controller@1806001c {
compatible = "qca,ar7240-reset",
"qca,ar7100-reset";
reg = <0x1806001c 0x4>;
#reset-cells = <1>;
};
pcie: pcie-controller@180c0000 {
compatible = "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;
bus-range = <0x0 0x0>;
reg = <0x180c0000 0x1000>, /* CRP */
<0x180f0000 0x100>, /* CTRL */
<0x14000000 0x1000>; /* CFG */
reg-names = "crp_base", "ctrl_base", "cfg_base";
ranges = <0x2000000 0 0x10000000 0x10000000 0 0x04000000 /* pci memory */
0x1000000 0 0x00000000 0x0000000 0 0x000001>; /* io space */
interrupt-parent = <&cpuintc>;
interrupts = <2>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 1>;
interrupt-map = <0 0 0 0 &pcie 0>;
status = "disabled";
};
};
spi: spi@1f000000 {
compatible = "qca,ar7240-spi",
"qca,ar7100-spi";
reg = <0x1f000000 0x10>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "ahb";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
};
};
&cpuintc {
qca,ddr-wb-channel-interrupts = <2>, <3>, <4>, <5>;
qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>,
<&ddr_ctrl 0>, <&ddr_ctrl 1>;
};

View File

@@ -0,0 +1,197 @@
// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/clock/ath79-clk.h>
#include "ath79.dtsi"
/ {
compatible = "qca,ar9132";
#address-cells = <1>;
#size-cells = <1>;
chosen {
bootargs = "console=ttyS0,115200";
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "mips,mips24Kc";
clocks = <&pll ATH79_CLK_CPU>;
reg = <0>;
};
};
cpuintc: interrupt-controller {
compatible = "qca,ar9132-cpu-intc", "qca,ar7100-cpu-intc";
interrupt-controller;
#interrupt-cells = <1>;
qca,ddr-wb-channel-interrupts = <2>, <3>, <4>, <5>;
qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>,
<&ddr_ctrl 0>, <&ddr_ctrl 1>;
};
ahb {
compatible = "simple-bus";
ranges;
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&cpuintc>;
apb {
compatible = "simple-bus";
ranges;
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&miscintc>;
ddr_ctrl: memory-controller@18000000 {
compatible = "qca,ar9132-ddr-controller",
"qca,ar7240-ddr-controller";
reg = <0x18000000 0x100>;
#qca,ddr-wb-channel-cells = <1>;
};
uart: uart@18020000 {
compatible = "ns8250";
reg = <0x18020000 0x20>;
interrupts = <3>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "uart";
reg-io-width = <4>;
reg-shift = <2>;
no-loopback-test;
status = "disabled";
};
gpio: gpio@18040000 {
compatible = "qca,ar9132-gpio",
"qca,ar7100-gpio";
reg = <0x18040000 0x30>;
interrupts = <2>;
ngpios = <22>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
pll: pll-controller@18050000 {
compatible = "qca,ar9132-pll",
"qca,ar9130-pll", "syscon";
reg = <0x18050000 0x20>;
clock-names = "ref";
/* The board must provides the ref clock */
#clock-cells = <1>;
clock-output-names = "cpu", "ddr", "ahb";
};
wdt: wdt@18060008 {
compatible = "qca,ar7130-wdt";
reg = <0x18060008 0x8>;
interrupts = <4>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "wdt";
};
miscintc: interrupt-controller@18060010 {
compatible = "qca,ar9132-misc-intc",
"qca,ar7100-misc-intc";
reg = <0x18060010 0x8>;
interrupt-parent = <&cpuintc>;
interrupts = <6>;
interrupt-controller;
#interrupt-cells = <1>;
};
rst: reset-controller@1806001c {
compatible = "qca,ar9132-reset",
"qca,ar7100-reset";
reg = <0x1806001c 0x4>;
#reset-cells = <1>;
};
};
usb: usb@1b000100 {
compatible = "qca,ar7100-ehci", "generic-ehci";
reg = <0x1b000100 0x100>;
interrupts = <3>;
resets = <&rst 5>;
has-transaction-translator;
phy-names = "usb";
phys = <&usb_phy>;
status = "disabled";
};
spi: spi@1f000000 {
compatible = "qca,ar9132-spi", "qca,ar7100-spi";
reg = <0x1f000000 0x10>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "ahb";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
wmac: wmac@180c0000 {
compatible = "qca,ar9130-wmac";
reg = <0x180c0000 0x230000>;
interrupts = <2>;
status = "disabled";
};
};
usb_phy: usb-phy {
compatible = "qca,ar7200-usb-phy";
reset-names = "usb-phy", "usb-suspend-override";
resets = <&rst 4>, <&rst 3>;
#phy-cells = <0>;
status = "disabled";
};
};
&eth0 {
compatible = "qca,ar9130-eth", "syscon";
reg = <0x19000000 0x200
0x18070000 0x4>;
pll-data = <0x1a000000 0x13000a44 0x00441099>;
pll-reg = <0x4 0x14 20>;
pll-handle = <&pll>;
resets = <&rst 9>;
reset-names = "mac";
qca,mac-idx = <0>;
};

View File

@@ -0,0 +1,130 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9132.dtsi"
/ {
compatible = "tplink,tl-wa901nd-v2", "qca,ar9132";
model = "TP-Link TL-WA901ND v2";
aliases {
led-boot = &system;
led-failsafe = &system;
led-running = &system;
led-upgrade = &system;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
qss {
label = "qss";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
system: system {
label = "tp-link:green:system";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
qss {
label = "tp-link:green:qss";
gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
};
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};
&uart {
status = "okay";
};
&pll {
clocks = <&extosc>;
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@1 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x3D0000>;
};
art: partition@2 {
label = "art";
reg = <0x3F0000 0x010000>;
read-only;
};
};
};
};
&mdio0 {
status = "okay";
phy0: ethernet-phy@c {
reg = <0xc>;
phy-mode = "mii";
};
};
&eth0 {
status = "okay";
phy-mode = "mii";
mtd-mac-address = <&uboot 0x1fc00>;
phy-handle = <&phy0>;
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,155 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9132.dtsi"
/ {
compatible = "tplink,tl-wr1043nd-v1", "qca,ar9132";
model = "TP-Link TL-WR1043ND v1";
aliases {
led-boot = &system;
led-failsafe = &system;
led-running = &system;
led-upgrade = &system;
};
extosc: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
};
keys {
compatible = "gpio-keys";
button0 {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
button1 {
label = "qss";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
usb {
label = "tp-link:green:usb";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
system: system {
label = "tp-link:green:system";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat";
};
qss {
label = "tp-link:green:qss";
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
};
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
rtl8366rb {
compatible = "realtek,rtl8366rb";
gpio-sda = <&gpio 18 GPIO_ACTIVE_HIGH>;
gpio-sck = <&gpio 19 GPIO_ACTIVE_HIGH>;
resets = <&rst 8>;
reset-names = "switch";
};
};
&uart {
status = "okay";
};
&pll {
clocks = <&extosc>;
};
&usb {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x7D0000>;
};
art: partition@7F0000 {
label = "art";
reg = <0x7F0000 0x010000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
phy-mode = "rgmii";
mtd-mac-address = <&uboot 0x1fc00>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,167 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9132.dtsi"
/ {
compatible = "tplink,tl-wr941-v2", "qca,ar9132";
model = "TP-Link TL-WR941N/ND v2/v3";
aliases {
led-boot = &led_system;
led-failsafe = &led_system;
led-running = &led_system;
led-upgrade = &led_system;
};
keys {
compatible = "gpio-keys";
button0 {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
button1 {
label = "qss";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
led_system: system {
label = "tp-link:green:system";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
qss_r {
label = "tp-link:red:qss";
gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
};
qss_g {
label = "tp-link:green:qss";
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
};
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
dsa {
compatible = "marvell,dsa";
#address-cells = <1>;
#size-cells = <0>;
dsa,mii-bus = <&mdio0>;
dsa,ethernet = <&eth0>;
switch@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
port@0 {
reg = <0>;
label = "wan";
};
port@1 {
reg = <1>;
label = "lan1";
};
port@2 {
reg = <2>;
label = "lan2";
};
port@3 {
reg = <3>;
label = "lan3";
};
port@4 {
reg = <4>;
label = "lan4";
};
port@5 {
reg = <5>;
label = "cpu";
};
};
};
};
&uart {
status = "okay";
};
&spi {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x20000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x3d0000>;
};
art: partition@3f0000 {
label = "art";
reg = <0x3f0000 0x10000>;
read-only;
};
};
};
};
&mdio0 {
status = "okay";
};
&eth0 {
status = "okay";
phy-mode = "rmii";
mtd-mac-address = <&uboot 0x1fc00>;
fixed-link {
speed = <100>;
full-duplex;
};
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,215 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/clock/ath79-clk.h>
#include "ath79.dtsi"
/ {
compatible = "qca,ar9330";
#address-cells = <1>;
#size-cells = <1>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "mips,mips24Kc";
clocks = <&pll ATH79_CLK_CPU>;
reg = <0>;
};
};
chosen {
bootargs = "console=ttyATH0,115200";
};
ahb {
apb {
ddr_ctrl: memory-controller@18000000 {
compatible = "qca,ar7240-ddr-controller";
reg = <0x18000000 0x100>;
#qca,ddr-wb-channel-cells = <1>;
};
uart: uart@18020000 {
compatible = "qca,ar9330-uart";
reg = <0x18020000 0x14>;
interrupts = <3>;
clocks = <&pll ATH79_CLK_REF>;
clock-names = "uart";
status = "disabled";
};
gpio: gpio@18040000 {
compatible = "qca,ar7100-gpio";
reg = <0x18040000 0x34>;
interrupts = <2>;
ngpios = <30>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
pinmux: pinmux@18040028 {
compatible = "pinctrl-single";
reg = <0x18040028 0x8>;
pinctrl-single,bit-per-mux;
pinctrl-single,register-width = <32>;
pinctrl-single,function-mask = <0x1>;
#pinctrl-cells = <2>;
jtag_disable_pins: pinmux_jtag_disable_pins {
pinctrl-single,bits = <0x0 0x1 0x1>;
};
switch_led_disable_pins: pinmux_switch_led_disable_pins {
pinctrl-single,bits = <0x0 0x0 0xf8>;
};
};
pll: pll-controller@18050000 {
compatible = "qca,ar9330-pll";
reg = <0x18050000 0x100>;
#clock-cells = <1>;
};
wdt: wdt@18060008 {
compatible = "qca,ar7130-wdt";
reg = <0x18060008 0x8>;
interrupts = <4>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "wdt";
};
rst: reset-controller@1806001c {
compatible = "qca,ar7100-reset";
reg = <0x1806001c 0x4>;
#reset-cells = <1>;
};
};
usb: usb@1b000000 {
compatible = "chipidea,usb2";
reg = <0x1b000000 0x200>;
interrupts = <3>;
resets = <&rst 5>;
reset-names = "usb-host";
phy-names = "usb-phy";
phys = <&usb_phy>;
status = "disabled";
};
spi: spi@1f000000 {
compatible = "qca,ar7100-spi";
reg = <0x1f000000 0x10>;
clocks = <&pll ATH79_CLK_AHB>;
clock-names = "ahb";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
gmac: gmac@18070000 {
compatible = "qca,ar9330-gmac";
reg = <0x18070000 0x4>;
};
wmac: wmac@18100000 {
compatible = "qca,ar9330-wmac";
reg = <0x18100000 0x20000>;
interrupts = <2>;
status = "disabled";
};
};
usb_phy: usb-phy {
compatible = "qca,ar7200-usb-phy";
reset-names = "usb-phy", "usb-suspend-override";
resets = <&rst 4>, <&rst 3>;
#phy-cells = <0>;
status = "disabled";
};
};
&cpuintc {
qca,ddr-wb-channel-interrupts = <2>, <3>;
qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>;
};
&eth0 {
compatible = "qca,ar9330-eth", "syscon";
pll-data = <0x00110000 0x00001099 0x00991099>;
resets = <&rst 9>;
reset-names = "mac";
phy-mode = "mii";
phy-handle = <&swphy4>;
};
&mdio1 {
status = "okay";
compatible = "qca,ar9330-mdio";
resets = <&rst 23>;
reset-names = "mdio";
builtin-switch;
builtin_switch: switch0@1f {
compatible = "qca,ar7240sw";
reg = <0x1f>;
resets = <&rst 8>;
reset-names = "switch";
qca,mib-poll-interval = <500>;
mdio-bus {
#address-cells = <1>;
#size-cells = <0>;
swphy4: ethernet-phy@4 {
reg = <4>;
phy-mode = "mii";
};
};
};
};
&eth1 {
compatible = "qca,ar9330-eth", "syscon";
pll-data = <0x00110000 0x00001099 0x00991099>;
phy-mode = "gmii";
resets = <&rst 13>;
reset-names = "mac";
fixed-link {
speed = <1000>;
full-duplex;
};
};

View File

@@ -0,0 +1,143 @@
// 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 "ar9330.dtsi"
/ {
model = "GL.iNet GL-AR150";
compatible = "glinet,gl-ar150", "qca,ar9330";
aliases {
serial0 = &uart;
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
leds {
compatible = "gpio-leds";
wlan {
label = "gl-ar150:orange:wlan";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tpt";
};
configurable {
label = "gl-ar150:green:configurable";
gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
};
led_power: power {
label = "gl-ar150:green:power";
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <100>;
manual {
label = "manual";
linux,code = <BTN_7>;
gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
};
auto {
label = "auto";
linux,code = <BTN_8>;
gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
};
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
};
};
};
&uart {
status = "okay";
};
&usb {
dr_mode = "host";
status = "okay";
};
&usb_phy {
status = "okay";
gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
};
&spi {
num-chipselects = <1>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <104000000>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x040000>;
read-only;
};
partition@1 {
label = "u-boot-env";
reg = <0x040000 0x010000>;
};
partition@2 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x050000 0xfa0000>;
};
art: partition@3 {
label = "art";
reg = <0xff0000 0x010000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&art 0x0>;
};
&eth1 {
status = "okay";
mtd-mac-address = <&art 0x0>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <0>;
switch-phy-swap = <0>;
};
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x0>;
};

View File

@@ -0,0 +1,142 @@
// 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 "ar9330.dtsi"
/ {
model = "PQI Air-Pen";
compatible = "pqi,air-pen", "qca,ar9330";
aliases {
serial0 = &uart;
led-boot = &wlan;
led-failsafe = &wlan;
led-upgrade = &wlan;
};
leds {
compatible = "gpio-leds";
wlan: wlan {
label = "air-pen:blue:wlan";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tpt";
};
wps {
label = "air-pen:blue:wps";
gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <100>;
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
};
};
&uart {
status = "okay";
};
&usb {
dr_mode = "host";
status = "okay";
};
&usb_phy {
status = "okay";
};
&spi {
num-cs = <1>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <104000000>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x040000>;
read-only;
};
partition@40000 {
label = "u-boot-env";
reg = <0x040000 0x010000>;
};
art: partition@50000 {
label = "art";
reg = <0x050000 0x010000>;
read-only;
};
partition@60000 {
label = "NVRAM";
reg = <0x060000 0x010000>;
read-only;
};
partition@70000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x070000 0x780000>;
};
partition@7f0000 {
label = "CONF";
reg = <0x7f0000 0x010000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&art 0x1002>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <0>;
switch-phy-swap = <0>;
};
};
&eth1 {
status = "okay";
compatible = "syscon", "simple-mfd";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x2>;
};

View File

@@ -0,0 +1,11 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar9330.dtsi"
/ {
compatible = "qca,ar9331";
ref: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
};
};

View File

@@ -0,0 +1,131 @@
// 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 "ar9331.dtsi"
/ {
model = "8devices Carambola2";
compatible = "8dev,carambola2", "qca,ar9331";
aliases {
serial0 = &uart;
};
leds {
compatible = "gpio-leds";
wlan {
label = "carambola2:green:wlan";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
eth0 {
label = "carambola2:orange:eth0";
gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
};
eth1 {
label = "carambola2:orange:eth1";
gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys";
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
};
};
&ref {
clock-frequency = <40000000>;
};
&uart {
status = "okay";
};
&usb {
dr_mode = "host";
status = "okay";
};
&usb_phy {
status = "okay";
};
&spi {
num-chipselects = <0>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <104000000>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x040000>;
read-only;
};
partition@40000 {
label = "u-boot-env";
reg = <0x040000 0x010000>;
read-only;
};
partition@50000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x50000 0xfa0000>;
};
art: partition@ff0000 {
label = "art";
reg = <0xff0000 0x010000>;
read-only;
};
};
};
};
&mdio0 {
status = "okay";
};
&eth0 {
status = "okay";
mtd-mac-address = <&art 0x0>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <1>;
switch-phy-swap = <1>;
};
};
&eth1 {
status = "okay";
mtd-mac-address = <&art 0x6>;
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x1002>;
};

View File

@@ -0,0 +1,117 @@
// 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 "ar9331.dtsi"
/ {
model = "Embedded Wireless Dorin";
compatible = "embeddedwireless,dorin", "qca,ar9331";
aliases {
led-boot = &status;
led-failsafe = &status;
led-running = &status;
led-upgrade = &status;
serial0 = &uart;
};
leds {
compatible = "gpio-leds";
status: status {
label = "dorin:green:status";
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <100>;
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
};
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
};
};
};
&uart {
status = "okay";
};
&usb {
dr_mode = "host";
status = "okay";
};
&usb_phy {
status = "okay";
};
&spi {
num-chipselects = <1>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <104000000>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x040000>;
read-only;
};
partition@1 {
label = "u-boot-env";
reg = <0x040000 0x010000>;
};
partition@2 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x050000 0xfa0000>;
};
art: partition@3 {
label = "art";
reg = <0xff0000 0x010000>;
read-only;
};
};
};
};
&eth1 {
status = "okay";
mtd-mac-address = <&art 0x1002>;
mtd-mac-address-increment-byte = <3>;
mtd-mac-address-increment = <0x40>;
};
&mdio1 {
status = "okay";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x1002>;
};

View File

@@ -0,0 +1,125 @@
// 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 "ar9331.dtsi"
/ {
model = "eTactica EG200";
compatible = "etactica,eg200", "qca,ar9331";
aliases {
serial0 = &uart;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <50>;
restore {
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&switch_led_disable_pins>;
modbus {
label = "eg200:red:modbus";
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
};
etactica {
label = "eg200:red:etactica";
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
};
eth0 {
label = "eg200:red:eth0";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
};
wlan {
label = "eg200:red:wlan";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};
&uart {
status = "okay";
};
&usb {
dr_mode = "host";
status = "okay";
};
&usb_phy {
status = "okay";
};
&eth0 {
status = "okay";
mtd-mac-address = <&art 0x0>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <1>;
switch-phy-swap = <1>;
};
};
&eth1 {
status = "okay";
compatible = "syscon", "simple-mfd";
};
&spi {
num-chipselects = <1>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <50000000>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot@0 {
reg = <0x0 0x40000>;
read-only;
};
uboot-env@40000 {
reg = <0x40000 0x10000>;
read-only;
};
firmware@50000 {
compatible = "denx,uimage";
reg = <0x50000 0xfa0000>;
};
art: art@ff0000 {
reg = <0xff0000 0x10000>;
read-only;
};
};
};
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x1002>;
};

View File

@@ -0,0 +1,123 @@
// 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 "ar9331.dtsi"
/ {
model = "Pisen WMM003N";
compatible = "pisen,wmm003n", "qca,ar9331";
aliases {
serial0 = &uart;
led-boot = &led_system;
led-failsafe = &led_system;
led-running = &led_system;
led-upgrade = &led_system;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
led_system: system {
label = "pisen:blue:system";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
};
reg_usb_vbus: reg_usb_vbus {
compatible = "regulator-fixed";
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
reg = <0x0 0x20000>;
label = "u-boot";
read-only;
};
firmware: partition@20000 {
compatible = "tplink,firmware";
reg = <0x20000 0x7d0000>;
label = "firmware";
};
art: partition@7f0000 {
reg = <0x7f0000 0x10000>;
label = "art";
read-only;
};
};
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <0>;
switch-phy-swap = <0>;
};
};
&eth1 {
status = "okay";
compatible = "syscon", "simple-mfd";
};
&uart {
status = "okay";
};
&usb {
dr_mode = "host";
vbus-supply = <&reg_usb_vbus>;
status = "okay";
};
&usb_phy {
status = "okay";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9331_tplink_tl-wr703n_tl-mr10u.dtsi"
/ {
model = "TP-Link TL-MR10U";
compatible = "tplink,tl-mr10u", "qca,ar9331";
};
&reg_usb_vbus {
gpio = <&gpio 18 GPIO_ACTIVE_HIGH>;
};

View File

@@ -0,0 +1,174 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9331.dtsi"
/ {
model = "TP-Link TL-MR3020 V1";
compatible = "tplink,tl-mr3020-v1", "qca,ar9331";
aliases {
serial0 = &uart;
led-boot = &system;
led-failsafe = &system;
led-running = &system;
led-upgrade = &system;
};
leds {
compatible = "gpio-leds";
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tpt";
};
lan {
label = "tp-link:green:lan";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
system: wps {
label = "tp-link:green:wps";
gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
};
led3g {
label = "tp-link:green:3g";
gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
keys {
compatible = "gpio-keys";
button0 {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
button1 {
label = "sw1";
linux,input-type = <EV_SW>;
linux,code = <BTN_0>;
gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
button2 {
label = "sw2";
linux,input-type = <EV_SW>;
linux,code = <BTN_1>;
gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
};
reg_usb_vbus: reg_usb_vbus {
compatible = "regulator-fixed";
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
&ref {
clock-frequency = <25000000>;
};
&uart {
status = "okay";
};
&usb {
#address-cells = <1>;
#size-cells = <0>;
dr_mode = "host";
vbus-supply = <&reg_usb_vbus>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};
&spi {
num-chipselects = <1>;
status = "okay";
/* Spansion S25FL032PIF SPI flash */
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <104000000>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x3c0000>;
};
partition@3e0000 {
label = "config";
reg = <0x3e0000 0x010000>;
read-only;
};
art: partition@3f0000 {
label = "art";
reg = <0x3f0000 0x010000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <0>;
switch-phy-swap = <0>;
};
};
&eth1 {
status = "okay";
compatible = "syscon", "simple-mfd";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,162 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9331.dtsi"
/ {
model = "TP-Link TL-MR3040 V2";
compatible = "tplink,tl-mr3040-v2", "qca,ar9331";
aliases {
serial0 = &uart;
led-boot = &led_lan;
led-failsafe = &led_lan;
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&switch_led_disable_pins>;
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
led_lan: lan {
label = "tp-link:green:lan";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
led3g {
label = "tp-link:green:3g";
gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
sw1 {
label = "sw1";
linux,input-type = <EV_SW>;
linux,code = <BTN_0>;
gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
sw2 {
label = "sw2";
linux,input-type = <EV_SW>;
linux,code = <BTN_1>;
gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
};
reg_usb_vbus: reg_usb_vbus {
compatible = "regulator-fixed";
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 18 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
&ref {
clock-frequency = <25000000>;
};
&uart {
status = "okay";
};
&usb {
#address-cells = <1>;
#size-cells = <0>;
dr_mode = "host";
vbus-supply = <&reg_usb_vbus>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};
&spi {
num-chipselects = <1>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <104000000>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x3d0000>;
};
art: partition@3f0000 {
label = "art";
reg = <0x3f0000 0x010000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <0>;
switch-phy-swap = <0>;
};
};
&eth1 {
status = "okay";
compatible = "syscon", "simple-mfd";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9331_tplink_tl-wr703n_tl-mr10u.dtsi"
/ {
model = "TP-Link TL-WR703N";
compatible = "tplink,tl-wr703n", "qca,ar9331";
};
&reg_usb_vbus {
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
};

View File

@@ -0,0 +1,120 @@
// 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 "ar9331.dtsi"
/ {
aliases {
serial0 = &uart;
led-boot = &system;
led-failsafe = &system;
led-running = &system;
led-upgrade = &system;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
system: system {
label = "tl-wr703n:blue:system";
gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
};
};
reg_usb_vbus: reg_usb_vbus {
compatible = "regulator-fixed";
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
};
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
reg = <0x0 0x20000>;
label = "u-boot";
read-only;
};
firmware: partition@20000 {
compatible = "tplink,firmware";
reg = <0x20000 0x3d0000>;
label = "firmware";
};
art: partition@3f0000 {
reg = <0x3f0000 0x10000>;
label = "art";
read-only;
};
};
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <0>;
switch-phy-swap = <0>;
};
};
&eth1 {
status = "okay";
compatible = "syscon", "simple-mfd";
};
&uart {
status = "okay";
};
&usb {
dr_mode = "host";
vbus-supply = <&reg_usb_vbus>;
status = "okay";
};
&usb_phy {
status = "okay";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,39 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar9331_tplink_tl-wr710n.dtsi"
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
reg = <0x0 0x20000>;
label = "u-boot";
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
reg = <0x20000 0x7d0000>;
label = "firmware";
};
art: partition@7f0000 {
reg = <0x7f0000 0x10000>;
label = "art";
read-only;
};
};
};
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9331_tplink_tl-wr710n-8m.dtsi"
/ {
model = "TP-Link TL-WR710N v1";
compatible = "tplink,tl-wr710n-v1", "qca,ar9331";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9331_tplink_tl-wr710n-8m.dtsi"
/ {
model = "TP-Link TL-WR710N v2.1";
compatible = "tplink,tl-wr710n-v2.1", "qca,ar9331";
};

View File

@@ -0,0 +1,92 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9331.dtsi"
/ {
aliases {
serial0 = &uart;
led-boot = &led_system;
led-failsafe = &led_system;
led-running = &led_system;
led-upgrade = &led_system;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
led_system: system {
label = "tl-wr710n:green:system";
gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
};
};
reg_usb_vbus: regulator {
compatible = "regulator-fixed";
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <0>;
switch-phy-swap = <0>;
};
};
&eth1 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <(-1)>;
};
&gpio {
status = "okay";
};
&uart {
status = "okay";
};
&usb {
status = "okay";
dr_mode = "host";
vbus-supply = <&reg_usb_vbus>;
};
&usb_phy {
status = "okay";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9331_tplink_tl-wr741nd-v4.dtsi"
/ {
model = "TP-Link TL-WR740N v4";
compatible = "tplink,tl-wr740n-v4", "qca,ar9331";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9331_tplink_tl-wr741nd-v4.dtsi"
/ {
model = "TP-Link TL-WR740N v5";
compatible = "tplink,tl-wr740n-v5", "qca,ar9331";
};

View File

@@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9331_tplink_tl-wr741nd-v4.dtsi"
/ {
model = "TP-Link TL-WR741N/ND v4";
compatible = "tplink,tl-wr741nd-v4", "qca,ar9331";
};

View File

@@ -0,0 +1,152 @@
// 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 "ar9331.dtsi"
/ {
compatible = "tplink,tl-wr741n-v4", "qca,ar9331";
model = "TP-Link TL-WR741N/ND v4";
aliases {
serial0 = &uart;
led-boot = &system;
led-failsafe = &system;
led-running = &system;
led-upgrade = &system;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 26 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&switch_led_disable_pins>;
lan1 {
label = "tp-link:green:lan1";
gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
};
lan2 {
label = "tp-link:green:lan2";
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
};
lan3 {
label = "tp-link:green:lan3";
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
};
lan4 {
label = "tp-link:green:lan4";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
qss {
label = "tp-link:green:qss";
gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
};
system: system {
label = "tp-link:green:system";
gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
};
wan {
label = "tp-link:green:wan";
gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
};
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tpt";
};
};
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
reg = <0x0 0x20000>;
label = "u-boot";
read-only;
};
firmware: partition@20000 {
compatible = "tplink,firmware";
reg = <0x20000 0x3d0000>;
label = "firmware";
};
art: partition@3f0000 {
reg = <0x3f0000 0x10000>;
label = "art";
read-only;
};
};
};
};
&eth0 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <1>;
gmac-config {
device = <&gmac>;
switch-phy-addr-swap = <1>;
switch-phy-swap = <1>;
};
};
&eth1 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <(-1)>;
};
&uart {
status = "okay";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,26 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar934x.dtsi"
/ {
compatible = "qca,ar9341";
};
&cpuintc {
qca,ddr-wb-channel-interrupts = <2>, <3>, <4>, <5>;
qca,ddr-wb-channels = <&ddr_ctrl 4>, <&ddr_ctrl 2>,
<&ddr_ctrl 0>, <&ddr_ctrl 1>;
};
&wmac {
interrupt-parent = <&cpuintc>;
interrupts = <2>;
};
&eth0 {
phy-mode = "mii";
};
&eth1 {
status = "okay";
};

View File

@@ -0,0 +1,166 @@
// 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 "ar9341.dtsi"
/ {
model = "PowerCloud Systems CR3000";
compatible = "pcs,cr3000", "qca,ar9341";
aliases {
serial0 = &uart;
led-boot = &status;
led-failsafe = &status;
led-running = &status;
led-upgrade = &status;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
pinctrl-names = "default";
pinctrl-0 = <&jtag_disable_pins>;
reset {
label = "Reset button";
linux,code = <KEY_RESTART>;
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "WPS button";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
status: power {
label = "pcs:amber:power";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
default-state = "on";
};
wlan2g {
label = "pcs:blue:wlan";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
wan {
label = "pcs:blue:wan";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
};
lan1 {
label = "pcs:blue:lan1";
gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
};
lan2 {
label = "pcs:blue:lan2";
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
};
lan3 {
label = "pcs:blue:lan3";
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
};
lan4 {
label = "pcs:blue:lan4";
gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
};
};
};
&ref {
clock-frequency = <25000000>;
};
&uart {
status = "okay";
};
&gpio {
status = "okay";
};
&spi {
num-cs = <1>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x040000>;
read-only;
};
partition@40000 {
label = "u-boot-env";
reg = <0x040000 0x010000>;
read-only;
};
partition@50000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x050000 0x07a0000>;
};
art: partition@7f0000 {
label = "art";
reg = <0x7f0000 0x010000>;
read-only;
};
};
};
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&art 0x1002>;
};
&eth0 {
status = "okay";
phy-handle = <&swphy0>;
mtd-mac-address = <&art 0x0>;
mtd-mac-address-increment = <1>;
};
&eth1 {
status = "okay";
phy-handle = <&swphy4>;
mtd-mac-address = <&art 0x0>;
phy-mode = "gmii";
pll-data = <0x06000000 0x00000101 0x00001616>;
gmac-config {
device = <&gmac>;
switch-phy-swap = <1>;
};
};

View File

@@ -0,0 +1,194 @@
// 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 "ar9341.dtsi"
/ {
model = "TP-Link TL-MR3420 v2";
compatible = "tplink,tl-mr3420-v2", "qca,ar9341";
aliases {
serial0 = &uart;
led-boot = &system;
led-failsafe = &system;
led-running = &system;
led-upgrade = &system;
};
keys {
compatible = "gpio-keys";
reset {
label = "Reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
rfkill {
label = "WiFi";
linux,code = <KEY_RFKILL>;
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
system: power {
label = "tp-link:green:power";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
default-state = "on";
};
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
qss {
label = "tp-link:green:qss";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
};
wan {
label = "tp-link:green:wan";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
};
lan1 {
label = "tp-link:green:lan1";
gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
};
lan2 {
label = "tp-link:green:lan2";
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
};
lan3 {
label = "tp-link:green:lan3";
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
};
lan4 {
label = "tp-link:green:lan4";
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
};
usb {
label = "tp-link:green:usb";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
};
&ref {
clock-frequency = <25000000>;
};
&uart {
status = "okay";
};
&gpio {
pinctrl-names = "default";
pinctrl-0 = <&jtag_disable_pins &pmx_usb_power>;
usb_power {
gpio-hog;
gpios = <4 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "tp-link:power:usb";
};
};
&pinmux {
pmx_usb_power: usb_power {
pinctrl-single,bits = <0x4 0x0 0xff>;
};
};
&spi {
num-cs = <1>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x3d0000>;
};
art: partition@3f0000 {
label = "art";
reg = <0x3f0000 0x010000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
phy-handle = <&swphy0>;
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <(-1)>;
};
&eth1 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
gmac-config {
device = <&gmac>;
switch-phy-swap = <1>;
};
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};
&usb {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};

View File

@@ -0,0 +1,81 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9341.dtsi"
/ {
aliases {
serial0 = &uart;
};
};
&ref {
clock-frequency = <25000000>;
};
&spi {
status = "okay";
num-cs = <1>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x3d0000>;
};
art: partition@3f0000 {
label = "art";
reg = <0x3f0000 0x010000>;
read-only;
};
};
};
};
&uart {
status = "okay";
};
&eth0 {
status = "okay";
phy-handle = <&swphy0>;
mtd-mac-address = <&uboot 0x1fc00>;
gmac-config {
device = <&gmac>;
switch-phy-swap = <1>;
};
};
&eth1 {
compatible = "syscon", "simple-mfd";
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

View File

@@ -0,0 +1,79 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9341_tplink_tl-wa.dtsi"
/ {
model = "TP-Link TL-WA850RE v1";
compatible = "tplink,tl-wa850re-v1", "qca,ar9341";
aliases {
led-boot = &led_re;
led-failsafe = &led_re;
led-running = &led_re;
led-upgrade = &led_re;
};
keys {
compatible = "gpio-keys";
reset {
label = "Reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "WPS";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
lan {
label = "tp-link:blue:lan";
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
};
wlan {
label = "tp-link:blue:wlan";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
led_re: re {
label = "tp-link:blue:re";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
};
signal1 {
label = "tp-link:blue:signal1";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
signal2 {
label = "tp-link:blue:signal2";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
signal3 {
label = "tp-link:blue:signal3";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
signal4 {
label = "tp-link:blue:signal4";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
signal5 {
label = "tp-link:blue:signal5";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
};
};
};

View File

@@ -0,0 +1,72 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9341_tplink_tl-wa.dtsi"
/ {
model = "TP-Link TL-WA860RE v1";
compatible = "tplink,tl-wa860re-v1", "qca,ar9341";
aliases {
led-boot = &led_power_green;
led-failsafe = &led_power_orange;
led-running = &led_power_green;
led-upgrade = &led_power_orange;
};
keys {
compatible = "gpio-keys";
reset {
label = "Reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "WPS";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
onoff {
label = "ONOFF";
linux,code = <BTN_1>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
lan {
label = "tp-link:green:lan";
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
};
led_power_green: power_green {
label = "tp-link:green:power";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
default-state = "on";
};
led_power_orange: power_orange {
label = "tp-link:orange:power";
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
};
wlan_green {
label = "tp-link:green:wlan";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
wlan_orange {
label = "tp-link:orange:wlan";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
};
};

View File

@@ -0,0 +1,169 @@
// 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 "ar9341.dtsi"
/ {
model = "TP-Link TL-WR841N/ND v8";
compatible = "tplink,tl-wr841-v8", "qca,ar9341";
aliases {
serial0 = &uart;
led-boot = &system;
led-failsafe = &system;
led-running = &system;
led-upgrade = &system;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "Reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
rfkill {
label = "WiFi";
linux,code = <KEY_RFKILL>;
linux,input-type = <EV_SW>;
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
system: power {
label = "tp-link:green:power";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
default-state = "on";
};
wlan {
label = "tp-link:green:wlan";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
qss {
label = "tp-link:green:qss";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
};
wan {
label = "tp-link:green:wan";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
};
lan1 {
label = "tp-link:green:lan1";
gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
};
lan2 {
label = "tp-link:green:lan2";
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
};
lan3 {
label = "tp-link:green:lan3";
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
};
lan4 {
label = "tp-link:green:lan4";
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
};
};
};
&ref {
clock-frequency = <25000000>;
};
&uart {
status = "okay";
};
&gpio {
pinctrl-names = "default";
pinctrl-0 = <&jtag_disable_pins &pmx_usb_power>;
};
&pinmux {
pmx_usb_power: usb_power {
pinctrl-single,bits = <0x4 0x0 0xff>;
};
};
&spi {
num-cs = <1>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x020000>;
read-only;
};
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0x3d0000>;
};
art: partition@3f0000 {
label = "art";
reg = <0x3f0000 0x010000>;
read-only;
};
};
};
};
&eth0 {
status = "okay";
phy-handle = <&swphy0>;
mtd-mac-address = <&uboot 0x1fc00>;
mtd-mac-address-increment = <(-1)>;
};
&eth1 {
status = "okay";
mtd-mac-address = <&uboot 0x1fc00>;
pll-data = <0x06000000 0x00000101 0x00001616>;
gmac-config {
device = <&gmac>;
switch-phy-swap = <1>;
};
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x1000>;
mtd-mac-address = <&uboot 0x1fc00>;
};

Some files were not shown because too many files have changed in this diff Show More