ramips: add support for DLINK DIR-510L

The DIR-510L Wireless Router are based on the MT7620A SoC.

Specification:

-MediaTek MT7620A (580 Mhz)
-128 MB of RAM
-16 MB of FLASH
-802.11bgn radio
-1x 10/100 Mbps Ethernet
-2x internal, non-detachable antennas
-UART (J3) header on PCB (57600 8n1)
-1x bi-color LED (GPIO-controlled), 2x button
-JBOOT bootloader

Known issues:
-Ethernet port is used as LAN
-No communication with charger IC. (uart bitbang needed)

Installation:
Apply factory image via d-link http web-gui.

How to revert to OEM firmware:
1.) Push the reset button and turn on the power. Wait until LED start blinking (~10sec.)
2.) Upload original factory image via JBOOT http (IP: 192.168.123.254)
3.) If http doesn't work, it can be done with curl command:
    curl -F FN=@XXXXX.bin http://192.168.123.254/upg
    where XXXXX.bin is name of firmware file.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[fixed whitespace issue in 10-rt2x00-eeprom]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
openwrt-19.07
Pawel Dembicki 2018-03-19 19:15:29 +01:00 committed by Petr Štetiar
parent 1f149fcad3
commit 67fced9ba3
5 changed files with 161 additions and 0 deletions

View File

@ -365,6 +365,7 @@ ramips_setup_interfaces()
ucidef_add_switch "switch0" \
"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5:wan" "6@eth0"
;;
dlink,dir-510l|\
re350-v1)
ucidef_add_switch "switch0" \
"0:lan" "6@eth0"
@ -513,6 +514,7 @@ ramips_setup_macs()
lan_mac=$(mtd_get_mac_ascii factory lanmac)
wan_mac=$(mtd_get_mac_ascii factory wanmac)
;;
dlink,dir-510l|\
dlink,dwr-116-a1|\
dlink,dwr-118-a1|\
dlink,dwr-118-a2|\

View File

@ -7,6 +7,10 @@ board_config_update
board=$(board_name)
case "$board" in
dlink,dir-510l)
ucidef_add_gpio_switch "usb_enable1" "USB 1A enable" "12" "0"
ucidef_add_gpio_switch "usb_enable05" "USB 0.5A enable" "13" "1"
;;
mikrotik,rb750gr3)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "17"
;;

View File

@ -54,6 +54,7 @@ board=$(board_name)
case "$FIRMWARE" in
"soc_wmac.eeprom")
case $board in
dlink,dir-510l|\
dlink,dwr-116-a1|\
dlink,dwr-118-a1|\
dlink,dwr-118-a2|\

View File

@ -0,0 +1,142 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "mt7620a.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
/ {
compatible = "dlink,dir-510l", "ralink,mt7620a-soc";
model = "D-Link DIR-510L";
aliases {
led-boot = &led_status;
led-failsafe = &led_status;
led-running = &led_status;
led-upgrade = &led_status;
};
chosen {
bootargs = "console=ttyS1,57600";
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
wps {
label = "wps";
gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
};
leds {
compatible = "gpio-leds";
led_status: status {
label = "dir-510l:green:status";
gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
};
status-red {
label = "dir-510l:red:status";
gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
};
};
};
&ethernet {
mediatek,portmap = "llllw";
};
&uart {
status = "okay";
};
&gpio0 {
status = "okay";
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "jboot";
reg = <0x0 0x10000>;
read-only;
};
partition@10000 {
label = "recovery";
reg = <0x10000 0x200000>;
read-only;
};
partition@210000 {
compatible = "amit,jimage";
label = "firmware";
reg = <0x210000 0xde0000>;
};
config: partition@ff0000 {
label = "config";
reg = <0xff0000 0x10000>;
read-only;
};
};
};
};
&ehci {
status = "okay";
};
&ohci {
status = "okay";
};
&pcie {
status = "okay";
};
&pcie0 {
mt76x0e@0,0 {
reg = <0x0000 0 0 0 0>;
mtd-mac-address = <&config 0xe490>;
mtd-mac-address-increment = <(2)>;
mediatek,mtd-eeprom = <&config 0xe05d>;
};
};
&gsw {
mediatek,port4 = "ephy";
};
&pinctrl {
state_default: pinctrl0 {
default {
ralink,group = "i2c", "uartf";
ralink,function = "gpio";
};
};
};

View File

@ -190,6 +190,18 @@ define Device/dir-810l
endef
TARGET_DEVICES += dir-810l
define Device/dlink_dir-510l
$(Device/amit_jboot)
DTS := DIR-510L
DEVICE_TITLE := D-Link DIR-510L
DEVICE_PACKAGES += kmod-mt76x0e
DLINK_ROM_ID := DLK6E3805001
DLINK_FAMILY_MEMBER := 0x6E38
DLINK_FIRMWARE_SIZE := 0xDE0000
DLINK_IMAGE_OFFSET := 0x210000
endef
TARGET_DEVICES += dlink_dir-510l
define Device/dlink_dwr-116-a1
$(Device/amit_jboot)
DTS := DWR-116-A1