[source] lantiq: add Falcon support

LEDE Commits lede-commits at lists.infradead.org
Sun Nov 27 08:42:22 PST 2016


hauke pushed a commit to source.git, branch master:
https://git.lede-project.org/93715427835e747f0e0b348c8a3ce91dd68ef4f9

commit 93715427835e747f0e0b348c8a3ce91dd68ef4f9
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Oct 2 18:39:50 2016 +0200

    lantiq: add Falcon support
    
    This adds support for the Intel Falcon SoC for GPON.
    
    Support for the Falcon SoC was removed in commit c8218363951 svn rev:
    40392 from OpenWrt, this commit adds it again.
    
    This patch adds a new subtarget for the Falcon SoC, but it still misses
    all the drivers needed to control the GPON part.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/lantiq/Makefile                      |   2 +-
 target/linux/lantiq/dts/EASY88388.dts             | 110 ++++++
 target/linux/lantiq/dts/EASY88444.dts             |  84 +++++
 target/linux/lantiq/dts/EASY98000-base.dtsi       | 114 +++++++
 target/linux/lantiq/dts/EASY98000NAND.dts         |  40 +++
 target/linux/lantiq/dts/EASY98000NOR.dts          |  38 +++
 target/linux/lantiq/dts/EASY98000SFLASH.dts       |  16 +
 target/linux/lantiq/dts/EASY98020.dts             |  99 ++++++
 target/linux/lantiq/dts/EASY98020V18.dts          |  72 ++++
 target/linux/lantiq/dts/EASY98021.dts             |  85 +++++
 target/linux/lantiq/dts/EASY98035SYNCE.dts        |  80 +++++
 target/linux/lantiq/dts/EASY98035SYNCE1588.dts    |  80 +++++
 target/linux/lantiq/dts/FALCON-MDU.dts            |  57 ++++
 target/linux/lantiq/dts/FALCON-SFP.dts            |  80 +++++
 target/linux/lantiq/dts/falcon-sflash-16M.dtsi    |  37 +++
 target/linux/lantiq/dts/falcon.dtsi               | 388 ++++++++++++++++++++++
 target/linux/lantiq/falcon/config-default         |  10 +
 target/linux/lantiq/falcon/profiles/00-default.mk |   9 +
 target/linux/lantiq/falcon/target.mk              |  13 +
 target/linux/lantiq/image/Makefile                |  81 +++++
 20 files changed, 1494 insertions(+), 1 deletion(-)

diff --git a/target/linux/lantiq/Makefile b/target/linux/lantiq/Makefile
index d3721f6..66f3e76 100644
--- a/target/linux/lantiq/Makefile
+++ b/target/linux/lantiq/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 BOARD:=lantiq
 BOARDNAME:=Lantiq
 FEATURES:=squashfs
-SUBTARGETS:=xrx200 xway xway_legacy
+SUBTARGETS:=xrx200 xway xway_legacy falcon
 MAINTAINER:=John Crispin <john at phrozen.org>
 
 KERNEL_PATCHVER:=4.4
diff --git a/target/linux/lantiq/dts/EASY88388.dts b/target/linux/lantiq/dts/EASY88388.dts
new file mode 100644
index 0000000..30264dc
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY88388.dts
@@ -0,0 +1,110 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "EASY88388 - Lantiq Falcon FTTDP8 Reference Board";
+	compatible = "lantiq,falcon-easy88388", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	aliases {
+		spi0 = &ebu_cs0;
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;  // 64M at 0x0
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		reset {
+			label = "reset";
+			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+			linux,code = <0x198>;
+		};
+	};
+
+	pinctrl {
+		led_pins: led-pins {
+			lantiq,pins = "io34", "io35", "io36", "io37", "io38", 
+					"io39", "io40", "io41";
+			lantiq,function = "gpio";
+		};
+	};
+
+	easy88388-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins &bootled_pins>;
+
+		GPON {
+			label = "easy88388:green:gpon";
+			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		TEST {
+			label = "easy88388:green:test";
+			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		STATUS {
+			label = "easy88388:green:status";
+			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		ERROR {
+			label = "easy88388:red:error";
+			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+
+		DSL1 {
+			label = "easy88388:dsl:1";
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		DSL2 {
+			label = "easy88388:dsl:2";
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		DSL3 {
+			label = "easy88388:dsl:3";
+			gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		DSL4 {
+			label = "easy88388:dsl:4";
+			gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		DSL5 {
+			label = "easy88388:dsl:5";
+			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		DSL6 {
+			label = "easy88388:dsl:6";
+			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		DSL7 {
+			label = "easy88388:dsl:7";
+			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		DSL8 {
+			label = "easy88388:dsl:8";
+			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+
+	};
+};
+
diff --git a/target/linux/lantiq/dts/EASY88444.dts b/target/linux/lantiq/dts/EASY88444.dts
new file mode 100644
index 0000000..f157150
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY88444.dts
@@ -0,0 +1,84 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "EASY88444 - Lantiq Falcon FTTdp G.FAST Reference Board";
+	compatible = "lantiq,falcon-easy88444", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	aliases {
+		spi0 = &ebu_cs0;
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;  // 64M at 0x0
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		reset {
+			label = "reset";
+			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+			linux,code = <0x198>;
+		};
+	};
+
+	pinctrl {
+		led_pins: led-pins {
+			lantiq,pins = "io34", "io35", "io37";
+			lantiq,function = "gpio";
+		};
+	};
+
+	easy88444-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins &bootled_pins>;
+
+		GPON {
+			label = "easy88444:green:gpon";
+			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		TEST {
+			label = "easy88444:green:test";
+			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		STATUS {
+			label = "easy88444:green:status";
+			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+
+		GFAST1 {
+			label = "easy88444:gfast:1";
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		GFAST2 {
+			label = "easy88444:gfast:2";
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		GFAST3 {
+			label = "easy88444:gfast:3";
+			gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		GFAST4 {
+			label = "easy88444:gfast:4";
+			gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+
+	};
+};
+
diff --git a/target/linux/lantiq/dts/EASY98000-base.dtsi b/target/linux/lantiq/dts/EASY98000-base.dtsi
new file mode 100644
index 0000000..2032870
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY98000-base.dtsi
@@ -0,0 +1,114 @@
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	compatible = "lantiq,falcon-easy98000", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;
+	};
+
+	easy98000-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&bootled_pins>;
+
+		LED_0 {
+			label = "easy98000:green:gpon";
+			gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		LED_1 {
+			label = "easy98000:red:gpon";
+			gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		LED_2 {
+			label = "easy98000:green:gpon_tx";
+			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		LED_3 {
+			label = "easy98000:green:gpon_rx";
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		LED_4 {
+			label = "easy98000:green:voice";
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		LED_5 {
+			label = "easy98000:green:status";
+			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+	};
+};
+
+&ebu_cs1 {
+	eth0: ethernet at 0000000 {
+		compatible = "davicom,dm9000";
+		device_type = "network";
+		reg = <0x0000003 0x1>, <0x0000001 0x1>;
+		reg-names = "addr", "data";
+		interrupt-parent = <&gpio1>;
+		#interrupt-cells = <2>;
+		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
+		local-mac-address = [ 00 00 00 00 00 00 ];
+	};
+
+	cpld at 3c00000 {
+		compatible = "lantiq,easy98000_addon";
+		reg = <0x3c00000 0x2>;
+	};
+
+	cpld at 3c0000c {
+		compatible = "lantiq,easy98000_cpld_led";
+		reg = <0x3c0000c 0x2>,  <0x3c00012 0x2>;
+	};
+};
+
+/* // enable this for second uart:
+&serial1 {
+	status = "okay";
+};*/
+
+&spi {
+	status = "okay";
+
+	eeprom at 1 {
+		compatible = "atmel,at25", "atmel,at25160n";
+		reg = <2>;
+		spi-max-frequency = <1000000>;
+		spi-cpha;
+		spi-cpol;
+
+		pagesize = <32>;
+		size = <2048>;
+		address-width = <16>;
+	};
+};
+
+&i2c {
+	status = "okay";
+
+	clock-frequency = <100000>;
+
+	/* eeprom-emulation by OMU */
+	eeprom at 50 {
+		compatible = "at,24c02";
+		reg = <0x50>;
+	};
+	eeprom at 51 {
+		compatible = "at,24c02";
+		reg = <0x51>;
+	};
+};
+
diff --git a/target/linux/lantiq/dts/EASY98000NAND.dts b/target/linux/lantiq/dts/EASY98000NAND.dts
new file mode 100644
index 0000000..18afb99
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY98000NAND.dts
@@ -0,0 +1,40 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "EASY98000-base.dtsi"
+
+/ {
+	model = "EASY98000 - Lantiq Falcon (NAND)";
+	compatible = "lantiq,falcon-easy98000-nand", "lantiq,falcon-easy98000", "lantiq,falcon";
+
+	aliases {
+		spi0 = &spi;
+	};
+};
+
+&ebu_cs0 {
+	gen_nand at 0 {
+		compatible = "gen_nand", "lantiq,nand-falcon";
+		bank-width = <1>;
+		reg = <0x0 0x40000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		linux,mtd-name = "gen_nand";
+		bbt-use-flash;
+
+		partition at 0 {
+			label = "uboot";
+			reg = <0x00000 0x40000>;
+		};
+
+		partition at 10000 {
+			label = "uboot_env";
+			reg = <0x40000 0x40000>;
+		};
+
+		partition at 20000 {
+			label = "linux";
+			reg = <0x80000 0x3d0000>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/dts/EASY98000NOR.dts b/target/linux/lantiq/dts/EASY98000NOR.dts
new file mode 100644
index 0000000..4dbfe41
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY98000NOR.dts
@@ -0,0 +1,38 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "EASY98000-base.dtsi"
+
+/ {
+	model = "EASY98000 - Lantiq Falcon (NOR)";
+	compatible = "lantiq,falcon-easy98000-nor", "lantiq,falcon-easy98000", "lantiq,falcon";
+
+	aliases {
+		spi0 = &spi;
+	};
+};
+
+&ebu_cs0 {
+	cfi at 0 {
+		compatible = "lantiq,nor";
+		bank-width = <2>;
+		reg = <0x0 0x4000000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition at 0 {
+			label = "uboot";
+			reg = <0x00000 0x40000>;
+		};
+
+		partition at 10000 {
+			label = "uboot_env";
+			reg = <0x40000 0x40000>;
+		};
+
+		partition at 20000 {
+			label = "linux";
+			reg = <0x80000 0x3d0000>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/dts/EASY98000SFLASH.dts b/target/linux/lantiq/dts/EASY98000SFLASH.dts
new file mode 100644
index 0000000..90fc52c
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY98000SFLASH.dts
@@ -0,0 +1,16 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "EASY98000-base.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "EASY98000 - Lantiq Falcon (SFLASH)";
+	compatible = "lantiq,falcon-easy98000-sflash", "lantiq,falcon-easy98000", "lantiq,falcon";
+
+	aliases {
+		spi0 = &ebu_cs0;
+		spi1 = &spi;
+	};
+};
+
diff --git a/target/linux/lantiq/dts/EASY98020.dts b/target/linux/lantiq/dts/EASY98020.dts
new file mode 100644
index 0000000..7fbe7da
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY98020.dts
@@ -0,0 +1,99 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "EASY98020 - Lantiq Falcon Reference Board";
+	compatible = "lantiq,falcon-easy98020", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	aliases {
+		spi0 = &ebu_cs0;
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;  // 64M at 0x0
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		reset {
+			label = "reset";
+			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+			linux,code = <0x198>;
+		};
+	};
+
+	pinctrl {
+		led_pins: phy-led-pins {
+			lantiq,pins = "io42", "io41", "io38", "io37";
+			lantiq,function = "gpio";
+		};
+	};
+
+	easy98020-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&bootled_pins>;
+
+		GPON {
+			label = "easy98020:green:gpon";
+			gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		TEST {
+			label = "easy98020:green:test";
+			gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		ETH {
+			label = "easy98020:green:status";
+			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		VOICE {
+			label = "easy98020:green:voice";
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		VIDEO {
+			label = "easy98020:green:video";
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+	};
+
+	easy98020-phy-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins>;
+
+		GE0_ACT {
+			label = "easy98020:ge0_act";
+			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		GE0_LINK {
+			label = "easy98020:ge0_link";
+			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		GE1_ACT {
+			label = "easy98020:ge1_act";
+			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+		GE1_LINK {
+			label = "easy98020:ge1_link";
+			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+			default-state = "off";
+		};
+	};
+};
diff --git a/target/linux/lantiq/dts/EASY98020V18.dts b/target/linux/lantiq/dts/EASY98020V18.dts
new file mode 100644
index 0000000..1ddb921
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY98020V18.dts
@@ -0,0 +1,72 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "EASY98020 - Lantiq Falcon Reference Board V1.8";
+	compatible = "lantiq,falcon-easy98020-V18", "lantiq,falcon-easy98020", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	aliases {
+		spi0 = &ebu_cs0;
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;  // 64M at 0x0
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		reset {
+			label = "reset";
+			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+			linux,code = <0x198>;
+		};
+	};
+
+	pinctrl {
+		led_pins: led-pins {
+			lantiq,pins = "io11", "io14", "io36", "io37", "io38";
+			lantiq,function = "gpio";
+		};
+	};
+
+	easy98020-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins &bootled_pins>;
+
+		GPON {
+			label = "easy98020:green:gpon";
+			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		TEST {
+			label = "easy98020:green:test";
+			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		ETH {
+			label = "easy98020:green:status";
+			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		VOICE {
+			label = "easy98020:green:voice";
+			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		VIDEO {
+			label = "easy98020:green:video";
+			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+	};
+};
diff --git a/target/linux/lantiq/dts/EASY98021.dts b/target/linux/lantiq/dts/EASY98021.dts
new file mode 100644
index 0000000..b2574ac
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY98021.dts
@@ -0,0 +1,85 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "EASY98021 - Lantiq Falcon HGU Reference Board";
+	compatible = "lantiq,falcon-easy98021", "lantiq,falcon-easy98020", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	aliases {
+		spi0 = &ebu_cs0;
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;  // 64M at 0x0
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		reset {
+			label = "reset";
+			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+			linux,code = <0x198>;
+		};
+	};
+
+	gpio-mmc {
+		/* Place-holder for SIM-Card connector,
+		   to list the used GPIOs, no official binding */
+		compatible = "gpio-mmc";
+		gpios =  <&gpio0 3 GPIO_ACTIVE_HIGH>,
+			 <&gpio0 3 GPIO_ACTIVE_HIGH>,
+			 <&gpio0 2 GPIO_ACTIVE_HIGH>,
+			 <0>; /* no CS */
+		gpio-names = "di", "do", "clk", "cs";
+		reset-gpio =  <&gpio3 24 GPIO_ACTIVE_HIGH>;
+	};
+
+	pinctrl {
+		led_pins: led-pins {
+			lantiq,pins = "io11", "io14", "io36", "io37", "io38";
+			lantiq,function = "gpio";
+		};
+	};
+
+	easy98021-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins &bootled_pins>;
+
+		GPON {
+			label = "easy98021:green:gpon";
+			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		TEST {
+			label = "easy98021:red:test";
+			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		ETH {
+			label = "easy98021:green:status";
+			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		VOICE {
+			label = "easy98021:green:voice";
+			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		SIMCARD {
+			label = "easy98021:green:simcard";
+			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+	};
+};
+
diff --git a/target/linux/lantiq/dts/EASY98035SYNCE.dts b/target/linux/lantiq/dts/EASY98035SYNCE.dts
new file mode 100644
index 0000000..fa65a8c
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY98035SYNCE.dts
@@ -0,0 +1,80 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "EASY98035SYNCE - Lantiq Falcon SFP Stick with SyncE";
+	compatible = "lantiq,falcon-easy98035synce", "lantiq,falcon-sfp", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	aliases {
+		spi0 = &ebu_cs0;
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;  // 64M at 0x0
+	};
+
+	pinctrl {
+		compatible = "lantiq,pinctrl-falcon";
+
+		asc0_func1: func1 {
+			func1_tx {
+				lantiq,pins = "io32";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+			func1_rx {
+				lantiq,pins = "io33";
+				lantiq,mux = <0>;
+			};
+		};
+		asc0_func2: func2 {
+			func2_tx {
+				lantiq,pins = "io32";
+				lantiq,mux = <0>;
+			};
+			func2_rx {
+				lantiq,pins = "io33";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+		};
+		asc0_func3: func3 {
+			func3_tx {
+				lantiq,pins = "io32";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+			func3_rx {
+				lantiq,pins = "io33";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+		};
+	};
+
+	pinselect-asc0 {
+		compatible = "lantiq,pinselect-asc0";
+		pinctrl-names = "asc0", "func1", "func2", "func3";
+		pinctrl-0 = <&asc0_pins>;
+		pinctrl-1 = <&asc0_func1>;
+		pinctrl-2 = <&asc0_func2>;
+		pinctrl-3 = <&asc0_func3>;
+	};
+};
+
+&serial0 {
+	pinctrl-names = "default";
+	/* use "empty" pinctrl to leave setting from u-boot enabled */
+	pinctrl-0 = < >;
+};
+
+&i2c {
+	status = "okay";
+};
diff --git a/target/linux/lantiq/dts/EASY98035SYNCE1588.dts b/target/linux/lantiq/dts/EASY98035SYNCE1588.dts
new file mode 100644
index 0000000..2e14eb3
--- /dev/null
+++ b/target/linux/lantiq/dts/EASY98035SYNCE1588.dts
@@ -0,0 +1,80 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "EASY98035SYNCE1588 - Lantiq Falcon SFP Stick with SyncE/1588";
+	compatible = "lantiq,falcon-easy98035synce1588", "lantiq,falcon-sfp", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	aliases {
+		spi0 = &ebu_cs0;
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;  // 64M at 0x0
+	};
+
+	pinctrl {
+		compatible = "lantiq,pinctrl-falcon";
+
+		asc0_func1: func1 {
+			func1_tx {
+				lantiq,pins = "io32";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+			func1_rx {
+				lantiq,pins = "io33";
+				lantiq,mux = <0>;
+			};
+		};
+		asc0_func2: func2 {
+			func2_tx {
+				lantiq,pins = "io32";
+				lantiq,mux = <0>;
+			};
+			func2_rx {
+				lantiq,pins = "io33";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+		};
+		asc0_func3: func3 {
+			func3_tx {
+				lantiq,pins = "io32";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+			func3_rx {
+				lantiq,pins = "io33";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+		};
+	};
+
+	pinselect-asc0 {
+		compatible = "lantiq,pinselect-asc0";
+		pinctrl-names = "asc0", "func1", "func2", "func3";
+		pinctrl-0 = <&asc0_pins>;
+		pinctrl-1 = <&asc0_func1>;
+		pinctrl-2 = <&asc0_func2>;
+		pinctrl-3 = <&asc0_func3>;
+	};
+};
+
+&serial0 {
+	pinctrl-names = "default";
+	/* use "empty" pinctrl to leave setting from u-boot enabled */
+	pinctrl-0 = < >;
+};
+
+&i2c {
+	status = "okay";
+};
diff --git a/target/linux/lantiq/dts/FALCON-MDU.dts b/target/linux/lantiq/dts/FALCON-MDU.dts
new file mode 100644
index 0000000..1d459c4
--- /dev/null
+++ b/target/linux/lantiq/dts/FALCON-MDU.dts
@@ -0,0 +1,57 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "MDU - Lantiq Falcon / Vinax MDU Board";
+	compatible = "lantiq,falcon-mdu", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	aliases {
+		spi0 = &ebu_cs0;
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;  // 64M at 0x0
+	};
+
+	mdu-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&bootled_pins>;
+
+		LED_0 {
+			label = "mdu:green:gpon";
+			gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		LED_1 {
+			label = "mdu:green:status";
+			gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		LED_2 {
+			label = "mdu:green:2";
+			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		LED_3 {
+			label = "mdu:green:3";
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+		LED_4 {
+			label = "mdu:green:4";
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+	};
+};
+
diff --git a/target/linux/lantiq/dts/FALCON-SFP.dts b/target/linux/lantiq/dts/FALCON-SFP.dts
new file mode 100644
index 0000000..df2026c
--- /dev/null
+++ b/target/linux/lantiq/dts/FALCON-SFP.dts
@@ -0,0 +1,80 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+	model = "SFP - Lantiq Falcon SFP Stick";
+	compatible = "lantiq,falcon-sfp", "lantiq,falcon";
+
+	chosen {
+		bootargs-append = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	aliases {
+		spi0 = &ebu_cs0;
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x4000000>;  // 64M at 0x0
+	};
+
+	pinctrl {
+		compatible = "lantiq,pinctrl-falcon";
+
+		asc0_func1: func1 {
+			func1_tx {
+				lantiq,pins = "io32";
+				lantiq,mux = <1>;
+				lantiq,output = <0>;
+			};
+			func1_rx {
+				lantiq,pins = "io33";
+				lantiq,mux = <0>;
+			};
+		};
+		asc0_func2: func2 {
+			func2_tx {
+				lantiq,pins = "io32";
+				lantiq,mux = <0>;
+			};
+			func2_rx {
+				lantiq,pins = "io33";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+		};
+		asc0_func3: func3 {
+			func3_tx {
+				lantiq,pins = "io32";
+				lantiq,mux = <1>;
+				lantiq,output = <0>;
+			};
+			func3_rx {
+				lantiq,pins = "io33";
+				lantiq,mux = <1>;
+				lantiq,input = <0>;
+			};
+		};
+	};
+
+	pinselect-asc0 {
+		compatible = "lantiq,pinselect-asc0";
+		pinctrl-names = "asc0", "func1", "func2", "func3";
+		pinctrl-0 = <&asc0_pins>;
+		pinctrl-1 = <&asc0_func1>;
+		pinctrl-2 = <&asc0_func2>;
+		pinctrl-3 = <&asc0_func3>;
+	};
+};
+
+&serial0 {
+	pinctrl-names = "default";
+	/* use "empty" pinctrl to leave setting from u-boot enabled */
+	pinctrl-0 = < >;
+};
+
+&i2c {
+	status = "okay";
+};
diff --git a/target/linux/lantiq/dts/falcon-sflash-16M.dtsi b/target/linux/lantiq/dts/falcon-sflash-16M.dtsi
new file mode 100644
index 0000000..d95acc2
--- /dev/null
+++ b/target/linux/lantiq/dts/falcon-sflash-16M.dtsi
@@ -0,0 +1,37 @@
+
+&ebu_cs0 {
+	#address-cells = <1>;
+	#size-cells = <1>;
+	compatible = "lantiq,sflash-falcon", "simple-bus";
+
+	flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spansion,s25fl129p0", "spansion,s25fl129p1";
+		reg = <0 0>;
+		linux,mtd-name = "sflash";
+		spi-max-frequency = <80000000>;
+		m25p,fast-read;
+
+		partition at 0 {
+			reg = <0x0 0x40000>;
+			label = "uboot";
+			read-only;
+		};
+
+		partition at 40000 {
+			reg = <0x40000 0x80000>;
+			label = "uboot_env";
+		};
+
+		partition at C0000 {
+			reg = <0xC0000 0x740000>;
+			label = "image0";
+		};
+
+		partition at 800000 {
+			reg = <0x800000 0x800000>;
+			label = "image1";
+		};
+	};
+};
diff --git a/target/linux/lantiq/dts/falcon.dtsi b/target/linux/lantiq/dts/falcon.dtsi
new file mode 100644
index 0000000..76dde61
--- /dev/null
+++ b/target/linux/lantiq/dts/falcon.dtsi
@@ -0,0 +1,388 @@
+/ {
+	#address-cells = <1>;
+	#size-cells = <1>;
+	compatible = "lantiq,falcon";
+
+	cpus {
+		cpu at 0 {
+			compatible = "mips,mips34kc";
+		};
+	};
+
+	aliases {
+		serial0 = &serial0;
+		serial1 = &serial1;
+		gpio0 = &gpio0;
+		gpio1 = &gpio1;
+		gpio2 = &gpio2;
+		gpio3 = &gpio3;
+		gpio4 = &gpio4;
+	};
+
+	clocks {
+		compatible = "simple-bus";
+
+		cpu_clk: cpu {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <400000000>;
+			clock-output-names = "cpu";
+		};
+
+		io_clk: io {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <200000000>;
+			clock-output-names = "io";
+		};
+
+		fpi_clk: fpi {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <100000000>;
+			clock-output-names = "fpi";
+		};
+	};
+
+	ebu_cs0: localbus at 10000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "lantiq,localbus", "simple-bus";
+		reg = <0x10000000 0x4000000>;
+		ranges = <0x0 0x10000000 0x4000000>;
+	};
+	ebu_cs1: localbus at 14000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "lantiq,localbus", "simple-bus";
+		reg = <0x14000000 0x4000000>;
+		ranges = <0x0 0x14000000 0x4000000>;
+	};
+
+	ebu at 18000000 {
+		compatible = "lantiq,ebu-falcon";
+		reg = <0x18000000 0x100>;
+	};
+
+	sbs2 at 1D000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "lantiq,sysb2", "simple-bus";
+		reg = <0x1D000000 0x1000000>;
+		ranges = <0x0 0x1D000000 0x1000000>;
+
+		clock_sysgpe: clock-controller at 700000 {
+			compatible = "lantiq,sysgpe-falcon";
+			reg = <0x700000 0x100>;
+			#clock-cells = <1>;
+		};
+
+		mps at 4000 {
+			compatible = "lantiq,mps-falcon", "lantiq,mps-xrx100";
+			reg = <0x4000 0x1000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <154 155>;
+			lantiq,mbx = <&mpsmbx>;
+		};
+
+		gpio0: gpio at 810000 {
+			compatible = "lantiq,falcon-gpio";
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			interrupt-parent = <&icu0>;
+			interrupts = <44>;
+			reg = <0x810000 0x80>;
+			clocks = <&clock_syseth 16>;
+		};
+
+		gpio2: gpio at 810100 {
+			compatible = "lantiq,falcon-gpio";
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			interrupt-parent = <&icu0>;
+			interrupts = <46>;
+			reg = <0x810100 0x80>;
+			clocks = <&clock_syseth 17>;
+		};
+
+		clock_syseth: clock-controller at B00000 {
+			compatible = "lantiq,syseth-falcon";
+			reg = <0xB00000 0x100>;
+			#clock-cells = <1>;
+		};
+
+		pad at B01000 {
+			compatible = "lantiq,pad-falcon";
+			reg = <0xB01000 0x100>;
+			lantiq,bank = <0>;
+			clocks = <&clock_syseth 20>;
+		};
+
+		pad at B02000 {
+			compatible = "lantiq,pad-falcon";
+			reg = <0xB02000 0x100>;
+			lantiq,bank = <2>;
+			clocks = <&clock_syseth 21>;
+		};
+	};
+
+	fpi at 1E000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "lantiq,fpi", "simple-bus";
+		reg = <0x1E000000 0x1000000>;
+		ranges = <0x0 0x1E000000 0x1000000>;
+
+		serial1: serial at 100B00 {
+			status = "disabled";
+			compatible = "lantiq,asc";
+			reg = <0x100B00 0x100>;
+			interrupt-parent = <&icu0>;
+			interrupts = <112 113 114>;
+			line = <1>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&asc1_pins>;
+			clocks = <&clock_sys1 11>;
+		};
+
+		serial0: serial at 100C00 {
+			compatible = "lantiq,asc";
+			reg = <0x100C00 0x100>;
+			interrupt-parent = <&icu0>;
+			interrupts = <104 105 106>;
+			line = <0>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&asc0_pins>;
+			clocks = <&clock_sys1 12>;
+		};
+
+		spi: spi at 100D00 {
+			status = "disabled";
+			compatible = "intel,falcon-spi", "intel,xrx100-spi", "lantiq,spi-lantiq-ssc";
+			interrupts = <22 23 24 25>;
+			interrupt-names = "spi_tx", "spi_rx", "spi_err", "spi_frm";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0x100D00 0x100>;
+			interrupt-parent = <&icu0>;
+			clocks = <&clock_sys1 13>;
+			base_cs = <1>;
+			num_cs = <2>;
+		};
+
+		gptc at 100E00 {
+			compatible = "lantiq,gptc-falcon";
+			reg = <0x100E00 0x100>;
+		};
+
+		i2c: i2c at 200000 {
+			status = "disabled";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "lantiq,lantiq-i2c";
+			reg = <0x200000 0x10000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <18 19 20 21>;
+			gpios = <&gpio1 7 0 &gpio1 8 0>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&i2c_pins>;
+			clocks = <&clock_sys1 14>;
+		};
+
+		gpio1: gpio at 800100 {
+			compatible = "lantiq,falcon-gpio";
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			interrupt-parent = <&icu0>;
+			interrupts = <45>;
+			reg = <0x800100 0x100>;
+			clocks = <&clock_sys1 16>;
+		};
+
+		gpio3: gpio at 800200 {
+			compatible = "lantiq,falcon-gpio";
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			interrupt-parent = <&icu0>;
+			interrupts = <47>;
+			reg = <0x800200 0x100>;
+			clocks = <&clock_sys1 17>;
+		};
+
+		gpio4: gpio at 800300 {
+			compatible = "lantiq,falcon-gpio";
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			interrupt-parent = <&icu0>;
+			interrupts = <48>;
+			reg = <0x800300 0x100>;
+			clocks = <&clock_sys1 18>;
+		};
+
+		pad at 800400 {
+			compatible = "lantiq,pad-falcon";
+			reg = <0x800400 0x100>;
+			lantiq,bank = <1>;
+			clocks = <&clock_sys1 20>;
+		};
+
+		pad at 800500 {
+			compatible = "lantiq,pad-falcon";
+			reg = <0x800500 0x100>;
+			lantiq,bank = <3>;
+			clocks = <&clock_sys1 21>;
+		};
+
+		pad at 800600 {
+			compatible = "lantiq,pad-falcon";
+			reg = <0x800600 0x100>;
+			lantiq,bank = <4>;
+			clocks = <&clock_sys1 22>;
+		};
+
+		status at 802000 {
+			compatible = "lantiq,status-falcon";
+			reg = <0x802000 0x80>;
+		};
+
+		clock_sys1: clock-controller at F00000 {
+			compatible = "lantiq,sys1-falcon";
+			reg = <0xF00000 0x100>;
+			#clock-cells = <1>;
+		};
+	};
+
+	sbs0 at 1F000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "simple-bus";
+		reg = <0x1F000000 0x400000>;
+		ranges = <0x0 0x1F000000 0x400000>;
+
+		mpsmbx: mpsmbx at 200000 {
+			reg = <0x200000 0x200>;
+		};
+	};
+
+	sbs1 at 1F700000 {
+
+	};
+
+	biu at 1F800000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "lantiq,biu", "simple-bus";
+		reg = <0x1F800000 0x800000>;
+		ranges = <0x0 0x1F800000 0x800000>;
+
+		icu0: icu at 80200 {
+			#interrupt-cells = <1>;
+			interrupt-controller;
+			compatible = "lantiq,icu";
+			reg = <0x80200 0x28
+				0x80228 0x28
+				0x80250 0x28
+				0x80278 0x28
+				0x802a0 0x28>;
+		};
+
+		watchdog at 803F0 {
+			compatible = "lantiq,wdt";
+			reg = <0x803F0 0x10>;
+			clocks = <&io_clk>; /* currently no effect */
+		};
+	};
+
+	pinctrl {
+		compatible = "lantiq,pinctrl-falcon";
+		pinctrl-names = "default";
+		pinctrl-0 = <&state_default>;
+
+		state_default: pinctrl0 {
+			/*ntr {
+				lantiq,groups = "ntr8k";
+				lantiq,function = "ntr";
+			};*/
+			hrst {
+				lantiq,groups = "hrst";
+				lantiq,function = "rst";
+			};
+		};
+
+		asc0_pins: asc0 {
+			asc0 {
+				lantiq,groups = "asc0";
+				lantiq,function = "asc";
+			};
+		};
+		asc1_pins: asc1 {
+			asc1 {
+				lantiq,groups = "asc1";
+				lantiq,function = "asc";
+			};
+		};
+		i2c_pins: i2c {
+			i2c {
+				lantiq,groups = "i2c";
+				lantiq,function = "i2c";
+			};
+		};
+		bootled_pins: bootled {
+			bootled {
+				lantiq,groups = "bootled";
+				lantiq,function = "led";
+			};
+		};
+		ntr_ntr8k: ntr8k {
+			ntr8k {
+				lantiq,groups = "ntr8k";
+				lantiq,function = "ntr";
+			};
+		};
+		ntr_pps: pps {
+			pps {
+				lantiq,groups = "pps";
+				lantiq,function = "ntr";
+			};
+		};
+		ntr_gpio: gpio {
+			gpio {
+				lantiq,pins = "io5";
+				lantiq,mux = <1>;
+				lantiq,output = <0>;
+			};
+		};
+		slic_pins: slic {
+			slic {
+				lantiq,groups = "slic";
+				lantiq,function = "slic";
+			};
+		};
+	};
+
+	pinselect-ntr {
+		compatible = "lantiq,onu-ntr","lantiq,pinselect-ntr";
+		pinctrl-names = "ntr8k", "pps", "gpio";
+		pinctrl-0 = <&ntr_ntr8k>;
+		pinctrl-1 = <&ntr_pps>;
+		pinctrl-2 = <&ntr_gpio>;
+	};
+
+	pinselect-asc1 {
+		compatible = "lantiq,onu-asc1","lantiq,pinselect-asc1";
+		pinctrl-names = "default", "asc1";
+		pinctrl-0 = <&slic_pins>;
+		pinctrl-1 = <&asc1_pins>;
+	};
+
+};
diff --git a/target/linux/lantiq/falcon/config-default b/target/linux/lantiq/falcon/config-default
new file mode 100644
index 0000000..de4fa36
--- /dev/null
+++ b/target/linux/lantiq/falcon/config-default
@@ -0,0 +1,10 @@
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_SPLIT_FIRMWARE_NAME="linux"
+CONFIG_PINCTRL_FALCON=y
+# CONFIG_PSB6970_PHY is not set
+# CONFIG_RTL8366_SMI is not set
+CONFIG_SOC_FALCON=y
+# CONFIG_SOC_TYPE_XWAY is not set
+# CONFIG_SOC_XWAY is not set
+CONFIG_SPI_FALCON=y
diff --git a/target/linux/lantiq/falcon/profiles/00-default.mk b/target/linux/lantiq/falcon/profiles/00-default.mk
new file mode 100644
index 0000000..26bc8b5
--- /dev/null
+++ b/target/linux/lantiq/falcon/profiles/00-default.mk
@@ -0,0 +1,9 @@
+define Profile/Default
+	NAME:=Default Profile
+	PRIORITY:=1
+endef
+
+define Profile/Default/Description
+	Default package set compatible with most boards.
+endef
+$(eval $(call Profile,Default))
diff --git a/target/linux/lantiq/falcon/target.mk b/target/linux/lantiq/falcon/target.mk
new file mode 100644
index 0000000..b87d1dc
--- /dev/null
+++ b/target/linux/lantiq/falcon/target.mk
@@ -0,0 +1,13 @@
+ARCH:=mips
+SUBTARGET:=falcon
+BOARDNAME:=Falcon
+FEATURES:=squashfs mips16 nand
+CPU_TYPE:=24kc
+
+DEFAULT_PACKAGES+= kmod-leds-gpio \
+	kmod-gpio-button-hotplug \
+	kmod-ledtrig-heartbeat
+
+define Target/Description
+	Lantiq Falcon
+endef
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index 2e0fdb3..490bd54 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -565,4 +565,85 @@ TARGET_DEVICES += VGV7519BRN
 
 endif
 
+
+ifeq ($(SUBTARGET),falcon)
+
+define Device/EASY98000
+  IMAGE_SIZE := 3904k
+  DEVICE_TITLE := EASY98000 - Lantiq Falcon Eval Board NOR
+  DEVICE_DTS := EASY98000NOR
+  DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
+endef
+TARGET_DEVICES += EASY98000
+
+define Device/EASY98000NAND
+  IMAGE_SIZE := 3904k
+  DEVICE_TITLE := EASY98000 - Lantiq Falcon Eval Board NAND
+  DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
+endef
+TARGET_DEVICES += EASY98000NAND
+
+define Device/EASY98000SFLASH
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := EASY98000 - Lantiq Falcon Eval Board SFLASH
+  DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
+endef
+TARGET_DEVICES += EASY98000SFLASH
+
+define Device/FALCON-MDU
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := MDU - Lantiq Falcon / VINAXdp MDU Board
+endef
+TARGET_DEVICES += FALCON-MDU
+
+define Device/EASY88388
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := EASY88388 - Lantiq Falcon FTTDP8 Reference Board
+endef
+TARGET_DEVICES += EASY88388
+
+define Device/EASY88444
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := EASY88444 - Lantiq Falcon FTTdp G.FAST Reference Board
+endef
+TARGET_DEVICES += EASY88444
+
+define Device/FALCON-SFP
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := SFP - Lantiq Falcon SFP Stick
+endef
+TARGET_DEVICES += FALCON-SFP
+
+define Device/EASY98035SYNCE
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := EASY98035SYNCE - Lantiq Falcon SFP Stick with Synchronous Ethernet
+endef
+TARGET_DEVICES += EASY98035SYNCE
+
+define Device/EASY98035SYNCE1588
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := EASY98035SYNCE1588 - Lantiq Falcon SFP Stick with SyncE and IEEE1588
+endef
+TARGET_DEVICES += EASY98035SYNCE1588
+
+define Device/EASY98020
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := EASY98020 - Lantiq Falcon SFU Reference Board
+endef
+TARGET_DEVICES += EASY98020
+
+define Device/EASY98020V18
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := EASY98020V18 - Lantiq Falcon SFU Reference Board V1.8
+endef
+TARGET_DEVICES += EASY98020V18
+
+define Device/EASY98021
+  IMAGE_SIZE := 7424k
+  DEVICE_TITLE := EASY98021 - Lantiq Falcon HGU Reference Board
+endef
+TARGET_DEVICES += EASY98021
+
+endif
+
 $(eval $(call BuildImage))



More information about the lede-commits mailing list