[openwrt/openwrt] ramips: add support for Hi-Link HLK-7688A

LEDE Commits lede-commits at lists.infradead.org
Fri Feb 5 12:20:06 EST 2021


adrian pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/ddafcc79473249089ffd4c2de8159af2a27e5683

commit ddafcc79473249089ffd4c2de8159af2a27e5683
Author: Ewan Parker <ewan at ewan.cc>
AuthorDate: Sat Oct 31 09:29:54 2020 +0000

    ramips: add support for Hi-Link HLK-7688A
    
    Specifications:
    
      - SoC: MediaTek MT7688AN
      - RAM: 128 MB
      - Flash: 32 MB
      - Ethernet: 5x 10/100 (1x WAN, 4x LAN)
      - Wireless: built in 2.4GHz (bgn)
      - USB: 1x USB 2.0 port
      - Buttons: 1x Reset
      - LEDs: 1x (WiFi)
    
    Flash instructions:
    
      - Configure TFTP server with IP address 10.10.10.3
      - Name the firmware file as firmware.bin
      - Connect any Ethernet port to the TFTP server's LAN
      - Choose option 2 in U-Boot
      - Alternatively choose option 7 to upload firmware to the built-in
        web server
    
    MAC addresses as verified by OEM firmware:
    
      use   address   source
      2g    *:XX      factory 0x4
      LAN   *:XX+1    factory 0x28
      WAN   *:XX+1    factory 0x2e
    
    Notes:
    
    This board is ostensibly a module containing the MediaTek MT7688AN SoC,
    128 MB DDR2 SDRAM and 32 MB flash storage.  The SoC can be operated in
    IoT Gateway Mode or IoT Device Mode.
    
    From some vendors the U-Boot that comes installed operates on UART 2
    which is inaccessible in gateway mode and operates unreliably in the
    Linux kernel when using more than 64 MB of RAM.  For those, updating
    U-Boot is recommended.
    
    Signed-off-by: Ewan Parker <ewan at ewan.cc>
    [add WLAN to 01_leds]
    Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
 .../linux/ramips/dts/mt7628an_hilink_hlk-7688a.dts | 115 +++++++++++++++++++++
 target/linux/ramips/image/mt76x8.mk                |   8 ++
 .../ramips/mt76x8/base-files/etc/board.d/01_leds   |   3 +
 .../mt76x8/base-files/etc/board.d/02_network       |   2 +
 4 files changed, 128 insertions(+)

diff --git a/target/linux/ramips/dts/mt7628an_hilink_hlk-7688a.dts b/target/linux/ramips/dts/mt7628an_hilink_hlk-7688a.dts
new file mode 100644
index 0000000000..969488e416
--- /dev/null
+++ b/target/linux/ramips/dts/mt7628an_hilink_hlk-7688a.dts
@@ -0,0 +1,115 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7628an.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	compatible = "hilink,hlk-7688a", "mediatek,mt7628an-soc";
+	model = "Hi-Link HLK-7688A";
+
+	aliases {
+		led-boot = &led_wlan;
+		led-failsafe = &led_wlan;
+		led-upgrade = &led_wlan;
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_wlan: wlan {
+			label = "green:wlan";
+			gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		groups = "wdt", "wled_an";
+		function = "gpio";
+	};
+};
+
+&uart1 {
+	status = "okay";
+};
+
+&i2c {
+	status = "okay";
+};
+
+&spi0 {
+	status = "okay";
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi_pins>, <&spi_cs1_pins>;
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <40000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition at 30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+				read-only;
+			};
+
+			factory: partition at 40000 {
+				label = "factory";
+				reg = <0x40000 0x10000>;
+				read-only;
+			};
+
+			partition at 50000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x50000 0x1fb0000>;
+			};
+		};
+	};
+
+	spidev at 1 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "linux,spidev";
+		reg = <1>;
+		spi-max-frequency = <40000000>;
+	};
+};
+
+&ethernet {
+	mtd-mac-address = <&factory 0x28>;
+};
+
+&esw {
+	mediatek,portmap = <0x3e>;
+};
+
+&wmac {
+	status = "okay";
+};
diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk
index 00593dd6f5..00976f6044 100644
--- a/target/linux/ramips/image/mt76x8.mk
+++ b/target/linux/ramips/image/mt76x8.mk
@@ -135,6 +135,14 @@ define Device/hilink_hlk-7628n
 endef
 TARGET_DEVICES += hilink_hlk-7628n
 
+define Device/hilink_hlk-7688a
+  IMAGE_SIZE := 32448k
+  DEVICE_VENDOR := Hi-Link
+  DEVICE_MODEL := HLK-7688A
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += hilink_hlk-7688a
+
 define Device/hiwifi_hc5661a
   IMAGE_SIZE := 15808k
   DEVICE_VENDOR := HiWiFi
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
index 31bd9e05b1..bcbc2ed1e6 100755
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
@@ -33,6 +33,9 @@ hilink,hlk-7628n|\
 skylab,skw92a)
 	ucidef_set_led_netdev "wifi_led" "wifi" "green:wlan" "wlan0"
 	;;
+hilink,hlk-7688a)
+	ucidef_set_led_wlan "wlan" "WLAN" "green:wlan" "phy0tpt"
+	;;
 hiwifi,hc5661a|\
 hiwifi,hc5761a)
 	ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10"
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
index fcc2630b3f..8bbcbb2190 100755
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
@@ -63,6 +63,7 @@ ramips_setup_interfaces()
 			"1:lan" "0:wan" "6 at eth0"
 		;;
 	hilink,hlk-7628n|\
+	hilink,hlk-7688a|\
 	hiwifi,hc5861b|\
 	skylab,skw92a|\
 	tplink,archer-c20-v4|\
@@ -166,6 +167,7 @@ ramips_setup_macs()
 		lan_mac=$wan_mac
 		;;
 	cudy,wr1000|\
+	hilink,hlk-7688a|\
 	wavlink,wl-wn577a2)
 		wan_mac=$(mtd_get_mac_binary factory 0x2e)
 		label_mac=$(mtd_get_mac_binary factory 0x4)



More information about the lede-commits mailing list