]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ath79: support Dragino MS14
authorLech Perczak <lech.perczak@gmail.com>
Wed, 20 May 2026 13:46:09 +0000 (15:46 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 25 May 2026 22:01:39 +0000 (00:01 +0200)
Dragino MS14 is a small router/development kit with two Fast Ethernet
ports, with single 1x1 2,4GHz Wi-Fi radio and expansion headers.

Specifications:
CPU: Atheros AR9330 SoC @400MHz,
RAM: 64MB DDR,
Flash: 16MB SPI-NOR,
Ethernet: Two 100Mbps ports, LAN on eth0, WAN on eth1,
Wireless: built-in 1x1 802.11 2.4GHz radio,
USB: single USB2.0 High speed host port,
LEDs: 4 status LEDs for system, LAN, WAN and WLAN.
UART: 115200-8-N-1 at the 2x8 header
Label MAC: Wi-Fi interface.

The board support is ported over from old ar71xx target, and only
partially verified using LPS8 board, which will be introduced next.

Installation:
Log in via SSH to the unit, default username and password are 'root' and
'dragino', respectively. SSH listens on port 2222.
Just 'sysupgrade -n' from vendor firmware, dropping old configuration.

Update with configuration from ar71xx builds may be possible, but isn't
guaranteed, as the builds are many releases apart.

Restore vendor firmware:
the same as installation, just 'sysupgrade -F -n', dropping configuration.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23472
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/ath79/dts/ar9330_dragino_dragino2.dtsi [new file with mode: 0644]
target/linux/ath79/dts/ar9330_dragino_ms14.dts [new file with mode: 0644]
target/linux/ath79/generic/base-files/etc/board.d/01_leds
target/linux/ath79/generic/base-files/etc/uci-defaults/04_led_migration
target/linux/ath79/image/generic.mk

diff --git a/target/linux/ath79/dts/ar9330_dragino_dragino2.dtsi b/target/linux/ath79/dts/ar9330_dragino_dragino2.dtsi
new file mode 100644 (file)
index 0000000..bfbaa03
--- /dev/null
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9330.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       pinctrl-names = "default";
+       pinctrl-0 = <&jtag_disable_pins>;
+
+       aliases {
+               led-boot = &led_system;
+               led-failsafe = &led_system;
+               led-running = &led_system;
+               led-upgrade = &led_system;
+               label-mac-device = &wmac;
+       };
+
+       gpio_leds: leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&switch_led_disable_pins>;
+
+               led_system: system {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio 28 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+                       panic-indicator;
+               };
+       };
+
+       gpio_keys: keys {
+               compatible = "gpio-keys";
+       };
+};
+
+&usb {
+       status = "okay";
+
+       dr_mode = "host";
+};
+
+&usb_phy {
+       status = "okay";
+};
+
+&spi {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <50000000>;
+               reg = <0>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x000000 0x040000>;
+                               read-only;
+                       };
+
+                       partition@40000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x040000 0xfa0000>;
+                       };
+
+                       partition@fe0000 {
+                               label = "config";
+                               reg = <0xfe0000 0x10000>;
+                               read-only;
+                       };
+                       partition@ff0000 {
+                               label = "art";
+                               reg = <0xff0000 0x010000>;
+                               read-only;
+
+                               nvmem-layout {
+                                       compatible = "fixed-layout";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       macaddr_art_0: macaddr@0 {
+                                               reg = <0x0 0x6>;
+                                       };
+
+                                       macaddr_art_6: macaddr@6 {
+                                               reg = <0x6 0x6>;
+                                       };
+
+                                       macaddr_art_1002: macaddr@1002 {
+                                               reg = <0x1002 0x6>;
+                                       };
+
+                                       cal_art_1000: calibration@1000 {
+                                               reg = <0x1000 0x440>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       nvmem-cells = <&macaddr_art_0>;
+       nvmem-cell-names = "mac-address";
+};
+
+&eth1 {
+       status = "okay";
+
+       nvmem-cells = <&macaddr_art_6>;
+       nvmem-cell-names = "mac-address";
+
+       gmac-config {
+               device = <&gmac>;
+
+               switch-phy-addr-swap = <0>;
+               switch-phy-swap = <0>;
+       };
+};
+
+&wmac {
+       status = "okay";
+
+       nvmem-cells = <&macaddr_art_1002>, <&cal_art_1000>;
+       nvmem-cell-names = "mac-address", "calibration";
+};
diff --git a/target/linux/ath79/dts/ar9330_dragino_ms14.dts b/target/linux/ath79/dts/ar9330_dragino_ms14.dts
new file mode 100644 (file)
index 0000000..9901df9
--- /dev/null
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9330_dragino_dragino2.dtsi"
+
+/ {
+       model = "Dragino MS14";
+       compatible = "dragino,ms14", "qca,ar9330";
+};
+
+&gpio_leds {
+       lan {
+               function = LED_FUNCTION_LAN;
+               color = <LED_COLOR_ID_RED>;
+               gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+       };
+
+       wan {
+               function = LED_FUNCTION_WAN;
+               color = <LED_COLOR_ID_RED>;
+               gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&gpio_keys {
+       jumpstart {
+               label = "jumpstart";
+               linux,code = <BTN_0>;
+               gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+       };
+
+       reset {
+               label = "reset";
+               linux,code = <KEY_RESTART>;
+               gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&wmac {
+       led {
+               led-sources = <0>;
+       };
+};
index ffe1f5d7b611730f9d5565418b4ad5cea5cfa0a9..ef999afd071c683a16971b657b2350a324bc76f5 100644 (file)
@@ -252,6 +252,10 @@ dlink,dap-1365-a1)
        ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:rssimediumhigh" "wlan0" "51" "100"
        ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:rssihigh" "wlan0" "76" "100"
        ;;
+dragino,ms14)
+       ucidef_set_led_netdev "lan" "LAN" "red:lan" "eth0"
+       ucidef_set_led_netdev "wan" "WAN" "red:wan" "eth1"
+       ;;
 engenius,ens202ext-v1|\
 engenius,enstationac-v1)
        ucidef_set_rssimon "wlan0" "200000" "1"
index e9b0fade381ef477e5c4ab77587f767edfaafbbf..51289026318f0a856eaa03bb167896a6656c2ea3 100644 (file)
@@ -11,6 +11,9 @@ dlink,dap-1330-a1)
                "green:signal1=green:rssimediumhigh" \
                "green:signal2=green:rssihigh"
        ;;
+dragino,ms14)
+       migrate_leds "red:system=red:status"
+       ;;
 engenius,epg5000)
        migrate_leds ":wlan-2g=:wlan2g" ":wlan-5g=:wlan5g"
        ;;
index b1a37807991c1d243e2a15f9779e9ebdb785c489..be1658801f63696e5cbbd3dbb375bbe02dd0ed1b 100644 (file)
@@ -1315,6 +1315,16 @@ define Device/dlink_dir-842-c3
 endef
 TARGET_DEVICES += dlink_dir-842-c3
 
+define Device/dragino_ms14
+  SOC := ar9330
+  DEVICE_VENDOR := Dragino
+  DEVICE_MODEL := MS14
+  DEVICE_PACKAGES := kmod-usb-chipidea2
+  IMAGE_SIZE := 16000k
+  SUPPORTED_DEVICES += dragino2
+endef
+TARGET_DEVICES += dragino_ms14
+
 define Device/elecom_wab
   DEVICE_VENDOR := ELECOM
   IMAGE_SIZE := 14336k