[linux] 01/01: [armel] dts: Add various device-tree fixes and improvements for Buffalo Linkstation devices.
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Wed Feb 24 09:32:41 UTC 2016
This is an automated email from the git hooks/post-receive script.
rosh-guest pushed a commit to branch sid
in repository linux.
commit 54248be7f55d10c6fc95c11fc930557d972223ef
Author: Roger Shimizu <rogershimizu at gmail.com>
Date: Wed Feb 24 18:30:56 2016 +0900
[armel] dts: Add various device-tree fixes and improvements for Buffalo Linkstation devices.
---
debian/changelog | 2 +
...rkwood-add-for-buffalo-linkstation-ls-qvl.patch | 187 ++++
...-gpio-leds-fixes-for-linkstation-ls-wvl-v.patch | 66 ++
...-gpio-leds-fixes-for-linkstation-ls-wxl-w.patch | 51 ++
...-gpio-pin-fixes-for-linkstation-ls-wvl-vl.patch | 115 +++
...-gpio-pin-fixes-for-linkstation-ls-wxl-ws.patch | 139 +++
...-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch | 117 +++
...-split-lswvl-dts-to-linkstation-lsvl-and-.patch | 787 ++++++++++++++++
...-split-lswxl-dts-to-linkstation-lswsxl-an.patch | 994 +++++++++++++++++++++
...orion5x-add-for-buffalo-linkstation-ls-gl.patch | 132 +++
...x-fix-missing-mtdflash-linkstation-lswtgl.patch | 58 ++
...n5x-gpio-pin-fixes-for-linkstation-lswtgl.patch | 59 ++
...split-linkstation-lswtgl-into-common-and-.patch | 710 +++++++++++++++
debian/patches/series | 12 +
14 files changed, 3429 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index e85ef3d..c078729 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ linux (4.4.2-4) UNRELEASED; urgency=medium
[ Roger Shimizu ]
* [armhf] dts: imx6dlq-wandboard-revb1: use unique model id
(Closes: #813881).
+ * [armel] dts: Add various device-tree fixes and improvements for
+ Buffalo Linkstation devices.
[ Ben Hutchings ]
* unix: correctly track in-flight fds in sending process user_struct
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch
new file mode 100644
index 0000000..c6b44d0
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch
@@ -0,0 +1,187 @@
+From: Mario Lange <mario_lange at gmx.net>
+Date: Tue, 26 Jan 2016 01:44:10 +0900
+Subject: ARM: dts: kirkwood: add device tree for buffalo linkstation ls-qvl
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=5dda254d0cc5cbdcc81dbce0985c35b68dd5e3b1
+
+Add dts file to support Buffalo Linkstation LS-QVL,
+which is marvell kirkwood based 4-bay 3.5" HDD NAS.
+Product info:
+ - (JPN) http://buffalo.jp/product/hdd/network/ls-qvl_r5/
+ - (ENG) http://www.buffalotech.com/products/network-storage/home-and-small-office/linkstation-pro-quad
+
+Signed-off-by: Mario Lange <mario_lange at gmx.net>
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ .../devicetree/bindings/arm/marvell,kirkwood.txt | 1 +
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts | 135 +++++++++++++++++++++
+ 3 files changed, 137 insertions(+)
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts
+
+diff --git a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+index 0fc6faa4cddb..7d28fe4bf654 100644
+--- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
++++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+@@ -19,6 +19,7 @@ SoC. Currently known SoC compatibles are:
+ And in addition, the compatible shall be extended with the specific
+ board. Currently known boards are:
+
++"buffalo,linkstation-lsqvl"
+ "buffalo,linkstation-lsvl"
+ "buffalo,linkstation-lswsxl"
+ "buffalo,linkstation-lswxl"
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 91833f905aef..30d316dc050f 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -189,6 +189,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
+ kirkwood-is2.dtb \
+ kirkwood-km_kirkwood.dtb \
+ kirkwood-laplug.dtb \
++ kirkwood-linkstation-lsqvl.dtb \
+ kirkwood-linkstation-lsvl.dtb \
+ kirkwood-linkstation-lswsxl.dtb \
+ kirkwood-linkstation-lswvl.dtb \
+diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts
+new file mode 100644
+index 000000000000..6dc0df2969f0
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts
+@@ -0,0 +1,135 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-QVL
++ *
++ * Copyright (C) 2016, Mario Lange <mario_lange at gmx.net>
++ *
++ * Based on kirkwood-linkstation-lswvl.dts,
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++#include "kirkwood-linkstation-6282.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-QVL";
++ compatible = "buffalo,lsqvl", "marvell,kirkwood-88f6282", "marvell,kirkwood";
++
++ memory { /* 256 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x10000000>;
++ };
++
++ ocp at f1000000 {
++ pinctrl: pin-controller at 10000 {
++ pmx_power_hdd1: pmx-power-hdd1 {
++ marvell,pins = "mpp9";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr0: pmx-led-hdderr0 {
++ marvell,pins = "mpp34";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr1: pmx-led-hdderr1 {
++ marvell,pins = "mpp35";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr2: pmx-led-hdderr2 {
++ marvell,pins = "mpp24";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr3: pmx-led-hdderr3 {
++ marvell,pins = "mpp25";
++ marvell,function = "gpio";
++ };
++ };
++
++ sata at 80000 {
++ nr-ports = <2>;
++ };
++ };
++
++ gpio_leds {
++ pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
++ &pmx_led_info &pmx_led_power
++ &pmx_led_function_blue
++ &pmx_led_hdderr0
++ &pmx_led_hdderr1
++ &pmx_led_hdderr2
++ &pmx_led_hdderr3>;
++
++ red-hdderr0-led {
++ label = "linkstation:red:hdderr0";
++ gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
++ };
++
++ red-hdderr1-led {
++ label = "linkstation:red:hdderr1";
++ gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
++ };
++
++ red-hdderr2-led {
++ label = "linkstation:red:hdderr2";
++ gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
++ };
++
++ red-hdderr3-led {
++ label = "linkstation:red:hdderr3";
++ gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ regulators {
++ pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
++
++ hdd_power1: regulator at 3 {
++ compatible = "regulator-fixed";
++ reg = <3>;
++ regulator-name = "HDD1 Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
++ };
++ };
++};
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wvl-v.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wvl-v.patch
new file mode 100644
index 0000000..e4edab1
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wvl-v.patch
@@ -0,0 +1,66 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Thu, 21 Jan 2016 23:38:47 +0900
+Subject: ARM: dts: kirkwood: gpio-leds fixes for linkstation ls-wvl/vl
+Origin: https://git.kernel.org/linus/0418138e2ffd90f4a00b263593f2e199db87321d
+
+The GPIOs controlling the LEDs, listed below, are active high, not low:
+ - gpio-leds: "lswvl:red:alarm" pin
+ - gpio-leds: "lswvl:red:func" pin
+ - gpio-leds: "lswvl:amber:info" pin
+ - gpio-leds: "lswvl:blue:func" pin
+ - gpio-leds: "lswvl:red:hdderr{0,1}" pin
+
+Fixes: c43379e150aa ("ARM: dts: add buffalo linkstation ls-wvl/vl")
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ arch/arm/boot/dts/kirkwood-lswvl.dts | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/arch/arm/boot/dts/kirkwood-lswvl.dts b/arch/arm/boot/dts/kirkwood-lswvl.dts
+index 28fd9abd7a57..36eec7392ab4 100644
+--- a/arch/arm/boot/dts/kirkwood-lswvl.dts
++++ b/arch/arm/boot/dts/kirkwood-lswvl.dts
+@@ -186,22 +186,22 @@
+
+ led at 1 {
+ label = "lswvl:red:alarm";
+- gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ led at 2 {
+ label = "lswvl:red:func";
+- gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ led at 3 {
+ label = "lswvl:amber:info";
+- gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ };
+
+ led at 4 {
+ label = "lswvl:blue:func";
+- gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+ };
+
+ led at 5 {
+@@ -212,12 +212,12 @@
+
+ led at 6 {
+ label = "lswvl:red:hdderr0";
+- gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ led at 7 {
+ label = "lswvl:red:hdderr1";
+- gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wxl-w.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wxl-w.patch
new file mode 100644
index 0000000..9e044f7
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wxl-w.patch
@@ -0,0 +1,51 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Thu, 21 Jan 2016 23:38:46 +0900
+Subject: ARM: dts: kirkwood: gpio-leds fixes for linkstation ls-wxl/wsxl
+Origin: https://git.kernel.org/linus/e98bd707e39d52d8bef8622e6e7b0ab4bd0ed8d0
+
+The GPIOs controlling the LEDs, listed below, are active high, not low:
+ - gpio-leds: "lswxl:blue:power" pin
+ - gpio-leds: "lswxl:red:func" pin
+ - gpio-leds: "lswxl:red:hdderr{0,1}" pin
+
+Fixes: e54e4b1b622e ("ARM: dts: add buffalo linkstation ls-wxl/wsxl")
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ arch/arm/boot/dts/kirkwood-lswxl.dts | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/boot/dts/kirkwood-lswxl.dts b/arch/arm/boot/dts/kirkwood-lswxl.dts
+index 0e93f6d19259..b13ec20a7088 100644
+--- a/arch/arm/boot/dts/kirkwood-lswxl.dts
++++ b/arch/arm/boot/dts/kirkwood-lswxl.dts
+@@ -201,23 +201,23 @@
+
+ led at 4 {
+ label = "lswxl:blue:power";
+- gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
++ default-state = "keep";
+ };
+
+ led at 5 {
+ label = "lswxl:red:func";
+- gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+- default-state = "keep";
++ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ led at 6 {
+ label = "lswxl:red:hdderr0";
+- gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+ };
+
+ led at 7 {
+ label = "lswxl:red:hdderr1";
+- gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wvl-vl.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wvl-vl.patch
new file mode 100644
index 0000000..bb7ab85
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wvl-vl.patch
@@ -0,0 +1,115 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Thu, 21 Jan 2016 23:38:45 +0900
+Subject: ARM: dts: kirkwood: gpio pin fixes for linkstation ls-wvl/vl
+Origin: https://git.kernel.org/linus/6f86e9adc53b4c0a2a4283692216d119019f0b8d
+
+For kirkwood, gpio pins starts from 32 are in the 2nd bank, so it should be
+converted to "gpio1 <pin minus 32>" in dts file.
+e.g. gpio 40 should be "gpio1 8"
+
+The pin/bank issue was found when discussing Debian Bug #810894
+ [https://bugs.debian.org/810894#47]
+
+Fixes: c43379e150aa ("ARM: dts: add buffalo linkstation ls-wvl/vl")
+Reported-by: Arnaud Patard (Rtp) <arnaud.patard at rtp-net.org>
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ arch/arm/boot/dts/kirkwood-lswvl.dts | 25 +++++++++++++------------
+ 1 file changed, 13 insertions(+), 12 deletions(-)
+
+diff --git a/arch/arm/boot/dts/kirkwood-lswvl.dts b/arch/arm/boot/dts/kirkwood-lswvl.dts
+index 09eed3cea0af..28fd9abd7a57 100644
+--- a/arch/arm/boot/dts/kirkwood-lswvl.dts
++++ b/arch/arm/boot/dts/kirkwood-lswvl.dts
+@@ -1,7 +1,8 @@
+ /*
+ * Device Tree file for Buffalo Linkstation LS-WVL/VL
+ *
+- * Copyright (C) 2015, rogershimizu at gmail.com
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+@@ -156,21 +157,21 @@
+ button at 1 {
+ label = "Function Button";
+ linux,code = <KEY_OPTION>;
+- gpios = <&gpio0 45 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+ };
+
+ button at 2 {
+ label = "Power-on Switch";
+ linux,code = <KEY_RESERVED>;
+ linux,input-type = <5>;
+- gpios = <&gpio0 46 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+ };
+
+ button at 3 {
+ label = "Power-auto Switch";
+ linux,code = <KEY_ESC>;
+ linux,input-type = <5>;
+- gpios = <&gpio0 47 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+@@ -185,38 +186,38 @@
+
+ led at 1 {
+ label = "lswvl:red:alarm";
+- gpios = <&gpio0 36 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+ };
+
+ led at 2 {
+ label = "lswvl:red:func";
+- gpios = <&gpio0 37 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+ };
+
+ led at 3 {
+ label = "lswvl:amber:info";
+- gpios = <&gpio0 38 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+ };
+
+ led at 4 {
+ label = "lswvl:blue:func";
+- gpios = <&gpio0 39 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+ };
+
+ led at 5 {
+ label = "lswvl:blue:power";
+- gpios = <&gpio0 40 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ led at 6 {
+ label = "lswvl:red:hdderr0";
+- gpios = <&gpio0 34 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+ };
+
+ led at 7 {
+ label = "lswvl:red:hdderr1";
+- gpios = <&gpio0 35 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+@@ -233,7 +234,7 @@
+ 3250 1
+ 5000 0>;
+
+- alarm-gpios = <&gpio0 43 GPIO_ACTIVE_HIGH>;
++ alarm-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+ };
+
+ restart_poweroff {
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wxl-ws.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wxl-ws.patch
new file mode 100644
index 0000000..fcb6787
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wxl-ws.patch
@@ -0,0 +1,139 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Thu, 21 Jan 2016 23:38:44 +0900
+Subject: ARM: dts: kirkwood: gpio pin fixes for linkstation ls-wxl/wsxl
+Origin: https://git.kernel.org/linus/144e08abe80080c9c2cf0a06e40f1bc8150674eb
+
+For kirkwood, gpio pins starts from 32 are in the 2nd bank, so it should be
+converted to "gpio1 <pin minus 32>" in dts file.
+e.g. gpio 40 should be "gpio1 8"
+
+Besides, a few other pin fixes for ls-wxl/wsxl, to match with mpp pin
+definition:
+ - gpio-leds: "lswxl:blue:power" pin
+ - gpio-leds: "lswxl:red:func" pin
+ - gpio-leds: "lswxl:red:hdderr0" pin
+ - gpio-leds: "lswxl:red:hdderr1" pin
+ - gpio-fan: low/high/alarm pin
+
+The pin/bank issue was found when discussing Debian Bug #810894
+ [https://bugs.debian.org/810894#47]
+
+Fixes: e54e4b1b622e ("ARM: dts: add buffalo linkstation ls-wxl/wsxl")
+Reported-by: Arnaud Patard (Rtp) <arnaud.patard at rtp-net.org>
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ arch/arm/boot/dts/kirkwood-lswxl.dts | 29 +++++++++++++++--------------
+ 1 file changed, 15 insertions(+), 14 deletions(-)
+
+diff --git a/arch/arm/boot/dts/kirkwood-lswxl.dts b/arch/arm/boot/dts/kirkwood-lswxl.dts
+index f5db16a08597..0e93f6d19259 100644
+--- a/arch/arm/boot/dts/kirkwood-lswxl.dts
++++ b/arch/arm/boot/dts/kirkwood-lswxl.dts
+@@ -1,7 +1,8 @@
+ /*
+ * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
+ *
+- * Copyright (C) 2015, rogershimizu at gmail.com
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+@@ -156,21 +157,21 @@
+ button at 1 {
+ label = "Function Button";
+ linux,code = <KEY_OPTION>;
+- gpios = <&gpio1 41 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+ };
+
+ button at 2 {
+ label = "Power-on Switch";
+ linux,code = <KEY_RESERVED>;
+ linux,input-type = <5>;
+- gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+ };
+
+ button at 3 {
+ label = "Power-auto Switch";
+ linux,code = <KEY_ESC>;
+ linux,input-type = <5>;
+- gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+@@ -185,12 +186,12 @@
+
+ led at 1 {
+ label = "lswxl:blue:func";
+- gpios = <&gpio1 36 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+ };
+
+ led at 2 {
+ label = "lswxl:red:alarm";
+- gpios = <&gpio1 49 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+ };
+
+ led at 3 {
+@@ -200,23 +201,23 @@
+
+ led at 4 {
+ label = "lswxl:blue:power";
+- gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+ };
+
+ led at 5 {
+ label = "lswxl:red:func";
+- gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ led at 6 {
+ label = "lswxl:red:hdderr0";
+- gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
+ };
+
+ led at 7 {
+ label = "lswxl:red:hdderr1";
+- gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+@@ -225,15 +226,15 @@
+ pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+ pinctrl-names = "default";
+
+- gpios = <&gpio0 47 GPIO_ACTIVE_LOW
+- &gpio0 48 GPIO_ACTIVE_LOW>;
++ gpios = <&gpio1 16 GPIO_ACTIVE_LOW
++ &gpio1 15 GPIO_ACTIVE_LOW>;
+
+ gpio-fan,speed-map = <0 3
+ 1500 2
+ 3250 1
+ 5000 0>;
+
+- alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>;
++ alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+ };
+
+ restart_poweroff {
+@@ -256,7 +257,7 @@
+ enable-active-high;
+ regulator-always-on;
+ regulator-boot-on;
+- gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>;
++ gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ };
+ hdd_power0: regulator at 2 {
+ compatible = "regulator-fixed";
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch
new file mode 100644
index 0000000..fdfdd63
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch
@@ -0,0 +1,117 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Thu, 21 Jan 2016 23:38:48 +0900
+Subject: ARM: dts: kirkwood: relicense dts of ls-wvl/vl and ls-wxl/wsxl under GPLv2/X11
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=3e2f2db885fb0cb16ae8949d4d2283f1ac272329
+
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ arch/arm/boot/dts/kirkwood-lswvl.dts | 41 ++++++++++++++++++++++++++++++++----
+ arch/arm/boot/dts/kirkwood-lswxl.dts | 41 ++++++++++++++++++++++++++++++++----
+ 2 files changed, 74 insertions(+), 8 deletions(-)
+
+diff --git a/arch/arm/boot/dts/kirkwood-lswvl.dts b/arch/arm/boot/dts/kirkwood-lswvl.dts
+index 36eec7392ab4..04bdc4f19a9f 100644
+--- a/arch/arm/boot/dts/kirkwood-lswvl.dts
++++ b/arch/arm/boot/dts/kirkwood-lswvl.dts
+@@ -4,10 +4,43 @@
+ * Copyright (C) 2015, 2016
+ * Roger Shimizu <rogershimizu at gmail.com>
+ *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License
+- * as published by the Free Software Foundation; either version
+- * 2 of the License, or (at your option) any later version.
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+ /dts-v1/;
+diff --git a/arch/arm/boot/dts/kirkwood-lswxl.dts b/arch/arm/boot/dts/kirkwood-lswxl.dts
+index b13ec20a7088..930899d13c5d 100644
+--- a/arch/arm/boot/dts/kirkwood-lswxl.dts
++++ b/arch/arm/boot/dts/kirkwood-lswxl.dts
+@@ -4,10 +4,43 @@
+ * Copyright (C) 2015, 2016
+ * Roger Shimizu <rogershimizu at gmail.com>
+ *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License
+- * as published by the Free Software Foundation; either version
+- * 2 of the License, or (at your option) any later version.
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+ /dts-v1/;
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch
new file mode 100644
index 0000000..9fbc786
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch
@@ -0,0 +1,787 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Thu, 21 Jan 2016 23:38:50 +0900
+Subject: ARM: dts: kirkwood: split lswvl dts to linkstation lsvl and lswvl
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=60ff189ca05dedac97af8d9e51c285a44bc9e5a5
+
+LS-WVL/VL are both kirkwood-6282 based NAS devices, which share
+many MPP pins. However they are slightly different:
+ - LS-WVL is 2-Bay NAS, and LS-VL is only 1-Bay.
+ - There're two red LED indicator on LS-WVL to show when HDD fails,
+ which is similar to LS-WXL, but there's no such on LS-VL.
+
+So after the split, common part goes into .dtsi file:
+ - kirkwood-linkstation-6282.dtsi
+while all rest part goes into device specific .dts file:
+ - kirkwood-linkstation-lsvl.dts
+ - kirkwood-linkstation-lswvl.dts
+
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ .../devicetree/bindings/arm/marvell,kirkwood.txt | 3 +-
+ arch/arm/boot/dts/Makefile | 3 +-
+ arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi | 192 ++++++++++++
+ arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts | 57 ++++
+ arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts | 112 +++++++
+ arch/arm/boot/dts/kirkwood-lswvl.dts | 335 ---------------------
+ 6 files changed, 365 insertions(+), 337 deletions(-)
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts
+ delete mode 100644 arch/arm/boot/dts/kirkwood-lswvl.dts
+
+diff --git a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+index f68bdec8e111..0fc6faa4cddb 100644
+--- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
++++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+@@ -19,10 +19,11 @@ SoC. Currently known SoC compatibles are:
+ And in addition, the compatible shall be extended with the specific
+ board. Currently known boards are:
+
++"buffalo,linkstation-lsvl"
+ "buffalo,linkstation-lswsxl"
+ "buffalo,linkstation-lswxl"
++"buffalo,linkstation-lswvl"
+ "buffalo,lschlv2"
+-"buffalo,lswvl"
+ "buffalo,lsxhl"
+ "buffalo,lsxl"
+ "dlink,dns-320"
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 6771d0b5dc2a..91833f905aef 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -184,10 +184,11 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
+ kirkwood-is2.dtb \
+ kirkwood-km_kirkwood.dtb \
+ kirkwood-laplug.dtb \
++ kirkwood-linkstation-lsvl.dtb \
+ kirkwood-linkstation-lswsxl.dtb \
++ kirkwood-linkstation-lswvl.dtb \
+ kirkwood-linkstation-lswxl.dtb \
+ kirkwood-lschlv2.dtb \
+- kirkwood-lswvl.dtb \
+ kirkwood-lsxhl.dtb \
+ kirkwood-mplcec4.dtb \
+ kirkwood-mv88f6281gtw-ge.dtb \
+diff --git a/arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi b/arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi
+new file mode 100644
+index 000000000000..6548e68a20d0
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi
+@@ -0,0 +1,192 @@
++/*
++ * Device Tree common file for kirkwood-6282 based Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++#include "kirkwood.dtsi"
++#include "kirkwood-6282.dtsi"
++#include "kirkwood-linkstation.dtsi"
++
++/ {
++ ocp at f1000000 {
++ pinctrl: pin-controller at 10000 {
++ pmx_power_hdd0: pmx-power-hdd0 {
++ marvell,pins = "mpp8";
++ marvell,function = "gpio";
++ };
++ pmx_usb_vbus: pmx-usb-vbus {
++ marvell,pins = "mpp12";
++ marvell,function = "gpio";
++ };
++ pmx_fan_high: pmx-fan-high {
++ marvell,pins = "mpp16";
++ marvell,function = "gpio";
++ };
++ pmx_fan_low: pmx-fan-low {
++ marvell,pins = "mpp17";
++ marvell,function = "gpio";
++ };
++ pmx_led_alarm: pmx-led-alarm {
++ marvell,pins = "mpp36";
++ marvell,function = "gpio";
++ };
++ pmx_led_function_red: pmx-led-function-red {
++ marvell,pins = "mpp37";
++ marvell,function = "gpio";
++ };
++ pmx_led_info: pmx-led-info {
++ marvell,pins = "mpp38";
++ marvell,function = "gpio";
++ };
++ pmx_led_function_blue: pmx-led-function-blue {
++ marvell,pins = "mpp39";
++ marvell,function = "gpio";
++ };
++ pmx_led_power: pmx-led-power {
++ marvell,pins = "mpp40";
++ marvell,function = "gpio";
++ };
++ pmx_fan_lock: pmx-fan-lock {
++ marvell,pins = "mpp43";
++ marvell,function = "gpio";
++ };
++ pmx_button_function: pmx-button-function {
++ marvell,pins = "mpp45";
++ marvell,function = "gpio";
++ };
++ pmx_power_switch: pmx-power-switch {
++ marvell,pins = "mpp46";
++ marvell,function = "gpio";
++ };
++ pmx_power_auto_switch: pmx-power-auto-switch {
++ marvell,pins = "mpp47";
++ marvell,function = "gpio";
++ };
++ };
++ };
++
++ gpio_keys {
++ function-button {
++ gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
++ };
++
++ power-on-switch {
++ gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
++ };
++
++ power-auto-switch {
++ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ gpio_leds {
++ red-alarm-led {
++ label = "linkstation:red:alarm";
++ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
++ };
++
++ red-function-led {
++ label = "linkstation:red:function";
++ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
++ };
++
++ amber-info-led {
++ label = "linkstation:amber:info";
++ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
++ };
++
++ blue-function-led {
++ label = "linkstation:blue:function";
++ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
++ };
++
++ blue-power-led {
++ label = "linkstation:blue:power";
++ gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
++ default-state = "keep";
++ };
++ };
++
++ gpio_fan {
++ compatible = "gpio-fan";
++ pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
++ pinctrl-names = "default";
++
++ gpios = <&gpio0 17 GPIO_ACTIVE_LOW
++ &gpio0 16 GPIO_ACTIVE_LOW>;
++
++ gpio-fan,speed-map = <0 3
++ 1500 2
++ 3250 1
++ 5000 0>;
++
++ alarm-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
++ };
++
++ regulators {
++ usb_power: regulator at 1 {
++ gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
++ };
++
++ hdd_power0: regulator at 2 {
++ gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
++ };
++ };
++};
++
++&mdio {
++ status = "okay";
++
++ ethphy0: ethernet-phy at 0 {
++ device_type = "ethernet-phy";
++ reg = <0>;
++ };
++};
++
++ð0 {
++ status = "okay";
++
++ ethernet0-port at 0 {
++ phy-handle = <ðphy0>;
++ };
++};
+diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts
+new file mode 100644
+index 000000000000..edcba5c44b05
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts
+@@ -0,0 +1,57 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-VL
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++#include "kirkwood-linkstation-6282.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-VL";
++ compatible = "buffalo,lsvl", "marvell,kirkwood-88f6282", "marvell,kirkwood";
++
++ memory { /* 256 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x10000000>;
++ };
++};
+diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts
+new file mode 100644
+index 000000000000..954ec1d5b6dc
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts
+@@ -0,0 +1,112 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-WVL
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++#include "kirkwood-linkstation-6282.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-WVL";
++ compatible = "buffalo,lswvl","marvell,kirkwood-88f6282", "marvell,kirkwood";
++
++ memory { /* 256 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x10000000>;
++ };
++
++ ocp at f1000000 {
++ pinctrl: pin-controller at 10000 {
++ pmx_power_hdd1: pmx-power-hdd1 {
++ marvell,pins = "mpp9";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr0: pmx-led-hdderr0 {
++ marvell,pins = "mpp34";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr1: pmx-led-hdderr1 {
++ marvell,pins = "mpp35";
++ marvell,function = "gpio";
++ };
++ };
++
++ sata at 80000 {
++ nr-ports = <2>;
++ };
++ };
++
++ gpio_leds {
++ pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
++ &pmx_led_info &pmx_led_power
++ &pmx_led_function_blue
++ &pmx_led_hdderr0
++ &pmx_led_hdderr1>;
++
++ red-hdderr0-led {
++ label = "linkstation:red:hdderr0";
++ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
++ };
++
++ red-hdderr1-led {
++ label = "linkstation:red:hdderr1";
++ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
++ };
++ };
++
++ regulators {
++ pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
++
++ hdd_power1: regulator at 3 {
++ compatible = "regulator-fixed";
++ reg = <3>;
++ regulator-name = "HDD1 Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
++ };
++ };
++};
+diff --git a/arch/arm/boot/dts/kirkwood-lswvl.dts b/arch/arm/boot/dts/kirkwood-lswvl.dts
+deleted file mode 100644
+index 04bdc4f19a9f..000000000000
+--- a/arch/arm/boot/dts/kirkwood-lswvl.dts
++++ /dev/null
+@@ -1,335 +0,0 @@
+-/*
+- * Device Tree file for Buffalo Linkstation LS-WVL/VL
+- *
+- * Copyright (C) 2015, 2016
+- * Roger Shimizu <rogershimizu at gmail.com>
+- *
+- * This file is dual-licensed: you can use it either under the terms
+- * of the GPL or the X11 license, at your option. Note that this dual
+- * licensing only applies to this file, and not this project as a
+- * whole.
+- *
+- * a) This file is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License as
+- * published by the Free Software Foundation; either version 2 of the
+- * License, or (at your option) any later version.
+- *
+- * This file 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.
+- *
+- * Or, alternatively
+- *
+- * b) Permission is hereby granted, free of charge, to any person
+- * obtaining a copy of this software and associated documentation
+- * files (the "Software"), to deal in the Software without
+- * restriction, including without limitation the rights to use
+- * copy, modify, merge, publish, distribute, sublicense, and/or
+- * sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following
+- * conditions:
+- *
+- * The above copyright notice and this permission notice shall be
+- * included in all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- */
+-
+-/dts-v1/;
+-
+-#include "kirkwood.dtsi"
+-#include "kirkwood-6282.dtsi"
+-
+-/ {
+- model = "Buffalo Linkstation LS-WVL/VL";
+- compatible = "buffalo,lswvl", "buffalo,lsvl", "marvell,kirkwood-88f6282", "marvell,kirkwood";
+-
+- memory { /* 256 MB */
+- device_type = "memory";
+- reg = <0x00000000 0x10000000>;
+- };
+-
+- chosen {
+- bootargs = "console=ttyS0,115200n8 earlyprintk";
+- stdout-path = &uart0;
+- };
+-
+- mbus {
+- pcie-controller {
+- status = "okay";
+- pcie at 1,0 {
+- status = "okay";
+- };
+- };
+- };
+-
+- ocp at f1000000 {
+- pinctrl: pin-controller at 10000 {
+- pmx_power_hdd0: pmx-power-hdd0 {
+- marvell,pins = "mpp8";
+- marvell,function = "gpio";
+- };
+- pmx_power_hdd1: pmx-power-hdd1 {
+- marvell,pins = "mpp9";
+- marvell,function = "gpio";
+- };
+- pmx_usb_vbus: pmx-usb-vbus {
+- marvell,pins = "mpp12";
+- marvell,function = "gpio";
+- };
+- pmx_fan_high: pmx-fan-high {
+- marvell,pins = "mpp16";
+- marvell,function = "gpio";
+- };
+- pmx_fan_low: pmx-fan-low {
+- marvell,pins = "mpp17";
+- marvell,function = "gpio";
+- };
+- pmx_led_hdderr0: pmx-led-hdderr0 {
+- marvell,pins = "mpp34";
+- marvell,function = "gpio";
+- };
+- pmx_led_hdderr1: pmx-led-hdderr1 {
+- marvell,pins = "mpp35";
+- marvell,function = "gpio";
+- };
+- pmx_led_alarm: pmx-led-alarm {
+- marvell,pins = "mpp36";
+- marvell,function = "gpio";
+- };
+- pmx_led_function_red: pmx-led-function-red {
+- marvell,pins = "mpp37";
+- marvell,function = "gpio";
+- };
+- pmx_led_info: pmx-led-info {
+- marvell,pins = "mpp38";
+- marvell,function = "gpio";
+- };
+- pmx_led_function_blue: pmx-led-function-blue {
+- marvell,pins = "mpp39";
+- marvell,function = "gpio";
+- };
+- pmx_led_power: pmx-led-power {
+- marvell,pins = "mpp40";
+- marvell,function = "gpio";
+- };
+- pmx_fan_lock: pmx-fan-lock {
+- marvell,pins = "mpp43";
+- marvell,function = "gpio";
+- };
+- pmx_button_function: pmx-button-function {
+- marvell,pins = "mpp45";
+- marvell,function = "gpio";
+- };
+- pmx_power_switch: pmx-power-switch {
+- marvell,pins = "mpp46";
+- marvell,function = "gpio";
+- };
+- pmx_power_auto_switch: pmx-power-auto-switch {
+- marvell,pins = "mpp47";
+- marvell,function = "gpio";
+- };
+- };
+-
+- serial at 12000 {
+- status = "okay";
+- };
+-
+- sata at 80000 {
+- status = "okay";
+- nr-ports = <2>;
+- };
+-
+- spi at 10600 {
+- status = "okay";
+-
+- m25p40 at 0 {
+- #address-cells = <1>;
+- #size-cells = <1>;
+- compatible = "st,m25p40", "jedec,spi-nor";
+- reg = <0>;
+- spi-max-frequency = <25000000>;
+- mode = <0>;
+-
+- partition at 0 {
+- reg = <0x0 0x60000>;
+- label = "uboot";
+- read-only;
+- };
+-
+- partition at 60000 {
+- reg = <0x60000 0x10000>;
+- label = "dtb";
+- read-only;
+- };
+-
+- partition at 70000 {
+- reg = <0x70000 0x10000>;
+- label = "uboot_env";
+- };
+- };
+- };
+- };
+-
+- gpio_keys {
+- compatible = "gpio-keys";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_button_function &pmx_power_switch
+- &pmx_power_auto_switch>;
+- pinctrl-names = "default";
+-
+- button at 1 {
+- label = "Function Button";
+- linux,code = <KEY_OPTION>;
+- gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+- };
+-
+- button at 2 {
+- label = "Power-on Switch";
+- linux,code = <KEY_RESERVED>;
+- linux,input-type = <5>;
+- gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+- };
+-
+- button at 3 {
+- label = "Power-auto Switch";
+- linux,code = <KEY_ESC>;
+- linux,input-type = <5>;
+- gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+- };
+- };
+-
+- gpio_leds {
+- compatible = "gpio-leds";
+- pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+- &pmx_led_info &pmx_led_power
+- &pmx_led_function_blue
+- &pmx_led_hdderr0
+- &pmx_led_hdderr1>;
+- pinctrl-names = "default";
+-
+- led at 1 {
+- label = "lswvl:red:alarm";
+- gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led at 2 {
+- label = "lswvl:red:func";
+- gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led at 3 {
+- label = "lswvl:amber:info";
+- gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led at 4 {
+- label = "lswvl:blue:func";
+- gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led at 5 {
+- label = "lswvl:blue:power";
+- gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+- default-state = "keep";
+- };
+-
+- led at 6 {
+- label = "lswvl:red:hdderr0";
+- gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led at 7 {
+- label = "lswvl:red:hdderr1";
+- gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+- };
+- };
+-
+- gpio_fan {
+- compatible = "gpio-fan";
+- pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+- pinctrl-names = "default";
+-
+- gpios = <&gpio0 17 GPIO_ACTIVE_LOW
+- &gpio0 16 GPIO_ACTIVE_LOW>;
+-
+- gpio-fan,speed-map = <0 3
+- 1500 2
+- 3250 1
+- 5000 0>;
+-
+- alarm-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+- };
+-
+- restart_poweroff {
+- compatible = "restart-poweroff";
+- };
+-
+- regulators {
+- compatible = "simple-bus";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+- pinctrl-names = "default";
+-
+- usb_power: regulator at 1 {
+- compatible = "regulator-fixed";
+- reg = <1>;
+- regulator-name = "USB Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+- };
+- hdd_power0: regulator at 2 {
+- compatible = "regulator-fixed";
+- reg = <2>;
+- regulator-name = "HDD0 Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+- };
+- hdd_power1: regulator at 3 {
+- compatible = "regulator-fixed";
+- reg = <3>;
+- regulator-name = "HDD1 Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+- };
+- };
+-};
+-
+-&mdio {
+- status = "okay";
+-
+- ethphy0: ethernet-phy at 0 {
+- device_type = "ethernet-phy";
+- reg = <0>;
+- };
+-};
+-
+-ð0 {
+- status = "okay";
+-
+- ethernet0-port at 0 {
+- phy-handle = <ðphy0>;
+- };
+-};
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch
new file mode 100644
index 0000000..d979d6f
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch
@@ -0,0 +1,994 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Thu, 21 Jan 2016 23:38:49 +0900
+Subject: ARM: dts: kirkwood: split lswxl dts to linkstation lswsxl and lswxl
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=b05465ff5b5e90d6d25d3f6c4e8ac6b2b3159435
+
+LS-WXL/WSXL are both kirkwood-6281 based 2-Bay NAS devices, which share
+many MPP pins. However they are slightly different:
+ - There're two red LED indicator on LS-WXL to show when HDD fails,
+ but there's no such on LS-WSXL.
+ - There's 4-level speed adjustable FAN on LS-WXL, but not LS-WSXL.
+
+So after the split, common part goes into .dtsi file:
+ - kirkwood-linkstation.dtsi
+ - kirkwood-linkstation-duo-6281.dtsi
+while all rest part goes into device specific .dts file:
+ - kirkwood-linkstation-lswsxl.dts
+ - kirkwood-linkstation-lswxl.dts
+
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ .../devicetree/bindings/arm/marvell,kirkwood.txt | 3 +-
+ arch/arm/boot/dts/Makefile | 3 +-
+ .../boot/dts/kirkwood-linkstation-duo-6281.dtsi | 186 ++++++++++++
+ arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts | 57 ++++
+ arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts | 116 +++++++
+ arch/arm/boot/dts/kirkwood-linkstation.dtsi | 202 +++++++++++++
+ arch/arm/boot/dts/kirkwood-lswxl.dts | 335 ---------------------
+ 7 files changed, 565 insertions(+), 337 deletions(-)
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation.dtsi
+ delete mode 100644 arch/arm/boot/dts/kirkwood-lswxl.dts
+
+diff --git a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+index ab0c9cdf388e..f68bdec8e111 100644
+--- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
++++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+@@ -19,9 +19,10 @@ SoC. Currently known SoC compatibles are:
+ And in addition, the compatible shall be extended with the specific
+ board. Currently known boards are:
+
++"buffalo,linkstation-lswsxl"
++"buffalo,linkstation-lswxl"
+ "buffalo,lschlv2"
+ "buffalo,lswvl"
+-"buffalo,lswxl"
+ "buffalo,lsxhl"
+ "buffalo,lsxl"
+ "dlink,dns-320"
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index a4a6d70e8b26..6771d0b5dc2a 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -184,9 +184,10 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
+ kirkwood-is2.dtb \
+ kirkwood-km_kirkwood.dtb \
+ kirkwood-laplug.dtb \
++ kirkwood-linkstation-lswsxl.dtb \
++ kirkwood-linkstation-lswxl.dtb \
+ kirkwood-lschlv2.dtb \
+ kirkwood-lswvl.dtb \
+- kirkwood-lswxl.dtb \
+ kirkwood-lsxhl.dtb \
+ kirkwood-mplcec4.dtb \
+ kirkwood-mv88f6281gtw-ge.dtb \
+diff --git a/arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi b/arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi
+new file mode 100644
+index 000000000000..cf2e69f0d54f
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi
+@@ -0,0 +1,186 @@
++/*
++ * Device Tree common file for kirkwood-6281 based 2-Bay Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++#include "kirkwood.dtsi"
++#include "kirkwood-6281.dtsi"
++#include "kirkwood-linkstation.dtsi"
++
++/ {
++ ocp at f1000000 {
++ pinctrl: pin-controller at 10000 {
++ pmx_power_hdd0: pmx-power-hdd0 {
++ marvell,pins = "mpp28";
++ marvell,function = "gpio";
++ };
++ pmx_power_hdd1: pmx-power-hdd1 {
++ marvell,pins = "mpp29";
++ marvell,function = "gpio";
++ };
++ pmx_usb_vbus: pmx-usb-vbus {
++ marvell,pins = "mpp37";
++ marvell,function = "gpio";
++ };
++ pmx_led_alarm: pmx-led-alarm {
++ marvell,pins = "mpp49";
++ marvell,function = "gpio";
++ };
++ pmx_led_function_red: pmx-led-function-red {
++ marvell,pins = "mpp34";
++ marvell,function = "gpio";
++ };
++ pmx_led_function_blue: pmx-led-function-blue {
++ marvell,pins = "mpp36";
++ marvell,function = "gpio";
++ };
++ pmx_led_info: pmx-led-info {
++ marvell,pins = "mpp38";
++ marvell,function = "gpio";
++ };
++ pmx_led_power: pmx-led-power {
++ marvell,pins = "mpp39";
++ marvell,function = "gpio";
++ };
++ pmx_button_function: pmx-button-function {
++ marvell,pins = "mpp41";
++ marvell,function = "gpio";
++ };
++ pmx_power_switch: pmx-power-switch {
++ marvell,pins = "mpp42";
++ marvell,function = "gpio";
++ };
++ pmx_power_auto_switch: pmx-power-auto-switch {
++ marvell,pins = "mpp43";
++ marvell,function = "gpio";
++ };
++ };
++
++ sata at 80000 {
++ nr-ports = <2>;
++ };
++ };
++
++ gpio_keys {
++ function-button {
++ gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
++ };
++
++ power-on-switch {
++ gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
++ };
++
++ power-auto-switch {
++ gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ gpio_leds {
++ red-alarm-led {
++ label = "linkstation:red:alarm";
++ gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
++ };
++
++ red-function-led {
++ label = "linkstation:red:function";
++ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
++ };
++
++ amber-info-led {
++ label = "linkstation:amber:info";
++ gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
++ };
++
++ blue-function-led {
++ label = "linkstation:blue:function";
++ gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
++ };
++
++ blue-power-led {
++ label = "linkstation:blue:power";
++ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
++ default-state = "keep";
++ };
++ };
++
++ regulators {
++ pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
++
++ usb_power: regulator at 1 {
++ gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
++ };
++
++ hdd_power0: regulator at 2 {
++ gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
++ };
++
++ hdd_power1: regulator at 3 {
++ compatible = "regulator-fixed";
++ reg = <3>;
++ regulator-name = "HDD1 Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
++ };
++ };
++};
++
++&mdio {
++ status = "okay";
++
++ ethphy1: ethernet-phy at 8 {
++ device_type = "ethernet-phy";
++ reg = <8>;
++ };
++};
++
++ð1 {
++ status = "okay";
++
++ ethernet1-port at 0 {
++ phy-handle = <ðphy1>;
++ };
++};
+diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts
+new file mode 100644
+index 000000000000..4b6450186af5
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts
+@@ -0,0 +1,57 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-WSXL
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++#include "kirkwood-linkstation-duo-6281.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-WSXL";
++ compatible = "buffalo,lswsxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
++
++ memory { /* 128 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x8000000>;
++ };
++};
+diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts
+new file mode 100644
+index 000000000000..ecd5c12a805d
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts
+@@ -0,0 +1,116 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-WXL
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++#include "kirkwood-linkstation-duo-6281.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-WXL";
++ compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
++
++ memory { /* 128 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x8000000>;
++ };
++
++ ocp at f1000000 {
++ pinctrl: pin-controller at 10000 {
++ pmx_led_hdderr0: pmx-led-hdderr0 {
++ marvell,pins = "mpp8";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr1: pmx-led-hdderr1 {
++ marvell,pins = "mpp46";
++ marvell,function = "gpio";
++ };
++ pmx_fan_lock: pmx-fan-lock {
++ marvell,pins = "mpp40";
++ marvell,function = "gpio";
++ };
++ pmx_fan_high: pmx-fan-high {
++ marvell,pins = "mpp47";
++ marvell,function = "gpio";
++ };
++ pmx_fan_low: pmx-fan-low {
++ marvell,pins = "mpp48";
++ marvell,function = "gpio";
++ };
++ };
++ };
++
++ gpio_leds {
++ pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
++ &pmx_led_info &pmx_led_power
++ &pmx_led_function_blue
++ &pmx_led_hdderr0
++ &pmx_led_hdderr1>;
++
++ red-hdderr0-led {
++ label = "linkstation:red:hdderr0";
++ gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
++ };
++
++ red-hdderr1-led {
++ label = "linkstation:red:hdderr1";
++ gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
++ };
++ };
++
++ gpio_fan {
++ compatible = "gpio-fan";
++ pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
++ pinctrl-names = "default";
++
++ gpios = <&gpio1 16 GPIO_ACTIVE_LOW
++ &gpio1 15 GPIO_ACTIVE_LOW>;
++
++ gpio-fan,speed-map = <0 3
++ 1500 2
++ 3250 1
++ 5000 0>;
++
++ alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
++ };
++};
+diff --git a/arch/arm/boot/dts/kirkwood-linkstation.dtsi b/arch/arm/boot/dts/kirkwood-linkstation.dtsi
+new file mode 100644
+index 000000000000..69061b6e987b
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation.dtsi
+@@ -0,0 +1,202 @@
++/*
++ * Device Tree common file for kirkwood based Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/ {
++ chosen {
++ bootargs = "console=ttyS0,115200n8 earlyprintk";
++ stdout-path = &uart0;
++ };
++
++ mbus {
++ pcie-controller {
++ status = "okay";
++ pcie at 1,0 {
++ status = "okay";
++ };
++ };
++ };
++
++ ocp at f1000000 {
++ pinctrl: pin-controller at 10000 {
++ pmx_power_hdd0: pmx-power-hdd0 {
++ marvell,function = "gpio";
++ };
++ pmx_usb_vbus: pmx-usb-vbus {
++ marvell,function = "gpio";
++ };
++ pmx_led_alarm: pmx-led-alarm {
++ marvell,function = "gpio";
++ };
++ pmx_led_function_red: pmx-led-function-red {
++ marvell,function = "gpio";
++ };
++ pmx_led_function_blue: pmx-led-function-blue {
++ marvell,function = "gpio";
++ };
++ pmx_led_info: pmx-led-info {
++ marvell,function = "gpio";
++ };
++ pmx_led_power: pmx-led-power {
++ marvell,function = "gpio";
++ };
++ pmx_button_function: pmx-button-function {
++ marvell,function = "gpio";
++ };
++ pmx_power_switch: pmx-power-switch {
++ marvell,function = "gpio";
++ };
++ pmx_power_auto_switch: pmx-power-auto-switch {
++ marvell,function = "gpio";
++ };
++ };
++
++ serial at 12000 {
++ status = "okay";
++ };
++
++ sata at 80000 {
++ status = "okay";
++ nr-ports = <1>;
++ };
++
++ spi at 10600 {
++ status = "okay";
++
++ m25p40 at 0 {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ compatible = "st,m25p40", "jedec,spi-nor";
++ reg = <0>;
++ spi-max-frequency = <25000000>;
++ mode = <0>;
++
++ partition at 0 {
++ reg = <0x0 0x60000>;
++ label = "uboot";
++ read-only;
++ };
++
++ partition at 60000 {
++ reg = <0x60000 0x10000>;
++ label = "dtb";
++ read-only;
++ };
++
++ partition at 70000 {
++ reg = <0x70000 0x10000>;
++ label = "uboot_env";
++ };
++ };
++ };
++ };
++
++ gpio_keys {
++ compatible = "gpio-keys";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-0 = <&pmx_button_function &pmx_power_switch
++ &pmx_power_auto_switch>;
++ pinctrl-names = "default";
++
++ function-button {
++ label = "Function Button";
++ linux,code = <KEY_OPTION>;
++ };
++
++ power-on-switch {
++ label = "Power-on Switch";
++ linux,code = <KEY_RESERVED>;
++ linux,input-type = <5>;
++ };
++
++ power-auto-switch {
++ label = "Power-auto Switch";
++ linux,code = <KEY_ESC>;
++ linux,input-type = <5>;
++ };
++ };
++
++ gpio_leds {
++ compatible = "gpio-leds";
++ pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
++ &pmx_led_info &pmx_led_power
++ &pmx_led_function_blue>;
++ pinctrl-names = "default";
++ };
++
++ restart_poweroff {
++ compatible = "restart-poweroff";
++ };
++
++ regulators {
++ compatible = "simple-bus";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-0 = <&pmx_power_hdd0 &pmx_usb_vbus>;
++ pinctrl-names = "default";
++
++ usb_power: regulator at 1 {
++ compatible = "regulator-fixed";
++ reg = <1>;
++ regulator-name = "USB Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++
++ hdd_power0: regulator at 2 {
++ compatible = "regulator-fixed";
++ reg = <2>;
++ regulator-name = "HDD0 Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++ };
++};
+diff --git a/arch/arm/boot/dts/kirkwood-lswxl.dts b/arch/arm/boot/dts/kirkwood-lswxl.dts
+deleted file mode 100644
+index 930899d13c5d..000000000000
+--- a/arch/arm/boot/dts/kirkwood-lswxl.dts
++++ /dev/null
+@@ -1,335 +0,0 @@
+-/*
+- * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
+- *
+- * Copyright (C) 2015, 2016
+- * Roger Shimizu <rogershimizu at gmail.com>
+- *
+- * This file is dual-licensed: you can use it either under the terms
+- * of the GPL or the X11 license, at your option. Note that this dual
+- * licensing only applies to this file, and not this project as a
+- * whole.
+- *
+- * a) This file is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License as
+- * published by the Free Software Foundation; either version 2 of the
+- * License, or (at your option) any later version.
+- *
+- * This file 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.
+- *
+- * Or, alternatively
+- *
+- * b) Permission is hereby granted, free of charge, to any person
+- * obtaining a copy of this software and associated documentation
+- * files (the "Software"), to deal in the Software without
+- * restriction, including without limitation the rights to use
+- * copy, modify, merge, publish, distribute, sublicense, and/or
+- * sell copies of the Software, and to permit persons to whom the
+- * Software is furnished to do so, subject to the following
+- * conditions:
+- *
+- * The above copyright notice and this permission notice shall be
+- * included in all copies or substantial portions of the Software.
+- *
+- * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+- * OTHER DEALINGS IN THE SOFTWARE.
+- */
+-
+-/dts-v1/;
+-
+-#include "kirkwood.dtsi"
+-#include "kirkwood-6281.dtsi"
+-
+-/ {
+- model = "Buffalo Linkstation LS-WXL/WSXL";
+- compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+-
+- memory { /* 128 MB */
+- device_type = "memory";
+- reg = <0x00000000 0x8000000>;
+- };
+-
+- chosen {
+- bootargs = "console=ttyS0,115200n8 earlyprintk";
+- stdout-path = &uart0;
+- };
+-
+- mbus {
+- pcie-controller {
+- status = "okay";
+- pcie at 1,0 {
+- status = "okay";
+- };
+- };
+- };
+-
+- ocp at f1000000 {
+- pinctrl: pin-controller at 10000 {
+- pmx_power_hdd0: pmx-power-hdd0 {
+- marvell,pins = "mpp28";
+- marvell,function = "gpio";
+- };
+- pmx_power_hdd1: pmx-power-hdd1 {
+- marvell,pins = "mpp29";
+- marvell,function = "gpio";
+- };
+- pmx_usb_vbus: pmx-usb-vbus {
+- marvell,pins = "mpp37";
+- marvell,function = "gpio";
+- };
+- pmx_fan_high: pmx-fan-high {
+- marvell,pins = "mpp47";
+- marvell,function = "gpio";
+- };
+- pmx_fan_low: pmx-fan-low {
+- marvell,pins = "mpp48";
+- marvell,function = "gpio";
+- };
+- pmx_led_hdderr0: pmx-led-hdderr0 {
+- marvell,pins = "mpp8";
+- marvell,function = "gpio";
+- };
+- pmx_led_hdderr1: pmx-led-hdderr1 {
+- marvell,pins = "mpp46";
+- marvell,function = "gpio";
+- };
+- pmx_led_alarm: pmx-led-alarm {
+- marvell,pins = "mpp49";
+- marvell,function = "gpio";
+- };
+- pmx_led_function_red: pmx-led-function-red {
+- marvell,pins = "mpp34";
+- marvell,function = "gpio";
+- };
+- pmx_led_function_blue: pmx-led-function-blue {
+- marvell,pins = "mpp36";
+- marvell,function = "gpio";
+- };
+- pmx_led_info: pmx-led-info {
+- marvell,pins = "mpp38";
+- marvell,function = "gpio";
+- };
+- pmx_led_power: pmx-led-power {
+- marvell,pins = "mpp39";
+- marvell,function = "gpio";
+- };
+- pmx_fan_lock: pmx-fan-lock {
+- marvell,pins = "mpp40";
+- marvell,function = "gpio";
+- };
+- pmx_button_function: pmx-button-function {
+- marvell,pins = "mpp41";
+- marvell,function = "gpio";
+- };
+- pmx_power_switch: pmx-power-switch {
+- marvell,pins = "mpp42";
+- marvell,function = "gpio";
+- };
+- pmx_power_auto_switch: pmx-power-auto-switch {
+- marvell,pins = "mpp43";
+- marvell,function = "gpio";
+- };
+- };
+-
+- serial at 12000 {
+- status = "okay";
+- };
+-
+- sata at 80000 {
+- status = "okay";
+- nr-ports = <2>;
+- };
+-
+- spi at 10600 {
+- status = "okay";
+-
+- m25p40 at 0 {
+- #address-cells = <1>;
+- #size-cells = <1>;
+- compatible = "st,m25p40", "jedec,spi-nor";
+- reg = <0>;
+- spi-max-frequency = <25000000>;
+- mode = <0>;
+-
+- partition at 0 {
+- reg = <0x0 0x60000>;
+- label = "uboot";
+- read-only;
+- };
+-
+- partition at 60000 {
+- reg = <0x60000 0x10000>;
+- label = "dtb";
+- read-only;
+- };
+-
+- partition at 70000 {
+- reg = <0x70000 0x10000>;
+- label = "uboot_env";
+- };
+- };
+- };
+- };
+-
+- gpio_keys {
+- compatible = "gpio-keys";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_button_function &pmx_power_switch
+- &pmx_power_auto_switch>;
+- pinctrl-names = "default";
+-
+- button at 1 {
+- label = "Function Button";
+- linux,code = <KEY_OPTION>;
+- gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+- };
+-
+- button at 2 {
+- label = "Power-on Switch";
+- linux,code = <KEY_RESERVED>;
+- linux,input-type = <5>;
+- gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+- };
+-
+- button at 3 {
+- label = "Power-auto Switch";
+- linux,code = <KEY_ESC>;
+- linux,input-type = <5>;
+- gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+- };
+- };
+-
+- gpio_leds {
+- compatible = "gpio-leds";
+- pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+- &pmx_led_info &pmx_led_power
+- &pmx_led_function_blue
+- &pmx_led_hdderr0
+- &pmx_led_hdderr1>;
+- pinctrl-names = "default";
+-
+- led at 1 {
+- label = "lswxl:blue:func";
+- gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+- };
+-
+- led at 2 {
+- label = "lswxl:red:alarm";
+- gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+- };
+-
+- led at 3 {
+- label = "lswxl:amber:info";
+- gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+- };
+-
+- led at 4 {
+- label = "lswxl:blue:power";
+- gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+- default-state = "keep";
+- };
+-
+- led at 5 {
+- label = "lswxl:red:func";
+- gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led at 6 {
+- label = "lswxl:red:hdderr0";
+- gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led at 7 {
+- label = "lswxl:red:hdderr1";
+- gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+- };
+- };
+-
+- gpio_fan {
+- compatible = "gpio-fan";
+- pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+- pinctrl-names = "default";
+-
+- gpios = <&gpio1 16 GPIO_ACTIVE_LOW
+- &gpio1 15 GPIO_ACTIVE_LOW>;
+-
+- gpio-fan,speed-map = <0 3
+- 1500 2
+- 3250 1
+- 5000 0>;
+-
+- alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+- };
+-
+- restart_poweroff {
+- compatible = "restart-poweroff";
+- };
+-
+- regulators {
+- compatible = "simple-bus";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+- pinctrl-names = "default";
+-
+- usb_power: regulator at 1 {
+- compatible = "regulator-fixed";
+- reg = <1>;
+- regulator-name = "USB Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+- };
+- hdd_power0: regulator at 2 {
+- compatible = "regulator-fixed";
+- reg = <2>;
+- regulator-name = "HDD0 Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+- };
+- hdd_power1: regulator at 3 {
+- compatible = "regulator-fixed";
+- reg = <3>;
+- regulator-name = "HDD1 Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+- };
+- };
+-};
+-
+-&mdio {
+- status = "okay";
+-
+- ethphy1: ethernet-phy at 8 {
+- device_type = "ethernet-phy";
+- reg = <8>;
+- };
+-};
+-
+-ð1 {
+- status = "okay";
+-
+- ethernet1-port at 0 {
+- phy-handle = <ðphy1>;
+- };
+-};
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch
new file mode 100644
index 0000000..8b9049e
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch
@@ -0,0 +1,132 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Sat, 6 Feb 2016 14:59:53 +0900
+Subject: ARM: dts: orion5x: add device tree for buffalo linkstation ls-gl
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=b1742ffa9ddb347a8bcb8e5f7dcf4d3a790f9041
+
+Add dts file to support Buffalo Linkstation LS-GL
+(a.k.a Buffalo Linkstation Pro/Live), which is marvell orion5x based
+3.5" HDD NAS.
+
+Product info:
+ - (JPN) http://buffalo.jp/products/catalog/item/l/ls-gl/
+ - (ENG) http://www.buffalotech.com/products/network-storage/linkstation/linkstation-pro
+
+This device tree is based on the board file:
+ arch/arm/mach-orion5x/kurobox_pro-setup.c
+However, that board file also support Kurobox Pro, which is not supported by
+device tree yet. So the board file is not removed.
+
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/orion5x-linkstation-lsgl.dts | 87 ++++++++++++++++++++++++++
+ 2 files changed, 88 insertions(+)
+ create mode 100644 arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 30d316dc050f..66f464dd814a 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -517,6 +517,7 @@ dtb-$(CONFIG_SOC_DRA7XX) += \
+ dtb-$(CONFIG_ARCH_ORION5X) += \
+ orion5x-lacie-d2-network.dtb \
+ orion5x-lacie-ethernet-disk-mini-v2.dtb \
++ orion5x-linkstation-lsgl.dtb \
+ orion5x-linkstation-lswtgl.dtb \
+ orion5x-lswsgl.dtb \
+ orion5x-maxtor-shared-storage-2.dtb \
+diff --git a/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
+new file mode 100644
+index 000000000000..1cf644bfd7ea
+--- /dev/null
++++ b/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
+@@ -0,0 +1,87 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-GL
++ * (also known as Buffalo Linkstation Pro/Live)
++ *
++ * Copyright (C) 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * Based on the board file arch/arm/mach-orion5x/kurobox_pro-setup.c
++ * Copyright (C) Ronen Shitrit <rshitrit at marvell.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++
++#include "orion5x-linkstation.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++
++/ {
++ model = "Buffalo Linkstation Pro/Live";
++ compatible = "buffalo,lsgl", "marvell,orion5x-88f5182", "marvell,orion5x";
++
++ memory { /* 128 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x8000000>;
++ };
++};
++
++&pinctrl {
++ pmx_power_hdd: pmx-power-hdd {
++ marvell,pins = "mpp1";
++ marvell,function = "gpio";
++ };
++
++ pmx_power_usb: pmx-power-usb {
++ marvell,pins = "mpp9";
++ marvell,function = "gpio";
++ };
++};
++
++&hdd_power {
++ gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
++};
++
++&usb_power {
++ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
++};
++
++&ehci1 {
++ status = "okay";
++};
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-orion5x-fix-missing-mtdflash-linkstation-lswtgl.patch b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-fix-missing-mtdflash-linkstation-lswtgl.patch
new file mode 100644
index 0000000..2b2b89a
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-fix-missing-mtdflash-linkstation-lswtgl.patch
@@ -0,0 +1,58 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Sat, 6 Feb 2016 14:59:51 +0900
+Subject: ARM: dts: orion5x: fix the missing mtd flash on linkstation lswtgl
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=44361a2cc13493fc41216d33bb9a562ec3a9cc4e
+
+MTD flash stores u-boot and u-boot environment on linkstation lswtgl.
+The latter one can be easily read/write by u-boot-tools package in Debian.
+
+Fixes: dc57844a736f ("ARM: dts: orion5x: add buffalo linkstation ls-wtgl")
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts | 31 ++++++++++++++++++++++++
+ 1 file changed, 31 insertions(+)
+
+diff --git a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
+index 420788229e6f..aae8a7aceab7 100644
+--- a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
++++ b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
+@@ -228,6 +228,37 @@
+ };
+ };
+
++&devbus_bootcs {
++ status = "okay";
++ devbus,keep-config;
++
++ flash at 0 {
++ compatible = "jedec-flash";
++ reg = <0 0x40000>;
++ bank-width = <1>;
++
++ partitions {
++ compatible = "fixed-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ header at 0 {
++ reg = <0 0x30000>;
++ read-only;
++ };
++
++ uboot at 30000 {
++ reg = <0x30000 0xF000>;
++ read-only;
++ };
++
++ uboot_env at 3F000 {
++ reg = <0x3F000 0x1000>;
++ };
++ };
++ };
++};
++
+ &mdio {
+ status = "okay";
+
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-orion5x-gpio-pin-fixes-for-linkstation-lswtgl.patch b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-gpio-pin-fixes-for-linkstation-lswtgl.patch
new file mode 100644
index 0000000..83d7014
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-gpio-pin-fixes-for-linkstation-lswtgl.patch
@@ -0,0 +1,59 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Fri, 22 Jan 2016 00:00:36 +0900
+Subject: ARM: dts: orion5x: gpio pin fixes for linkstation lswtgl
+Origin: https://git.kernel.org/linus/ff61ee84e7aa5842d9e33c0b442f0b43a6a44eaf
+
+Here're a few gpio pin related fixes:
+ - remove pinctrl-0 definition from pinctrl, since those pins are used
+ in other places such as gpio-fan and regulators.
+ - keep initial state of power led
+ - fix for alarm pin of gpio-fan.
+
+Fixes: dc57844a736f ("ARM: dts: orion5x: add buffalo linkstation ls-wtgl")
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
+index 3daec912b4bf..420788229e6f 100644
+--- a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
++++ b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
+@@ -1,7 +1,8 @@
+ /*
+ * Device Tree file for Buffalo Linkstation LS-WTGL
+ *
+- * Copyright (C) 2015, Roger Shimizu <rogershimizu at gmail.com>
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+@@ -69,8 +70,6 @@
+
+ internal-regs {
+ pinctrl: pinctrl at 10000 {
+- pinctrl-0 = <&pmx_usb_power &pmx_power_hdd
+- &pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+ pinctrl-names = "default";
+
+ pmx_led_power: pmx-leds {
+@@ -162,6 +161,7 @@
+ led at 1 {
+ label = "lswtgl:blue:power";
+ gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
++ default-state = "keep";
+ };
+
+ led at 2 {
+@@ -188,7 +188,7 @@
+ 3250 1
+ 5000 0>;
+
+- alarm-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
++ alarm-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
+ };
+
+ restart_poweroff {
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch
new file mode 100644
index 0000000..d2dc64d
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch
@@ -0,0 +1,710 @@
+From: Roger Shimizu <rogershimizu at gmail.com>
+Date: Sat, 6 Feb 2016 14:59:52 +0900
+Subject: ARM: dts: orion5x: split linkstation lswtgl into common and device parts
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=305e0b2a7a85e8bd65818cb3636b205f784ed377
+
+In order to support more linkstation devices, common part of current
+.dts file goes into .dtsi file. Some .dtsi start with "mvebu-" prefix
+because other kirkwood based linkstation devices are similar, and
+will be migrated to use these .dtsi some time later.
+ - orion5x-linkstation.dtsi
+ - mvebu-linkstation-fan.dtsi
+ - mvebu-linkstation-gpio-simple.dtsi
+while all rest part remains in device specific .dts file:
+ - orion5x-linkstation-lswtgl.dts
+
+Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
+Reviewed-by: Andrew Lunn <andrew at lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
+---
+ arch/arm/boot/dts/mvebu-linkstation-fan.dtsi | 72 ++++++
+ .../boot/dts/mvebu-linkstation-gpio-simple.dtsi | 105 +++++++++
+ arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts | 243 ++++-----------------
+ arch/arm/boot/dts/orion5x-linkstation.dtsi | 180 +++++++++++++++
+ 4 files changed, 402 insertions(+), 198 deletions(-)
+ create mode 100644 arch/arm/boot/dts/mvebu-linkstation-fan.dtsi
+ create mode 100644 arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi
+ create mode 100644 arch/arm/boot/dts/orion5x-linkstation.dtsi
+
+diff --git a/arch/arm/boot/dts/mvebu-linkstation-fan.dtsi b/arch/arm/boot/dts/mvebu-linkstation-fan.dtsi
+new file mode 100644
+index 000000000000..e211a3c47a76
+--- /dev/null
++++ b/arch/arm/boot/dts/mvebu-linkstation-fan.dtsi
+@@ -0,0 +1,72 @@
++/*
++ * Device Tree common file for gpio-fan on Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/ {
++ gpio_fan {
++ compatible = "gpio-fan";
++ pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
++ pinctrl-names = "default";
++
++ gpio-fan,speed-map =
++ <0 3
++ 1500 2
++ 3250 1
++ 5000 0>;
++ };
++};
++
++&pinctrl {
++ pmx_fan_low: pmx-fan-low {
++ marvell,function = "gpio";
++ };
++
++ pmx_fan_high: pmx-fan-high {
++ marvell,function = "gpio";
++ };
++
++ pmx_fan_lock: pmx-fan-lock {
++ marvell,function = "gpio";
++ };
++};
+diff --git a/arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi b/arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi
+new file mode 100644
+index 000000000000..68d75e79a360
+--- /dev/null
++++ b/arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi
+@@ -0,0 +1,105 @@
++/*
++ * Device Tree common file for gpio-{keys,leds} on Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++#include <dt-bindings/input/input.h>
++
++/ {
++ gpio_keys {
++ compatible = "gpio-keys";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-0 = <&pmx_power_switch>;
++ pinctrl-names = "default";
++
++ power-on-switch {
++ label = "Power-on Switch";
++ linux,code = <KEY_RESERVED>;
++ linux,input-type = <5>;
++ };
++
++ power-auto-switch {
++ label = "Power-auto Switch";
++ linux,code = <KEY_ESC>;
++ linux,input-type = <5>;
++ };
++ };
++
++ gpio_leds {
++ compatible = "gpio-leds";
++ pinctrl-0 = <&pmx_led_power &pmx_led_alarm &pmx_led_info>;
++ pinctrl-names = "default";
++
++ blue-power-led {
++ label = "linkstation:blue:power";
++ default-state = "keep";
++ };
++
++ red-alarm-led {
++ label = "linkstation:red:alarm";
++ };
++
++ amber-info-led {
++ label = "linkstation:amber:info";
++ };
++ };
++};
++
++&pinctrl {
++ pmx_power_switch: pmx-power-switch {
++ marvell,function = "gpio";
++ };
++
++ pmx_led_power: pmx-leds {
++ marvell,function = "gpio";
++ };
++
++ pmx_led_alarm: pmx-leds {
++ marvell,function = "gpio";
++ };
++
++ pmx_led_info: pmx-leds {
++ marvell,function = "gpio";
++ };
++};
+diff --git a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
+index aae8a7aceab7..0eead400f427 100644
+--- a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
++++ b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
+@@ -45,9 +45,10 @@
+
+ /dts-v1/;
+
++#include "orion5x-linkstation.dtsi"
++#include "mvebu-linkstation-gpio-simple.dtsi"
++#include "mvebu-linkstation-fan.dtsi"
+ #include <dt-bindings/gpio/gpio.h>
+-#include <dt-bindings/input/input.h>
+-#include "orion5x-mv88f5182.dtsi"
+
+ / {
+ model = "Buffalo Linkstation LS-WTGL";
+@@ -58,247 +59,93 @@
+ reg = <0x00000000 0x4000000>;
+ };
+
+- chosen {
+- bootargs = "console=ttyS0,115200n8 earlyprintk";
+- linux,stdout-path = &uart0;
+- };
+-
+- soc {
+- ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
+- <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
+- <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x40000>;
+-
+- internal-regs {
+- pinctrl: pinctrl at 10000 {
+- pinctrl-names = "default";
+-
+- pmx_led_power: pmx-leds {
+- marvell,pins = "mpp0";
+- marvell,function = "gpio";
+- };
+-
+- pmx_led_alarm: pmx-leds {
+- marvell,pins = "mpp2";
+- marvell,function = "gpio";
+- };
+-
+- pmx_led_info: pmx-leds {
+- marvell,pins = "mpp3";
+- marvell,function = "gpio";
+- };
+-
+- pmx_power_hdd: pmx-power-hdd {
+- marvell,pins = "mpp1";
+- marvell,function = "gpio";
+- };
+-
+- pmx_usb_power: pmx-usb-power {
+- marvell,pins = "mpp9";
+- marvell,function = "gpio";
+- };
+-
+- pmx_sata0: pmx-sata0 {
+- marvell,pins = "mpp12";
+- marvell,function = "sata0";
+- };
+-
+- pmx_sata1: pmx-sata1 {
+- marvell,pins = "mpp13";
+- marvell,function = "sata1";
+- };
+-
+- pmx_fan_high: pmx-fan-high {
+- marvell,pins = "mpp14";
+- marvell,function = "gpio";
+- };
+-
+- pmx_fan_low: pmx-fan-low {
+- marvell,pins = "mpp17";
+- marvell,function = "gpio";
+- };
+-
+- pmx_fan_lock: pmx-fan-lock {
+- marvell,pins = "mpp6";
+- marvell,function = "gpio";
+- };
+-
+- pmx_power_switch: pmx-power-switch {
+- marvell,pins = "mpp8", "mpp10";
+- marvell,function = "gpio";
+- };
+- };
+- };
+- };
+-
+ gpio_keys {
+- compatible = "gpio-keys";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_power_switch>;
+- pinctrl-names = "default";
+-
+- button at 1 {
+- label = "Power-on Switch";
+- linux,code = <KEY_RESERVED>;
+- linux,input-type = <5>;
++ power-on-switch {
+ gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
+ };
+
+- button at 2 {
+- label = "Power-auto Switch";
+- linux,code = <KEY_ESC>;
+- linux,input-type = <5>;
++ power-auto-switch {
+ gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio_leds {
+- compatible = "gpio-leds";
+- pinctrl-0 = <&pmx_led_power &pmx_led_alarm
+- &pmx_led_info>;
+- pinctrl-names = "default";
+-
+- led at 1 {
+- label = "lswtgl:blue:power";
++ blue-power-led {
+ gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
+- default-state = "keep";
+ };
+
+- led at 2 {
+- label = "lswtgl:red:alarm";
++ red-alarm-led {
+ gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+ };
+
+- led at 3 {
+- label = "lswtgl:amber:info";
++ amber-info-led {
+ gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio_fan {
+- compatible = "gpio-fan";
+- pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+- pinctrl-names = "default";
+-
+ gpios = <&gpio0 14 GPIO_ACTIVE_LOW
+ &gpio0 17 GPIO_ACTIVE_LOW>;
+
+- gpio-fan,speed-map = <0 3
+- 1500 2
+- 3250 1
+- 5000 0>;
+-
+ alarm-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
+ };
++};
+
+- restart_poweroff {
+- compatible = "restart-poweroff";
++&pinctrl {
++ pmx_led_power: pmx-leds {
++ marvell,pins = "mpp0";
++ marvell,function = "gpio";
+ };
+
+- regulators {
+- compatible = "simple-bus";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_power_hdd &pmx_usb_power>;
+- pinctrl-names = "default";
+-
+- usb_power: regulator at 1 {
+- compatible = "regulator-fixed";
+- reg = <1>;
+- regulator-name = "USB Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+- };
+-
+- hdd_power: regulator at 2 {
+- compatible = "regulator-fixed";
+- reg = <2>;
+- regulator-name = "HDD Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+- };
++ pmx_power_hdd: pmx-power-hdd {
++ marvell,pins = "mpp1";
++ marvell,function = "gpio";
+ };
+-};
+-
+-&devbus_bootcs {
+- status = "okay";
+- devbus,keep-config;
+
+- flash at 0 {
+- compatible = "jedec-flash";
+- reg = <0 0x40000>;
+- bank-width = <1>;
+-
+- partitions {
+- compatible = "fixed-partitions";
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+- header at 0 {
+- reg = <0 0x30000>;
+- read-only;
+- };
+-
+- uboot at 30000 {
+- reg = <0x30000 0xF000>;
+- read-only;
+- };
++ pmx_led_alarm: pmx-leds {
++ marvell,pins = "mpp2";
++ marvell,function = "gpio";
++ };
+
+- uboot_env at 3F000 {
+- reg = <0x3F000 0x1000>;
+- };
+- };
++ pmx_led_info: pmx-leds {
++ marvell,pins = "mpp3";
++ marvell,function = "gpio";
+ };
+-};
+
+-&mdio {
+- status = "okay";
++ pmx_fan_lock: pmx-fan-lock {
++ marvell,pins = "mpp6";
++ marvell,function = "gpio";
++ };
+
+- ethphy: ethernet-phy {
+- reg = <8>;
++ pmx_power_switch: pmx-power-switch {
++ marvell,pins = "mpp8", "mpp10";
++ marvell,function = "gpio";
+ };
+-};
+
+-ð {
+- status = "okay";
++ pmx_power_usb: pmx-power-usb {
++ marvell,pins = "mpp9";
++ marvell,function = "gpio";
++ };
+
+- ethernet-port at 0 {
+- phy-handle = <ðphy>;
++ pmx_fan_high: pmx-fan-high {
++ marvell,pins = "mpp14";
++ marvell,function = "gpio";
+ };
+-};
+
+-&ehci0 {
+- status = "okay";
++ pmx_fan_low: pmx-fan-low {
++ marvell,pins = "mpp17";
++ marvell,function = "gpio";
++ };
+ };
+
+-&i2c {
+- status = "okay";
+-
+- rtc {
+- compatible = "ricoh,rs5c372a";
+- reg = <0x32>;
+- };
++&hdd_power {
++ gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+ };
+
+-&wdt {
+- status = "disabled";
++&usb_power {
++ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ };
+
+ &sata {
+- pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
+- pinctrl-names = "default";
+- status = "okay";
+ nr-ports = <2>;
+ };
+-
+-&uart0 {
+- status = "okay";
+-};
+diff --git a/arch/arm/boot/dts/orion5x-linkstation.dtsi b/arch/arm/boot/dts/orion5x-linkstation.dtsi
+new file mode 100644
+index 000000000000..ed456ab35fd8
+--- /dev/null
++++ b/arch/arm/boot/dts/orion5x-linkstation.dtsi
+@@ -0,0 +1,180 @@
++/*
++ * Device Tree common file for orion5x based Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ * a) This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of the
++ * License, or (at your option) any later version.
++ *
++ * This file 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.
++ *
++ * Or, alternatively
++ *
++ * b) Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use
++ * copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following
++ * conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ * OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++#include "orion5x-mv88f5182.dtsi"
++
++/ {
++ chosen {
++ bootargs = "console=ttyS0,115200n8 earlyprintk";
++ linux,stdout-path = &uart0;
++ };
++
++ soc {
++ ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
++ <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
++ <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x40000>;
++ };
++
++ restart_poweroff {
++ compatible = "restart-poweroff";
++ };
++
++ regulators {
++ compatible = "simple-bus";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-0 = <&pmx_power_usb &pmx_power_hdd>;
++ pinctrl-names = "default";
++
++ usb_power: regulator at 1 {
++ compatible = "regulator-fixed";
++ reg = <1>;
++ regulator-name = "USB Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++
++ hdd_power: regulator at 2 {
++ compatible = "regulator-fixed";
++ reg = <2>;
++ regulator-name = "HDD Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++ };
++};
++
++&pinctrl {
++ pmx_power_hdd: pmx-power-hdd {
++ marvell,function = "gpio";
++ };
++
++ pmx_power_usb: pmx-power-usb {
++ marvell,function = "gpio";
++ };
++};
++
++&devbus_bootcs {
++ status = "okay";
++ devbus,keep-config;
++
++ flash at 0 {
++ compatible = "jedec-flash";
++ reg = <0 0x40000>;
++ bank-width = <1>;
++
++ partitions {
++ compatible = "fixed-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ header at 0 {
++ reg = <0 0x30000>;
++ read-only;
++ };
++
++ uboot at 30000 {
++ reg = <0x30000 0xF000>;
++ read-only;
++ };
++
++ uboot_env at 3F000 {
++ reg = <0x3F000 0x1000>;
++ };
++ };
++ };
++};
++
++&mdio {
++ status = "okay";
++
++ ethphy: ethernet-phy {
++ reg = <8>;
++ };
++};
++
++ð {
++ status = "okay";
++
++ ethernet-port at 0 {
++ phy-handle = <ðphy>;
++ };
++};
++
++&ehci0 {
++ status = "okay";
++};
++
++&i2c {
++ status = "okay";
++
++ rtc {
++ compatible = "ricoh,rs5c372a";
++ reg = <0x32>;
++ };
++};
++
++&wdt {
++ status = "disabled";
++};
++
++&sata {
++ status = "okay";
++ nr-ports = <1>;
++};
++
++&uart0 {
++ status = "okay";
++};
++
++&uart1 {
++ status = "okay";
++};
diff --git a/debian/patches/series b/debian/patches/series
index 6a7a982..d40378e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -84,6 +84,18 @@ features/arm/arm-orion-use-sparse_irq-everywhere.patch
features/arm/arm-orion5x-clean-up-mach-.h-headers.patch
features/arm/arm-orion5x-multiplatform-support.patch
features/arm/device-tree/ARM-dts-imx6dlq-wandboard-revb1.dts-use-unique-model-id.patch
+features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wvl-vl.patch
+features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wxl-ws.patch
+features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wxl-w.patch
+features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wvl-v.patch
+features/arm/device-tree/ARM-dts-orion5x-gpio-pin-fixes-for-linkstation-lswtgl.patch
+features/arm/device-tree/ARM-dts-orion5x-fix-missing-mtdflash-linkstation-lswtgl.patch
+features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch
+features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch
+features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch
+features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch
+features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch
+features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch
# Miscellaneous bug fixes
bugfix/all/misc-bmp085-Enable-building-as-a-module.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git
More information about the Kernel-svn-changes
mailing list