[source] ramips: add support for Phicomm K2P

LEDE Commits lede-commits at lists.infradead.org
Thu Jul 20 10:13:14 PDT 2017


mkresin pushed a commit to source.git, branch master:
https://git.lede-project.org/a4c84b2d734f0cba40b3d0a2183dbf221e7356e5

commit a4c84b2d734f0cba40b3d0a2183dbf221e7356e5
Author: Chuanhong Guo <gch981213 at gmail.com>
AuthorDate: Tue Jul 18 13:02:51 2017 +0800

    ramips: add support for Phicomm K2P
    
    It uses one MT7615D radio chip with DBDC mode enabled. This mode allows
    this single chip act as an 2x2 11n radio and an 2x2 11ac radio at the
    same time. However mt76 doesn't  support it currently so there is no
    wireless available.
    
    Specification:
    - SoC: MediaTek MT7621AT
    - Flash: 16 MB
    - RAM: 128 MB
    - Ethernet: 1 x WAN (10/100/1000Mbps) and 4 x LAN (10/100/1000 Mbps)
    - Wireless radio: MT7615D on PCIE0
    - UART: 1 x UART on PCB - 57600 8N1
    
    Issue:
    - Wireless radio doesn't work due to the lack of driver.
    
    Flash instruction:
    Using UART:
    1. Configure PC with a static IP address and setup an TFTP server.
    2. Put the firmware into the tftp directory.
    3. Connect the UART line as described on the PCB.
    4. Power up the device and press 2,then follow the instruction to
       set device and tftp server IP address and input the firmware
       file name.U-boot will then load the firmware and write it into
       the flash.
    
    Signed-off-by: Chuanhong Guo <gch981213 at gmail.com>
---
 .../linux/ramips/base-files/etc/board.d/02_network |   1 +
 target/linux/ramips/base-files/etc/diag.sh         |   9 +-
 target/linux/ramips/base-files/lib/ramips.sh       |   3 +
 .../ramips/base-files/lib/upgrade/platform.sh      |   1 +
 target/linux/ramips/dts/K2P.dts                    | 119 +++++++++++++++++++++
 target/linux/ramips/image/mt7621.mk                |   7 ++
 6 files changed, 136 insertions(+), 4 deletions(-)

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 78ba103..d0f3fce 100755
--- a/target/linux/ramips/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/base-files/etc/board.d/02_network
@@ -83,6 +83,7 @@ ramips_setup_interfaces()
 	hc5661a|\
 	hc5962|\
 	hlk-rm04|\
+	k2p|\
 	kn|\
 	kn_rc|\
 	mac1200rv2|\
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
index 531c8e0..1349c00 100644
--- a/target/linux/ramips/base-files/etc/diag.sh
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -157,6 +157,11 @@ get_status_led() {
 	hc5962)
 		status_led="$board:white:status"
 		;;
+	k2p|\
+	m3|\
+	miwifi-nano)
+		status_led="$board:blue:status"
+		;;
 	linkits7688| \
 	linkits7688d)
 		[ "$1" = "upgrade" ] && status_led="mediatek:orange:wifi"
@@ -164,10 +169,6 @@ get_status_led() {
 	m2m)
 		status_led="$board:blue:wifi"
 		;;
-	m3|\
-	miwifi-nano)
-		status_led="$board:blue:status"
-		;;
 	gl-mt300n-v2)
 		status_led="$board:red:wlan"
 		;;
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
index 056fab9..e2d7b07 100755
--- a/target/linux/ramips/base-files/lib/ramips.sh
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -262,6 +262,9 @@ ramips_board_detect() {
 	*"JHR-N926R")
 		name="jhr-n926r"
 		;;
+	*"K2P")
+		name="k2p"
+		;;
 	*"M3")
 		name="m3"
 		;;
diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
index e0a2602..36469ca 100755
--- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
@@ -74,6 +74,7 @@ platform_check_image() {
 	jhr-n805r|\
 	jhr-n825r|\
 	jhr-n926r|\
+	k2p|\
 	kn|\
 	kn_rc|\
 	kn_rf|\
diff --git a/target/linux/ramips/dts/K2P.dts b/target/linux/ramips/dts/K2P.dts
new file mode 100644
index 0000000..4089ce6
--- /dev/null
+++ b/target/linux/ramips/dts/K2P.dts
@@ -0,0 +1,119 @@
+/dts-v1/;
+
+#include "mt7621.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	compatible = "phicomm,k2p", "mediatek,mt7621-soc";
+	model = "Phicomm K2P";
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,57600";
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		stat_r {
+			label = "k2p:red:status";
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+		};
+
+		stat_y {
+			label = "k2p:yellow:status";
+			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
+		};
+
+		stat_b {
+			label = "k2p:blue:status";
+			gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <20>;
+
+		reset {
+			label = "reset";
+			gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+	};
+};
+
+&spi0 {
+	status = "okay";
+
+	m25p80 at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <10000000>;
+		m25p,chunked-io = <32>;
+
+		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 {
+			label = "permanent_config";
+			reg = <0x50000 0x50000>;
+			read-only;
+		};
+
+		partition at a0000 {
+			label = "firmware";
+			reg = <0xa0000 0xf60000>;
+		};
+	};
+};
+
+&pcie {
+	status = "okay";
+
+	pcie0 {
+		mt76 at 0,0 {
+			reg = <0x0000 0 0 0 0>;
+			device_type = "pci";
+			mediatek,mtd-eeprom = <&factory 0x0>;
+		};
+	};
+};
+
+&ethernet {
+	mtd-mac-address = <&factory 0xe000>;
+};
+
+&pinctrl {
+	state_default: pinctrl0 {
+		gpio {
+			ralink,group = "i2c", "jtag";
+			ralink,function = "gpio";
+		};
+	};
+};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 940b9d5..103534e 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -88,6 +88,13 @@ define Device/hc5962
 endef
 TARGET_DEVICES += hc5962
 
+define Device/k2p
+  DTS := K2P
+  IMAGE_SIZE := $(ralink_default_fw_size_16M)
+  DEVICE_TITLE := Phicomm K2P
+endef
+TARGET_DEVICES += k2p
+
 define Device/mt7621
   DTS := MT7621
   BLOCKSIZE := 64k



More information about the lede-commits mailing list