arm: dts: ipq8064: Added support for DB149, AP145 and AP145_1xx.

Added device tree to extend support for DB149, AP145, AP145_1xx.

Change-Id: Ief0fdcc521bb3c884ada04dfece27bce47d00c9f
Signed-off-by: Gokul Sriram Palanisamy <gpalan@codeaurora.org>
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 52cadda..f1a6a5e 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -22,7 +22,13 @@
 
 dtb-$(CONFIG_ARCH_IPQ807x) += ipq807x-hk01.dtb
 
-dtb-$(CONFIG_ARCH_IPQ806x) += ipq806x-ap148.dtb
+dtb-$(CONFIG_ARCH_IPQ806x) += ipq806x-ap148.dtb \
+	ipq806x-ap160.dtb \
+	ipq806x-ap160_2xx.dtb \
+	ipq806x-ap161.dtb \
+	ipq806x-db149.dtb \
+	ipq806x-ap145.dtb \
+	ipq806x-ap145_1xx.dtb \
 
 dtb-$(CONFIG_ARCH_IPQ40xx) += ipq40xx-dk01-c1.dtb \
 		ipq40xx-dk01-c2.dtb \
diff --git a/arch/arm/dts/ipq806x-ap145.dts b/arch/arm/dts/ipq806x-ap145.dts
new file mode 100644
index 0000000..ed4b477
--- /dev/null
+++ b/arch/arm/dts/ipq806x-ap145.dts
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2016, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+#include "ipq806x-soc.dtsi"
+/ {
+	model ="QCA, IPQ806x-AP145";
+	compatible = "qca,ipq806x", "qca,ipq806x-ap145";
+	machid = <4810>;
+	config_name = "config@ap145";
+
+	aliases {
+		console = "/serial@16340000";
+	};
+
+	serial@16340000 {
+		status = "ok";
+	};
+};
diff --git a/arch/arm/dts/ipq806x-ap145_1xx.dts b/arch/arm/dts/ipq806x-ap145_1xx.dts
new file mode 100644
index 0000000..8b520e6
--- /dev/null
+++ b/arch/arm/dts/ipq806x-ap145_1xx.dts
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2016, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+#include "ipq806x-soc.dtsi"
+/ {
+	model ="QCA, IPQ806x-AP145_1XX";
+	compatible = "qca,ipq806x", "qca,ipq806x-ap145_1xx";
+	machid = <4812>;
+	config_name = "config@ap145_1xx";
+
+	aliases {
+		console = "/serial@16340000";
+	};
+
+	serial@16340000 {
+		status = "ok";
+	};
+};
diff --git a/arch/arm/dts/ipq806x-ap148.dts b/arch/arm/dts/ipq806x-ap148.dts
index 9b6a668..285805e 100644
--- a/arch/arm/dts/ipq806x-ap148.dts
+++ b/arch/arm/dts/ipq806x-ap148.dts
@@ -23,4 +23,8 @@
 		console = "/serial@16340000";
 		nand = "/nand@1A600000";
 	};
+
+	serial@16340000 {
+		status = "ok";
+	};
 };
diff --git a/arch/arm/dts/ipq806x-db149.dts b/arch/arm/dts/ipq806x-db149.dts
new file mode 100644
index 0000000..2afc651
--- /dev/null
+++ b/arch/arm/dts/ipq806x-db149.dts
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2016, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+#include "ipq806x-soc.dtsi"
+/ {
+	model ="QCA, IPQ806x-DB149";
+	compatible = "qca,ipq806x", "qca,ipq806x-DB149";
+	machid = <4699>;
+	config_name = "config@db149";
+
+	aliases {
+		console = "/serial@12490000";
+	};
+
+	serial@12490000 {
+		status = "ok";
+	};
+};
diff --git a/arch/arm/dts/ipq806x-soc.dtsi b/arch/arm/dts/ipq806x-soc.dtsi
index e7a1821..1cd5c74 100644
--- a/arch/arm/dts/ipq806x-soc.dtsi
+++ b/arch/arm/dts/ipq806x-soc.dtsi
@@ -18,6 +18,7 @@
 	config_name = "config@1";
 
 	serial@16340000 {
+		status = "disabled";
 		compatible = "qca,ipq-uartdm";
 		reg = <0x16340000 0x200>;
 		gsbi_base = <0x16300000>;
@@ -31,25 +32,57 @@
 			gpio1 {
 				gpio = <10>;
 				func = <1>;
-				out = <0>;
-				pull = <0>;
-				drvstr = <5>;
-				oe = <1>;
-				};
+				out = <GPIO_OUT_LOW>;
+				pull = <GPIO_NO_PULL>;
+				drvstr = <GPIO_12MA>;
+				oe = <GPIO_OE_ENABLE>;
+			};
 
 			gpio2 {
 				gpio = <11>;
 				func = <1>;
-				out = <0>;
-				pull = <0>;
-				drvstr = <5>;
-				oe = <1>;
-				};
+				out = <GPIO_OUT_LOW>;
+				pull = <GPIO_NO_PULL>;
+				drvstr = <GPIO_12MA>;
+				oe = <GPIO_OE_ENABLE>;
+			};
 
 		};
 
 	};
 
+	serial@12490000 {
+		status = "disabled";
+		compatible = "qca,ipq-uartdm";
+		reg = <0x12490000 0x200>;
+		gsbi_base = <0x12480000>;
+		id = <2>;
+		bit_rate = <0xCC>;
+		m_value = <0x0C>;
+		n_value = <0x271>;
+		d_value = <0x139>;
+
+		serial_gpio {
+			gpio1 {
+				gpio = <22>;
+				func = <1>;
+				out = <GPIO_OUT_LOW>;
+				pull = <GPIO_NO_PULL>;
+				drvstr = <GPIO_12MA>;
+				oe = <GPIO_OE_ENABLE>;
+			};
+
+			gpio2 {
+				gpio = <23>;
+				func = <1>;
+				out = <GPIO_OUT_LOW>;
+				pull = <GPIO_NO_PULL>;
+				drvstr = <GPIO_12MA>;
+				oe = <GPIO_OE_ENABLE>;
+			};
+		};
+	};
+
 	timer {
 		gcnt_base = <0x0200A00C>;
 		gcnt_cntcv_lo = <0x0200A008>;
diff --git a/include/configs/ipq806x.h b/include/configs/ipq806x.h
index a51f2a1..353c594 100644
--- a/include/configs/ipq806x.h
+++ b/include/configs/ipq806x.h
@@ -39,7 +39,7 @@
 #define CONFIG_SYS_CACHELINE_SIZE   64
 #define CONFIG_IPQ806X_ENV
 #define CONFIG_SYS_BOOTM_LEN		(64 << 20)
-#define CONFIG_IPQ_FDT_HIGH		0xFFFFFFFF
+#define CONFIG_IPQ_FDT_HIGH		0x48000000
 #define CONFIG_BOOTARGS			"console=ttyMSM0,115200n8"
 #define CONFIG_SYS_HUSH_PARSER
 
@@ -263,6 +263,8 @@
 #define CONFIG_CMD_MTDPARTS
 
 #define CONFIG_BOOTDELAY 2
+#define CONFIG_BOOTCOMMAND  "bootipq"
+
 #define CONFIG_BOARD_LATE_INIT
 
 #define CONFIG_ENV_IS_IN_NAND