diff options
5 files changed, 203 insertions, 0 deletions
diff --git a/target/linux/ath79/dts/ar7240_dlink_dir-615-e4.dts b/target/linux/ath79/dts/ar7240_dlink_dir-615-e4.dts new file mode 100644 index 0000000000..537a99b8db --- /dev/null +++ b/target/linux/ath79/dts/ar7240_dlink_dir-615-e4.dts @@ -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 "ar7240.dtsi" + +/ { + model = "D-Link DIR-615 E4"; + compatible = "dlink,dir-615-e4", "qca,ar7240"; + + aliases { + led-boot = &led_power_amber; + led-failsafe = &led_power_amber; + led-running = &led_power_green; + led-upgrade = &led_power_amber; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = <KEY_RESTART>; + gpios = <&gpio 8 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"; + pinctrl-names = "default"; + pinctrl-0 = <&switch_led_pins>; + + led_power_green: power_green { + label = "d-link:green:power"; + gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; + }; + + led_power_amber: power_amber { + label = "d-link:amber:power"; + gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; + }; + + wps { + label = "d-link:blue:wps"; + gpios = <&gpio 0 GPIO_ACTIVE_LOW>; + }; + + lan1 { + label = "d-link:green:lan1"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + }; + + lan2 { + label = "d-link:green:lan2"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + }; + + lan3 { + label = "d-link:green:lan3"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + + lan4 { + label = "d-link:green:lan4"; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + }; + + wan_amber { + label = "d-link:amber:wan"; + gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; + }; + + wan_green { + label = "d-link:green:wan"; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + }; + }; + + ath9k-leds { + compatible = "gpio-leds"; + + wlan { + label = "d-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 = <33000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + reg = <0x0 0x30000>; + label = "u-boot"; + read-only; + }; + + partition@30000 { + reg = <0x30000 0x10000>; + label = "nvram"; + read-only; + }; + + partition@40000 { + compatible = "denx,uimage"; + reg = <0x40000 0x3b0000>; + label = "firmware"; + }; + + partition@3f0000 { + reg = <0x3f0000 0x10000>; + label = "art"; + read-only; + }; + }; + }; +}; + +ð0 { + status = "okay"; +}; + +ð1 { + status = "okay"; +}; + +&pcie { + status = "okay"; + + ath9k: wifi@0,0 { + compatible = "pci168c,002b"; + reg = <0x0000 0 0 0 0>; + qca,no-eeprom; + #gpio-cells = <2>; + gpio-controller; + }; +}; + +&pinmux { + switch_led_pins: pinmux_switch_led_pins { + pinctrl-single,bits = <0x0 0x0 0xf8>; + }; +}; + +&uart { + status = "okay"; +}; diff --git a/target/linux/ath79/image/tiny.mk b/target/linux/ath79/image/tiny.mk index 8f867575af..5f6adeac86 100644 --- a/target/linux/ath79/image/tiny.mk +++ b/target/linux/ath79/image/tiny.mk @@ -13,6 +13,22 @@ define Device/buffalo_whr-g301n endef TARGET_DEVICES += buffalo_whr-g301n +define Device/dlink_dir-615-e4 + ATH_SOC := ar7240 + DEVICE_VENDOR := D-Link + DEVICE_MODEL := DIR-615 + DEVICE_VARIANT := E4 + IMAGE_SIZE := 3776k + FACTORY_IMAGE_SIZE := 3456k + IMAGES += factory.bin + IMAGE/default := append-kernel | append-rootfs | pad-rootfs + IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := $$(IMAGE/default) | check-size $$$$(FACTORY_IMAGE_SIZE) | \ + pad-to $$$$(FACTORY_IMAGE_SIZE) | append-string "AP99-AR7240-RT-091105-05" + SUPPORTED_DEVICES += dir-615-e4 +endef +TARGET_DEVICES += dlink_dir-615-e4 + define Device/pqi_air-pen ATH_SOC := ar9330 DEVICE_VENDOR := PQI diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds index 03f135f0b0..199ad94bec 100755 --- a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds @@ -15,6 +15,13 @@ buffalo,whr-g301n) ucidef_set_led_switch "lan3" "LAN3" "$boardname:green:lan3" "switch0" "0x08" ucidef_set_led_switch "lan4" "LAN4" "$boardname:green:lan4" "switch0" "0x10" ;; +dlink,dir-615-e4) + ucidef_set_led_netdev "wan" "WAN" "d-link:green:wan" "eth0" + ucidef_set_led_switch "lan1" "LAN1" "d-link:green:lan1" "switch0" "0x02" + ucidef_set_led_switch "lan2" "LAN2" "d-link:green:lan2" "switch0" "0x04" + ucidef_set_led_switch "lan3" "LAN3" "d-link:green:lan3" "switch0" "0x08" + ucidef_set_led_switch "lan4" "LAN4" "d-link:green:lan4" "switch0" "0x10" + ;; netgear,wnr1000-v2|\ netgear,wnr2000-v3) ucidef_set_led_netdev "wan-amber" "WAN (amber)" "netgear:amber:wan" "eth0" diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/02_network b/target/linux/ath79/tiny/base-files/etc/board.d/02_network index b2616456e4..b325c7cf8b 100755 --- a/target/linux/ath79/tiny/base-files/etc/board.d/02_network +++ b/target/linux/ath79/tiny/base-files/etc/board.d/02_network @@ -13,6 +13,7 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" ;; + dlink,dir-615-e4|\ netgear,wnr1000-v2|\ netgear,wnr2000-v3|\ netgear,wnr612-v2|\ @@ -75,6 +76,11 @@ ath79_setup_macs() local board="$1" case "$board" in + dlink,dir-615-e4) + lan_mac=$(mtd_get_mac_ascii "nvram" "lan_mac") + wan_mac=$(mtd_get_mac_ascii "nvram" "wan_mac") + label_mac=$wan_mac + ;; tplink,tl-wr941-v2|\ tplink,tl-wr941n-v7-cn) base_mac=$(mtd_get_mac_binary u-boot 0x1fc00) diff --git a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 3da95cc161..5952a40195 100644 --- a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -14,6 +14,10 @@ case "$FIRMWARE" in tplink,tl-wr941-v4) caldata_extract "art" 0x1000 0xeb8 ;; + dlink,dir-615-e4) + caldata_extract "art" 0x1000 0x1000 + ath9k_patch_mac_crc $(mtd_get_mac_ascii "nvram" "lan_mac") 0x10c + ;; netgear,wnr1000-v2|\ netgear,wnr2000-v3|\ netgear,wnr612-v2|\ |