From patchwork Tue Apr 12 09:20:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: FUKAUMI Naoki X-Patchwork-Id: 609321 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (caladan.dune.hu [78.24.191.180]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3qkhJ03Cf6z9sD2 for ; Tue, 12 Apr 2016 19:21:04 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=agHnzOHA; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id E8263B91B2E; Tue, 12 Apr 2016 11:20:58 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RDNS_NONE, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.1 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP; Tue, 12 Apr 2016 11:20:58 +0200 (CEST) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id C5204B91B2E for ; Tue, 12 Apr 2016 11:20:56 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 CL_IP_EQ_HELO_IP=-2 (check from: .gmail. - helo: .mail-pa0-f49.google. - helo-domain: .google.) FROM/MX_MATCHES_HELO(DOMAIN)=-2; rate: -7 Received: from mail-pa0-f49.google.com (unknown [209.85.220.49]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Tue, 12 Apr 2016 11:20:56 +0200 (CEST) Received: by mail-pa0-f49.google.com with SMTP id td3so10275399pab.2 for ; Tue, 12 Apr 2016 02:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=i4HzVaPhLTVA2uV2pQykegv2PGZTCauTM5sJr8L5Cbc=; b=agHnzOHAiAS/Jqegur7Upxiha9aLLdad2DkUe+r5wHRW2toImFR3Lt7peFa5uHhcdA G7cb5NXJIpjtH7RxMe+8SrwhL1dNGHPgrTvzvPq0/d3DNN0TLXVGgWNzUip5OaA/+WOQ FDzNaX/KWhEse8ot7G5ClYXJsSAoef2Y73EfjGioiwESMXffWP8oNsnfBrzX5pIcxkX/ naH9v9f5Hb7Zdn23N33URTSC8+loM9JF4GVb49wpBG7ebS96rsueIh2OvfvbMB7WA7/0 PldTvAH4eO/Ke/XyrGUgj6uZY2VI3HdP6/PDSSG8eYwf9yunCwrx1vfBK8XonY4Dy1Cx wSnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=i4HzVaPhLTVA2uV2pQykegv2PGZTCauTM5sJr8L5Cbc=; b=O0JdpY7Uou7a5keyWhR6iZmaqSyzAw8MG8EQH4FQICAc9L68nChusYztzAzpczrnfm k8To4du18uYMo4s6o6GEFbY4uwfYYpAAYtUesBNuT9QszfjH4ZgqYMd6RL/YptPn/M9c vvm9bDAEEQNzdP0RwENBL/T48zNnWHGA42SCbRlC/LdsdtNsyoRhPue3DhT8HwA6+b9k mYFkwwh/Nlg9eaiOZF/GLPjBYCUy5q3YPmLzOc3aI8Pml8Tn5m6NPIKPMo2DRmVC9a7S DUPMyJvTDJDNP+Jjf0TSlMwls5jscqkVMLn2Rd16KfokIw+unh4eTvFZONSIEJwpgtC4 /tkA== X-Gm-Message-State: AOPr4FXzHxvEh0zAiXtv9hur6aubitjr4nR11C75rxx1c071Do4nXTq9EIn716JoABnRcg== X-Received: by 10.66.55.39 with SMTP id o7mr3104553pap.13.1460452854434; Tue, 12 Apr 2016 02:20:54 -0700 (PDT) Received: from localhost.localdomain (sakura.naobsd.org. [160.16.200.221]) by smtp.gmail.com with ESMTPSA id h85sm41893896pfj.52.2016.04.12.02.20.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 12 Apr 2016 02:20:53 -0700 (PDT) From: FUKAUMI Naoki To: blogic@openwrt.org Date: Tue, 12 Apr 2016 09:20:44 +0000 Message-Id: <1460452844-23099-1-git-send-email-naobsd@gmail.com> X-Mailer: git-send-email 2.8.1 Subject: [OpenWrt-Devel] [PATCH v2] ramips: add support for ELECOM WRH-300CR X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: openwrt-devel@lists.openwrt.org MIME-Version: 1.0 Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" ELECOM WRH-300CR is MT7620N based very small Wi-Fi router with 64MiB DDR2 SDRAM, 16MiB SPI Flash, one fast ethernet port, and (internal but easy-to-access) UART. it also has internal USB hub and USB card reader which provide one USB port, one SD card slot, and one microSD card slot. Signed-off-by: YuheiOKAWA Signed-off-by: FUKAUMI Naoki --- Changes in v2: - explain this product a little :) - add an empty line in WRH-300CR.dts (cosmetic, no functional change) target/linux/ramips/base-files/etc/board.d/01_leds | 4 + .../linux/ramips/base-files/etc/board.d/02_network | 3 +- target/linux/ramips/base-files/etc/diag.sh | 3 +- target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/WRH-300CR.dts | 127 +++++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 15 +++ target/linux/ramips/mt7620/profiles/elecom.mk | 18 +++ 8 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 target/linux/ramips/dts/WRH-300CR.dts create mode 100644 target/linux/ramips/mt7620/profiles/elecom.mk 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 5816e60..0ba26d2 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -264,6 +264,10 @@ whr-600d) wnce2001) set_wifi_led "$board:green:wlan" ;; +wrh-300cr) + set_wifi_led "$board:green:wlan" + ucidef_set_led_netdev "lan" "lan" "$board:green:ethernet" "eth0" + ;; wt3020) ucidef_set_led_default "power" "power" "$board:blue:power" "0" ;; 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 4b65d36..2863b88 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -162,7 +162,8 @@ ramips_setup_interfaces() d105|\ hpm|\ na930|\ - wli-tx4-ag300n) + wli-tx4-ag300n|\ + wrh-300cr) ucidef_set_interface_lan "eth0" ;; e1700|\ diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index daa7fb1..31d9646 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -73,7 +73,8 @@ get_status_led() { status_led="$board:green:run" ;; awapn2403|\ - dir-645) + dir-645|\ + wrh-300cr) status_led="$board:green:wps" ;; cf-wr800n|\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 5f1df7b..459de6f 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -460,6 +460,9 @@ ramips_board_detect() { *"WR6202") name="wr6202" ;; + *"WRH-300CR") + name="wrh-300cr" + ;; *"WRTNODE") name="wrtnode" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index c329dce..6e287d4 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -135,6 +135,7 @@ platform_check_image() { wnce2001|\ wr512-3gn|\ wr6202|\ + wrh-300cr|\ wrtnode|\ wrtnode2r |\ wrtnode2p |\ diff --git a/target/linux/ramips/dts/WRH-300CR.dts b/target/linux/ramips/dts/WRH-300CR.dts new file mode 100644 index 0000000..79962e9 --- /dev/null +++ b/target/linux/ramips/dts/WRH-300CR.dts @@ -0,0 +1,127 @@ +/dts-v1/; + +/include/ "mt7620n.dtsi" + +/ { + compatible = "elecom,wrh-300cr", "ralink,mt7620n-soc"; + model = "ELECOM WRH-300CR"; + + palmbus@10000000 { + gpio1: gpio@638 { + status = "okay"; + }; + + gpio2: gpio@660 { + status = "okay"; + }; + + gpio3: gpio@688 { + status = "okay"; + }; + + spi@b00 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0 0>; + linux,modalias = "m25p80", "mx25l12805d"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x10000>; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "recover"; + reg = <0x50000 0x1c0000>; + read-only; + }; + + partition@210000 { + label = "firmware"; + reg = <0x210000 0xdf0000>; + }; + }; + }; + }; + + ehci@101c0000 { + status = "okay"; + }; + + ohci@101c1000 { + status = "okay"; + }; + + ethernet@10100000 { + mtd-mac-address = <&factory 0x2e>; + mediatek,portmap = "llllw"; + }; + + wmac@10180000 { + ralink,mtd-eeprom = <&factory 0>; + }; + + pinctrl { + state_default: pinctrl0 { + default { + ralink,group = "i2c", "ephy", "wled"; + ralink,function = "gpio"; + }; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + wps { + label = "wrh-300cr:green:wps"; + gpios = <&gpio2 0 1>; + }; + + ethernet { + label = "wrh-300cr:green:ethernet"; + gpios = <&gpio2 3 1>; + }; + + wlan { + label = "wrh-300cr:green:wlan"; + gpios = <&gpio3 0 1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + reset { + label = "reset"; + gpios = <&gpio0 1 1>; + linux,code = <0x198>; + }; + + wps { + label = "wps"; + gpios = <&gpio0 2 1>; + linux,code = <0x211>; + }; + }; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 18cd20a..c76e98e 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -64,6 +64,19 @@ endef BuildFirmware/Tplink/squashfs=$(call BuildFirmware/OF/tplink,$(1),$(2),$(3),$(4)) BuildFirmware/Tplink/initramfs=$(call BuildFirmware/OF/tplink/initramfs,$(1),$(2),$(3),$(4)) +define BuildFirmware/WRH-300CR/squashfs + $(call BuildFirmware/Default16M/squashfs,$(1),$(2),$(3)) + cp $(call sysupname,$(1),$(2)) $(KDIR)/v_0.0.0.bin + ( \ + $(STAGING_DIR_HOST)/bin/md5sum $(KDIR)/v_0.0.0.bin | \ + sed 's/ .*//' && \ + echo 458 \ + ) | $(STAGING_DIR_HOST)/bin/md5sum | \ + sed 's/ .*//' > $(KDIR)/v_0.0.0.md5 + $(STAGING_DIR_HOST)/bin/tar -cf $(call imgname,$(1),$(2))-factory.bin -C $(KDIR) v_0.0.0.bin v_0.0.0.md5 +endef +BuildFirmware/WRH-300CR/initramfs=$(call BuildFirmware/Default16M/initramfs,$(1),$(2),$(3)) + Image/Build/Profile/E1700=$(call BuildFirmware/UMedia/$(1),$(1),e1700,E1700,0x013326) ex2700_mtd_size=3866624 @@ -98,6 +111,7 @@ Image/Build/Profile/MLW221=$(call BuildFirmware/Default16M/$(1),$(1),mlw221,MLW2 Image/Build/Profile/MLWG2=$(call BuildFirmware/Default16M/$(1),$(1),mlwg2,MLWG2) Image/Build/Profile/WMR-300=$(call BuildFirmware/Default8M/$(1),$(1),wmr-300,WMR-300) Image/Build/Profile/RT-N14U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n14u,RT-N14U) +Image/Build/Profile/WRH-300CR=$(call BuildFirmware/WRH-300CR/$(1),$(1),wrh-300cr,WRH-300CR) Image/Build/Profile/WRTNODE=$(call BuildFirmware/Default16M/$(1),$(1),wrtnode,WRTNODE) Image/Build/Profile/WT3020=$(call BuildFirmware/PorayDualSize/$(1),$(1),wt3020,WT3020) Image/Build/Profile/MIWIFI-MINI=$(call BuildFirmware/Default16M/$(1),$(1),miwifi-mini,MIWIFI-MINI) @@ -143,6 +157,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/MLWG2,$(1)) $(call Image/Build/Profile/WMR-300,$(1)) $(call Image/Build/Profile/RT-N14U,$(1)) + $(call Image/Build/Profile/WRH-300CR,$(1)) $(call Image/Build/Profile/WRTNODE,$(1)) $(call Image/Build/Profile/WT3020,$(1)) $(call Image/Build/Profile/MIWIFI-MINI,$(1)) diff --git a/target/linux/ramips/mt7620/profiles/elecom.mk b/target/linux/ramips/mt7620/profiles/elecom.mk new file mode 100644 index 0000000..5c84c92 --- /dev/null +++ b/target/linux/ramips/mt7620/profiles/elecom.mk @@ -0,0 +1,18 @@ +# +# Copyright (C) 2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/WRH-300CR + NAME:=ELECOM WRH-300CR + PACKAGES:=\ + kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-usb-storage \ + kmod-scsi-core kmod-fs-ext4 block-mount +endef + +define Profile/WRH-300CR/Description + Package set optimized for the ELECOM WRH-300CR. +endef +$(eval $(call Profile,WRH-300CR))