From e6e373d3480ebf4f46c9ab2382e8f620c214eca6 Mon Sep 17 00:00:00 2001
From: John Crispin <john@openwrt.org>
Date: Mon, 5 Oct 2015 10:25:53 +0000
Subject: [PATCH] ramips: Add DTS files for HiWiFi HC5x61 models

HiWiFi HC5661/5761/5861 models are manufactured by http://www.hiwifi.com. These models have similar hardware specs(MT7620A + 128M DDR2 + 16M flash). This patch adds support for them.

The original author is Justin Liu (rssnsj@gmail.com). I ported the patch to trunk and submitted it here with his approval.

v3 fix
  1: Merged most stuff into dtsi file
  2: Remove unnecessary empty lines.

Signed-off-by: Xiaoning Kang <kangxn@163.com>

SVN-Revision: 47112
---
 target/linux/ramips/dts/HC5661.dts  |  32 +++++++
 target/linux/ramips/dts/HC5761.dts  |  32 +++++++
 target/linux/ramips/dts/HC5861.dts  |  92 ++++++++++++++++++
 target/linux/ramips/dts/HC5XXX.dtsi | 143 ++++++++++++++++++++++++++++
 4 files changed, 299 insertions(+)
 create mode 100644 target/linux/ramips/dts/HC5661.dts
 create mode 100644 target/linux/ramips/dts/HC5761.dts
 create mode 100644 target/linux/ramips/dts/HC5861.dts
 create mode 100644 target/linux/ramips/dts/HC5XXX.dtsi

diff --git a/target/linux/ramips/dts/HC5661.dts b/target/linux/ramips/dts/HC5661.dts
new file mode 100644
index 0000000000..b9a717bc54
--- /dev/null
+++ b/target/linux/ramips/dts/HC5661.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+
+/include/ "HC5XXX.dtsi"
+
+/ {
+	compatible = "HC5661", "ralink,mt7620a-soc";
+	model = "HiWiFi HC5661";
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		system {
+			label = "hc5661:blue:system";
+			gpios = <&gpio0 9 1>;
+		};
+
+		internet {
+			label = "hc5661:blue:internet";
+			gpios = <&gpio0 11 1>;
+		};
+
+		wlan2g {
+			label = "hc5661:blue:wlan2g";
+			gpios = <&gpio3 0 1>;
+		};
+
+		wlan5g {
+			label = "hc5661:blue:wlan5g";
+			gpios = <&gpio0 7 1>;
+		};
+	};
+};
diff --git a/target/linux/ramips/dts/HC5761.dts b/target/linux/ramips/dts/HC5761.dts
new file mode 100644
index 0000000000..a10904cc90
--- /dev/null
+++ b/target/linux/ramips/dts/HC5761.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+
+/include/ "HC5XXX.dtsi"
+
+/ {
+	compatible = "HC5761", "ralink,mt7620a-soc";
+	model = "HiWiFi HC5761";
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		system {
+			label = "hc5761:blue:system";
+			gpios = <&gpio0 9 1>;
+		};
+
+		internet {
+			label = "hc5761:blue:internet";
+			gpios = <&gpio0 11 1>;
+		};
+
+		wlan2g {
+			label = "hc5761:blue:wlan2g";
+			gpios = <&gpio3 0 1>;
+		};
+
+		wlan5g {
+			label = "hc5761:blue:wlan5g";
+			gpios = <&gpio0 7 1>;
+		};
+	};
+};
diff --git a/target/linux/ramips/dts/HC5861.dts b/target/linux/ramips/dts/HC5861.dts
new file mode 100644
index 0000000000..05857ea8e8
--- /dev/null
+++ b/target/linux/ramips/dts/HC5861.dts
@@ -0,0 +1,92 @@
+/dts-v1/;
+
+/include/ "HC5XXX.dtsi"
+
+/ {
+	compatible = "HC5861", "ralink,mt7620a-soc";
+	model = "HiWiFi HC5861";
+
+	ethernet@10100000 {
+		status = "okay";
+		mtd-mac-address = <&factory 0x4>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
+		ralink,port-map = "wllll";
+
+		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";
+			};
+		};
+	};
+
+	gsw@10110000 {
+		ralink,port4 = "gmac";
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		system {
+			label = "hc5861:blue:system";
+			gpios = <&gpio0 9 1>;
+		};
+
+		wlan2g {
+			label = "hc5861:blue:wlan2g";
+			gpios = <&gpio0 11 1>;
+		};
+
+		internet {
+			label = "hc5861:blue:internet";
+			gpios = <&gpio3 0 1>;
+		};
+
+		wlan5g {
+			label = "hc5861:blue:wlan5g";
+			gpios = <&gpio0 7 1>;
+		};
+
+		turbo {
+			label = "hc5861:blue:turbo";
+			gpios = <&gpio0 10 1>;
+		};
+	};
+
+	gpio_export {
+		compatible = "gpio-export";
+		#size-cells = <0>;
+
+		usbpower {
+			gpio-export,name = "usbpower";
+			gpio-export,output = <0>;
+			gpios = <&gpio0 13 0>;
+		};
+
+		sdpower {
+			gpio-export,name = "sdpower";
+			gpio-export,output = <0>;
+			gpios = <&gpio0 8 0>;
+		};
+	};
+};
diff --git a/target/linux/ramips/dts/HC5XXX.dtsi b/target/linux/ramips/dts/HC5XXX.dtsi
new file mode 100644
index 0000000000..4a1d3ab843
--- /dev/null
+++ b/target/linux/ramips/dts/HC5XXX.dtsi
@@ -0,0 +1,143 @@
+/dts-v1/;
+
+/include/ "mt7620a.dtsi"
+
+/ {
+	chosen {
+		bootargs = "console=ttyS0,115200";
+	};
+
+	palmbus@10000000 {
+		sysc@0 {
+			ralink,gpiomux = "i2c", "jtag";
+			ralink,uartmux = "gpio";
+			ralink,wdtmux = <1>;
+		};
+
+		gpio0: gpio@600 {
+			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 = "w25q128";
+				reg = <0 0>;
+				linux,modalias = "m25p80", "w25q128";
+				spi-max-frequency = <10000000>;
+
+				partition@0 {
+					label = "u-boot";
+					reg = <0x0 0x30000>;
+				};
+
+				partition@30000 {
+					label = "u-boot-env";
+					reg = <0x30000 0x10000>;
+					read-only;
+				};
+
+				factory: partition@40000 {
+					label = "factory";
+					reg = <0x40000 0x10000>;
+				};
+
+				partition@50000 {
+					label = "firmware";
+					reg = <0x50000 0xf80000>;
+				};
+
+				partition@fd0000 {
+					label = "hwf_config";
+					reg = <0xfd0000 0x10000>;
+				};
+
+				bdinfo: partition@fe0000 {
+					label = "bdinfo";
+					reg = <0xfe0000 0x10000>;
+				};
+
+				partition@ff0000 {
+					label = "backup";
+					reg = <0xff0000 0x10000>;
+				};
+			};
+		};
+	};
+
+	ehci@101c0000 {
+		status = "okay";
+	};
+
+	ohci@101c1000 {
+		status = "okay";
+	};
+
+	ethernet@10100000 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&ephy_pins>;
+		mtd-mac-address = <&factory 0x4>;
+		ralink,port-map = "wllll";
+	};
+
+	sdhci@10130000 {
+		status = "okay";
+	};
+
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
+	pcie@10140000 {
+		status = "okay";
+	};
+
+	pinctrl {
+		state_default: pinctrl0 {
+			gpio {
+				ralink,group = "uartf", "wled", "nd_sd";
+				ralink,function = "gpio";
+			};
+
+			pa {
+				ralink,group = "pa";
+				ralink,function = "pa";
+			};
+		};
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <20>;
+
+		reset {
+			label = "reset";
+			gpios = <&gpio0 12 1>;
+			linux,code = <0x198>;
+		};
+	};
+
+	gpio_export {
+		compatible = "gpio-export";
+		#size-cells = <0>;
+
+		usbpower {
+			gpio-export,name = "usbpower";
+			gpio-export,output = <1>;
+			gpios = <&gpio0 13 0>;
+		};
+	};
+};
-- 
2.30.2