From patchwork Fri May 3 14:58:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kristian Evensen X-Patchwork-Id: 1094927 X-Patchwork-Delegate: ynezz@true.cz Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Nc8s4OL6"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="sIdoXMo1"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44wZzK6XGxz9s4Y for ; Sat, 4 May 2019 00:59:25 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Subject:MIME-Version:Message-Id:Date:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=faLfBREHZmUgpPh+CjO1UPSfm07P94n0v5U5U0kqyGw=; b=Nc8s4OL6XxdJ3U nydQWhqkuir09IpbM15EBg7fsN2FUvWjzzaLBKSGsBXBlCAzxd5hK/JqXOSrNFBN3u7IngZtrZHea 249NmD3LWCQy7uXsObZOWF3i3LvxGyZwcXXNdcVgaCJxgjzZ4MCs9+l2O13P/trNZFkiOSFkJL+Vp M8NUMGVXM9kqKhhoC7EjEk02c3XrHjbwJFSoKNgE9q6TTHWKgk+tAFwFGbEKYvK9vQNdHR7mTLkuO Cit11BqeRZFqfTfl7teddCG66+aAbcw2/KdU647AKB7ZrfEOMDdIHFe7sBlPPbMNE4/Yyr1Ne/Nz4 /crigLu/WrMR0yjJdhvg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hMZeR-0006Xd-1j; Fri, 03 May 2019 14:59:03 +0000 Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hMZeN-0006WX-09 for openwrt-devel@lists.openwrt.org; Fri, 03 May 2019 14:59:00 +0000 Received: by mail-lj1-x243.google.com with SMTP id s7so59764ljh.1 for ; Fri, 03 May 2019 07:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=8TxQrXr922NOQxPIDaN35DnV3zs2Gxq2N4EzMrQ49+k=; b=sIdoXMo1unr23Mn6ccNmQlNQUlo0nNxJ6fSVAROz+86vR2h4qnubn1LJU2qQmTpvh0 P66g0UkbtI2QQQrJTWEKZfSa39gDUQZWBXt5TRA87JeDKsNvWCPUYWib6mi9SHf2zmNC 1aqKjpcOjh7gZ5GD19K4aY0c8dwJbJ2N12M0o3JeHN2eHgOXfYHxmd+MCDcx4gBmkxsP p/sQJDamYeLLkBvdiOeENegbdIHlM8U+Pu5EhRinNpxVCoUcYG9/fz5yny+7KNXZbgRZ wTDyQCxqt+C+VG87LNaTj3mXunM2nKzio1piDeOd2uc0eMorwBae/U9DiG7Vah4g4pFl h6zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=8TxQrXr922NOQxPIDaN35DnV3zs2Gxq2N4EzMrQ49+k=; b=Bq3hJe2iYwNJRy/mrB3l/yrRPnFzPjf3VjBawZtcRWYLMv4joamxRy2evZ6POGnvzM 5sQgNR3XNGDV2sV22c2Il/n4wdIdhvvxmhobvdo2T2l3Q3YrjHlUkl7C2poq+/D42+rK PX6PoZ9ZZCxchkAIpJvGm5th6qLTwJccYQVDjJzCmxxEj9UWheiIrjyKzR2Ne1m1iRgZ gsugJE+duWfr4gCmM12XGKcCzweOMZjlt8AXTfb4j/3K41qJ76b2FZGpyRPnzkmEWzoV GzqaDVWwPNAsAHdUgKofmGRh3K9K34iud7vAmwDjbHGESv+1rTqaoJpMzTl91yhXIsVM JfEA== X-Gm-Message-State: APjAAAWgNzJWGjFkRYTevpAPrHITq12ZtMt1Fuk2UxJiilI7gVB1WuiC 9u1i0hIJ10+E33rD9xfUxuaILcX1 X-Google-Smtp-Source: APXvYqyweTOywcOcaMQRJHGBVo/WUWNd7v95Y+b6sjyzgRy9yTQL7dxDziYIK5o/uh4FikwZtI4LUA== X-Received: by 2002:a2e:8018:: with SMTP id j24mr1916469ljg.149.1556895536283; Fri, 03 May 2019 07:58:56 -0700 (PDT) Received: from kristrev-XPS-15-9570.lan ([193.213.155.210]) by smtp.gmail.com with ESMTPSA id r11sm432852lja.55.2019.05.03.07.58.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 03 May 2019 07:58:55 -0700 (PDT) From: Kristian Evensen To: openwrt-devel@lists.openwrt.org Date: Fri, 3 May 2019 16:58:52 +0200 Message-Id: <20190503145852.6125-1-kristian.evensen@gmail.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190503_075859_067992_6BB51EFB X-CRM114-Status: GOOD ( 19.90 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:243 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (kristian.evensen[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature Subject: [OpenWrt-Devel] [PATCH v2] ramips: Add support for Head Weblink HDRM200 X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kristian Evensen Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Head Weblink HDRM200 is a dual-sim router based on MT7620A. The detailed specifications are: - MT7620A (580MHz) - 64MB RAM - 16MB of flash (SPI NOR) - 6x 10/100Mbps Ethernet (MT7620A built-in switch) - 1x microSD slot - 1x miniPCIe slot (only USB2.0 bus) - 2x SIM slots (standard size) - 1x USB2.0 port - 1x 2.4GHz wifi (rt2800) - 1x 5GHz wifi (mt7621) - 1x reset button - 1x WPS button - 3x GPIO-controllable LEDs - 1x 10 pin terminal block (RS232, RS485, 4 x GPIO) Tested: - Ethernet switch - Wifi - USB slot - SD card slot - miniPCIe-slot - sysupgrade - reset button Installation instructions: Installing OpenWRT for the first time requires a bit of work, as the board does not ship with OpenWRT. In addition, the bootloader automatically reboots when installing an image over tftp. In order to install OpenWRT, you first need to compile an initramfs (ramdisk)-image for the device. Once the image is ready, you need to do the following: * Copy the initramfs-image to your tftp-root (default filename is test.bin) and configure networking accordingly (default server IP is 10.10.10.3, client 10.10.10.123). Start your tftp server. * Open the board and connect to UART. The pins are exposed and clearly marked. * Boot the board and press 1. * Either use the default filename and client/server IP-addresses, or specify your own. The image should now be loaded to memory and board boot. If the router reboots while the image is loading, you need to try again. Once the board has booted, copy the sysupgrade-image to the router and run sysupgrade in order to install OpenWRT to the flash. Notes: - You control which SIM slot to use by writing 0/1 to /sys/class/gpio/sim_switch/value. In order for the change to take effect, you can either use AT-commands (AT+CFUN) or power-cycle the modem (write 0/1 to /sys/class/gpio/power_mpcie/value). - RS485 is available on /dev/ttyS0. - RS232 is available on /dev/ttyS1. - The name of the ioX-gpios map to the labels on the casing. v1->v2: * Add SPDX line to DTS (thanks Rafał Miłecki). Signed-off-by: Kristian Evensen --- .../ramips/base-files/etc/board.d/01_leds | 3 + .../ramips/base-files/etc/board.d/02_network | 1 + target/linux/ramips/base-files/lib/ramips.sh | 3 + target/linux/ramips/dts/HDRM200.dts | 227 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 8 + 5 files changed, 242 insertions(+) create mode 100644 target/linux/ramips/dts/HDRM200.dts diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index fa20ab0714..f9ca5c47b8 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -184,6 +184,9 @@ hc5861) ucidef_set_led_netdev "wifi5g" "wifi5g" "$boardname:blue:wlan5g" "wlan0" ucidef_set_led_netdev "wifi2g" "wifi2g" "$boardname:blue:wlan2g" "wlan1" ;; +hdrm200) + set_wifi_led "$boardname:green:wifi" + ;; hg255d) set_wifi_led "$boardname:green:wlan" ucidef_set_led_netdev "internet" "internet" "$boardname:green:internet" "eth0.2" diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index c2646876a2..8ae41ae59e 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -314,6 +314,7 @@ ramips_setup_interfaces() "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0" ;; hc5661|\ + hdrm200|\ y1s) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0" diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 093303892c..6d5a9cc391 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -229,6 +229,9 @@ ramips_board_detect() { *"HC5962") name="hc5962" ;; + *"HDRM200") + name="hdrm200" + ;; *"HG255D") name="hg255d" ;; diff --git a/target/linux/ramips/dts/HDRM200.dts b/target/linux/ramips/dts/HDRM200.dts new file mode 100644 index 0000000000..05e0b1a6dc --- /dev/null +++ b/target/linux/ramips/dts/HDRM200.dts @@ -0,0 +1,227 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "mt7620a.dtsi" + +#include +#include + +/ { + compatible = "head-weblink,hdrm200", "ralink,mt7620a-soc"; + model = "Head Weblink HDRM200"; + + aliases { + led-boot = &led_system; + led-failsafe = &led_system; + led-running = &led_system; + led-upgrade = &led_system; + }; + + chosen { + bootargs = "console=ttyS1,57600"; + }; + + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + sim_switch { + gpio-export,name = "sim_switch"; + gpio-export,output = <1>; + gpios = <&gpio0 0 GPIO_ACTIVE_LOW>; + }; + + io1 { + gpio-export,name = "io1"; + gpio-export,output = <1>; + gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; + }; + + io2 { + gpio-export,name = "io2"; + gpio-export,output = <1>; + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; + }; + + io3 { + gpio-export,name = "io3"; + gpio-export,output = <1>; + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; + }; + + io4 { + gpio-export,name = "io4"; + gpio-export,output = <1>; + gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; + }; + + power_mpcie { + gpio-export,name = "power_mpcie"; + gpio-export,output = <1>; + gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>; + }; + }; + + leds { + compatible = "gpio-leds"; + + rssi { + label = "hdrm200:red:rssi"; + gpios = <&gpio0 19 GPIO_ACTIVE_LOW>; + }; + + led_system: system { + label = "hdrm200:green:system"; + gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>; + }; + + air { + label = "hdrm200:green:wifi"; + gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys-polled"; + poll-interval = <20>; + + wps { + label = "wps"; + gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + reset { + label = "reset"; + gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; +}; + +&spi0 { + status = "okay"; + + w25q128@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + firmware: partition@50000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x50000 0xfb0000>; + }; + }; + }; +}; + +&gpio0 { + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; + +&gpio3 { + status = "okay"; +}; + +&sdhci { + status = "okay"; +}; + +&ehci { + status = "okay"; +}; + +&ohci { + status = "okay"; +}; + +ðernet { + status = "okay"; + mtd-mac-address = <&factory 0x4>; + pinctrl-names = "default"; + pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>; + + port@4 { + status = "okay"; + phy-handle = <&phy4>; + phy-mode = "rgmii"; + }; + + port@5 { + status = "okay"; + phy-handle = <&phy5>; + phy-mode = "rgmii"; + }; + + mdio-bus { + status = "okay"; + + phy4: ethernet-phy@4 { + reg = <4>; + phy-mode = "rgmii"; + }; + + phy5: ethernet-phy@5 { + reg = <5>; + phy-mode = "rgmii"; + }; + }; +}; + +&wmac { + ralink,mtd-eeprom = <&factory 0>; +}; + +&pinctrl { + state_default: pinctrl0 { + default { + ralink,group = "i2c", "uartf", "pa", "spi refclk", "wled"; + ralink,function = "gpio"; + }; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie0 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x8000>; + ieee80211-freq-limit = <5000000 6000000>; + }; +}; + +&uart { + status = "okay"; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index da90568df0..f420c932e6 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -358,6 +358,14 @@ define Device/hc5861 endef TARGET_DEVICES += hc5861 +define Device/hdrm200 + DTS := HDRM200 + IMAGE_SIZE := $(ralink_default_fw_size_16M) + DEVICE_TITLE := Head Weblink HDRM2000 + DEVICE_PACKAGES := kmod-mt76x2 kmod-usb2 kmod-usb-ohci kmod-sdhci-mt7620 +endef +TARGET_DEVICES += hdrm200 + define Device/iodata_wn-ac1167gr DTS := WN-AC1167GR DEVICE_TITLE := I-O DATA WN-AC1167GR