Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ramips: Add support for D-Link DIR-3060 A1 #10697

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
241 changes: 241 additions & 0 deletions target/linux/ramips/dts/mt7621_dlink_dir-3060-a1.dts
@@ -0,0 +1,241 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

#include "mt7621.dtsi"

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

/ {
compatible = "dlink,dir-3060-a1", "mediatek,mt7621-soc";
model = "D-Link DIR-3060 A1";

aliases {
label-mac-device = &gmac0;
led-boot = &led_power_orange;
led-failsafe = &led_power_white;
led-running = &led_power_white;
led-upgrade = &led_net_orange;
};

keys {
compatible = "gpio-keys";

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

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

leds {
compatible = "gpio-leds";

led_power_orange: power_orange {
label = "orange:power";
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
};

led_power_white: power_white {
label = "white:power";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
};

led_net_orange: net_orange {
label = "orange:net";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
};

net_white {
label = "white:net";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};

usb2_white {
label = "white:usb2";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
trigger-sources = <&ehci_port2>;
linux,default-trigger = "usbport";
};

usb3_white {
label = "white:usb3";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
trigger-sources = <&xhci_ehci_port1>;
linux,default-trigger = "usbport";
};

wlan2g {
label = "white:wlan2g";
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0radio";
};

wlan5glb {
label = "white:wlan5glb";
gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy1radio";
};

wlan5ghb {
label = "white:wlan5ghb";
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy2radio";
};
};
};

&nand {
status = "okay";

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
label = "Bootloader";
reg = <0x0 0x80000>;
read-only;
};

partition@80000 {
label = "config";
reg = <0x80000 0x80000>;
read-only;
};

factory: partition@100000 {
label = "factory";
reg = <0x100000 0x40000>;
read-only;
};

partition@140000 {
label = "config2";
reg = <0x140000 0x40000>;
read-only;
};

partition@180000 {
label = "firmware";
compatible = "openwrt,uimage", "denx,uimage";
openwrt,padding = <96>;
reg = <0x180000 0x2800000>;
};

partition@2980000 {
label = "private";
reg = <0x2980000 0x2000000>;
read-only;
};

partition@4980000 {
label = "firmware2";
reg = <0x4980000 0x2800000>;
read-only;
};

partition@7180000 {
label = "mydlink";
reg = <0x7180000 0x600000>;
read-only;
};

partition@7780000 {
label = "reserved";
reg = <0x7780000 0x880000>;
read-only;
};
};
};

&pcie {
status = "okay";
};

&pcie0 {
wifi0: wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x0>;
ieee80211-freq-limit = <2400000 6000000>;
nvmem-cells = <&macaddr_factory_e000>;
nvmem-cell-names = "mac-address";
mac-address-increment = <1>;
};
};

&pcie1 {
wifi1: wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
nvmem-cells = <&macaddr_factory_e000>;
nvmem-cell-names = "mac-address";
mac-address-increment = <3>;
};
};

&gmac0 {
nvmem-cells = <&macaddr_factory_e000>;
nvmem-cell-names = "mac-address";
};

&switch0 {
ports {
port@0 {
status = "okay";
label = "lan4";
};

port@1 {
status = "okay";
label = "lan3";
};

port@2 {
status = "okay";
label = "lan2";
};

port@3 {
status = "okay";
label = "lan1";
};

port@4 {
status = "okay";
label = "wan";
nvmem-cells = <&macaddr_factory_e006>;
nvmem-cell-names = "mac-address";
};
};
};

&state_default {
gpio {
groups = "i2c", "uart3", "jtag", "wdt";
function = "gpio";
};
};

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

macaddr_factory_e000: macaddr@e000 {
reg = <0xe000 0x6>;
};

macaddr_factory_e006: macaddr@e006 {
reg = <0xe006 0x6>;
};
};
7 changes: 7 additions & 0 deletions target/linux/ramips/image/mt7621.mk
Expand Up @@ -521,6 +521,13 @@ define Device/dlink_dir-2660-a1
endef
TARGET_DEVICES += dlink_dir-2660-a1

define Device/dlink_dir-3060-a1
$(Device/dlink_dir-xx60-a1)
DEVICE_MODEL := DIR-3060
DEVICE_VARIANT := A1
endef
TARGET_DEVICES += dlink_dir-3060-a1

define Device/dlink_dir-853-a3
$(Device/dlink_dir-xx60-a1)
DEVICE_MODEL := DIR-853
Expand Down
6 changes: 5 additions & 1 deletion target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
Expand Up @@ -52,7 +52,11 @@ xzwifi,creativebox-v1)
dlink,dir-1960-a1|\
dlink,dir-2640-a1|\
dlink,dir-2660-a1)
ucidef_set_led_netdev "wan" "wan" "white:net" "wan"
ucidef_set_led_netdev "wan" "wan" "white:net" "wan"
;;
dlink,dir-3060-a1)
ucidef_set_led_netdev "net_white" "WAN Link" "white:net" "wan" "link"
ucidef_set_led_netdev "net_orange" "WAN Activity" "orange:net" "wan" "tx rx"
;;
dlink,dir-853-a3)
ucidef_set_led_netdev "wan" "wan" "blue:net" "wan"
Expand Down
Expand Up @@ -61,6 +61,7 @@ platform_do_upgrade() {
dlink,dir-1960-a1|\
dlink,dir-2640-a1|\
dlink,dir-2660-a1|\
dlink,dir-3060-a1|\
dlink,dir-853-a3|\
h3c,tx1800-plus|\
h3c,tx1801-plus|\
Expand Down