From 54248be7f55d10c6fc95c11fc930557d972223ef Mon Sep 17 00:00:00 2001 From: Roger Shimizu Date: Wed, 24 Feb 2016 18:30:56 +0900 Subject: [PATCH] [armel] dts: Add various device-tree fixes and improvements for Buffalo Linkstation devices. --- debian/changelog | 2 + ...d-add-for-buffalo-linkstation-ls-qvl.patch | 187 ++++ ...-leds-fixes-for-linkstation-ls-wvl-v.patch | 66 ++ ...-leds-fixes-for-linkstation-ls-wxl-w.patch | 51 + ...-pin-fixes-for-linkstation-ls-wvl-vl.patch | 115 ++ ...-pin-fixes-for-linkstation-ls-wxl-ws.patch | 139 +++ ...cense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch | 117 +++ ...t-lswvl-dts-to-linkstation-lsvl-and-.patch | 787 ++++++++++++++ ...t-lswxl-dts-to-linkstation-lswsxl-an.patch | 994 ++++++++++++++++++ ...5x-add-for-buffalo-linkstation-ls-gl.patch | 132 +++ ...-missing-mtdflash-linkstation-lswtgl.patch | 58 + ...pio-pin-fixes-for-linkstation-lswtgl.patch | 59 ++ ...-linkstation-lswtgl-into-common-and-.patch | 710 +++++++++++++ debian/patches/series | 12 + 14 files changed, 3429 insertions(+) create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wvl-v.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-leds-fixes-for-linkstation-ls-wxl-w.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wvl-vl.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-kirkwood-gpio-pin-fixes-for-linkstation-ls-wxl-ws.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-orion5x-fix-missing-mtdflash-linkstation-lswtgl.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-orion5x-gpio-pin-fixes-for-linkstation-lswtgl.patch create mode 100644 debian/patches/features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch diff --git a/debian/changelog b/debian/changelog index e85ef3d84..c07872917 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 000000000..c6b44d05b --- /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 +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 +Signed-off-by: Roger Shimizu +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + .../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 ++ * ++ * Based on kirkwood-linkstation-lswvl.dts, ++ * Copyright (C) 2015, 2016 ++ * Roger Shimizu ++ * ++ * 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@f1000000 { ++ pinctrl: pin-controller@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@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@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 000000000..e4edab13a --- /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 +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 +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + 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@1 { + label = "lswvl:red:alarm"; +- gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; + }; + + led@2 { + label = "lswvl:red:func"; +- gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; + }; + + led@3 { + label = "lswvl:amber:info"; +- gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; + }; + + led@4 { + label = "lswvl:blue:func"; +- gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; + }; + + led@5 { +@@ -212,12 +212,12 @@ + + led@6 { + label = "lswvl:red:hdderr0"; +- gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; + }; + + led@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 000000000..9e044f714 --- /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 +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 +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + 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@4 { + label = "lswxl:blue:power"; +- gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; ++ default-state = "keep"; + }; + + led@5 { + label = "lswxl:red:func"; +- gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; +- default-state = "keep"; ++ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; + }; + + led@6 { + label = "lswxl:red:hdderr0"; +- gpios = <&gpio0 8 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>; + }; + + led@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 000000000..bb7ab85c7 --- /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 +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 " 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) +Signed-off-by: Roger Shimizu +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + 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@gmail.com ++ * Copyright (C) 2015, 2016 ++ * Roger Shimizu + * + * 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@1 { + label = "Function Button"; + linux,code = ; +- gpios = <&gpio0 45 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; + }; + + button@2 { + label = "Power-on Switch"; + linux,code = ; + linux,input-type = <5>; +- gpios = <&gpio0 46 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; + }; + + button@3 { + label = "Power-auto Switch"; + linux,code = ; + linux,input-type = <5>; +- gpios = <&gpio0 47 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; + }; + }; + +@@ -185,38 +186,38 @@ + + led@1 { + label = "lswvl:red:alarm"; +- gpios = <&gpio0 36 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; + }; + + led@2 { + label = "lswvl:red:func"; +- gpios = <&gpio0 37 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; + }; + + led@3 { + label = "lswvl:amber:info"; +- gpios = <&gpio0 38 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; + }; + + led@4 { + label = "lswvl:blue:func"; +- gpios = <&gpio0 39 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; + }; + + led@5 { + label = "lswvl:blue:power"; +- gpios = <&gpio0 40 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + led@6 { + label = "lswvl:red:hdderr0"; +- gpios = <&gpio0 34 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; + }; + + led@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 000000000..fcb6787f7 --- /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 +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 " 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) +Signed-off-by: Roger Shimizu +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + 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@gmail.com ++ * Copyright (C) 2015, 2016 ++ * Roger Shimizu + * + * 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@1 { + label = "Function Button"; + linux,code = ; +- gpios = <&gpio1 41 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; + }; + + button@2 { + label = "Power-on Switch"; + linux,code = ; + linux,input-type = <5>; +- gpios = <&gpio1 42 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; + }; + + button@3 { + label = "Power-auto Switch"; + linux,code = ; + linux,input-type = <5>; +- gpios = <&gpio1 43 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; + }; + }; + +@@ -185,12 +186,12 @@ + + led@1 { + label = "lswxl:blue:func"; +- gpios = <&gpio1 36 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; + }; + + led@2 { + label = "lswxl:red:alarm"; +- gpios = <&gpio1 49 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; + }; + + led@3 { +@@ -200,23 +201,23 @@ + + led@4 { + label = "lswxl:blue:power"; +- gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; + }; + + led@5 { + label = "lswxl:red:func"; +- gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + led@6 { + label = "lswxl:red:hdderr0"; +- gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; ++ gpios = <&gpio0 8 GPIO_ACTIVE_LOW>; + }; + + led@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@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 000000000..fdfdd63ee --- /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 +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 +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + 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 + * +- * 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 + * +- * 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 000000000..9fbc786fb --- /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 +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 +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + .../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 ++ * ++ * 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@f1000000 { ++ pinctrl: pin-controller@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@1 { ++ gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ hdd_power0: regulator@2 { ++ gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++}; ++ ++&mdio { ++ status = "okay"; ++ ++ ethphy0: ethernet-phy@0 { ++ device_type = "ethernet-phy"; ++ reg = <0>; ++ }; ++}; ++ ++ð0 { ++ status = "okay"; ++ ++ ethernet0-port@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 ++ * ++ * 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 ++ * ++ * 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@f1000000 { ++ pinctrl: pin-controller@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@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@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 +- * +- * 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@1,0 { +- status = "okay"; +- }; +- }; +- }; +- +- ocp@f1000000 { +- pinctrl: pin-controller@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@12000 { +- status = "okay"; +- }; +- +- sata@80000 { +- status = "okay"; +- nr-ports = <2>; +- }; +- +- spi@10600 { +- status = "okay"; +- +- m25p40@0 { +- #address-cells = <1>; +- #size-cells = <1>; +- compatible = "st,m25p40", "jedec,spi-nor"; +- reg = <0>; +- spi-max-frequency = <25000000>; +- mode = <0>; +- +- partition@0 { +- reg = <0x0 0x60000>; +- label = "uboot"; +- read-only; +- }; +- +- partition@60000 { +- reg = <0x60000 0x10000>; +- label = "dtb"; +- read-only; +- }; +- +- partition@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@1 { +- label = "Function Button"; +- linux,code = ; +- gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; +- }; +- +- button@2 { +- label = "Power-on Switch"; +- linux,code = ; +- linux,input-type = <5>; +- gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; +- }; +- +- button@3 { +- label = "Power-auto Switch"; +- linux,code = ; +- 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@1 { +- label = "lswvl:red:alarm"; +- gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; +- }; +- +- led@2 { +- label = "lswvl:red:func"; +- gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; +- }; +- +- led@3 { +- label = "lswvl:amber:info"; +- gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; +- }; +- +- led@4 { +- label = "lswvl:blue:func"; +- gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; +- }; +- +- led@5 { +- label = "lswvl:blue:power"; +- gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; +- default-state = "keep"; +- }; +- +- led@6 { +- label = "lswvl:red:hdderr0"; +- gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; +- }; +- +- led@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@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@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@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@0 { +- device_type = "ethernet-phy"; +- reg = <0>; +- }; +-}; +- +-ð0 { +- status = "okay"; +- +- ethernet0-port@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 000000000..d979d6fd0 --- /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 +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 +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + .../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 ++ * ++ * 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@f1000000 { ++ pinctrl: pin-controller@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@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@1 { ++ gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ hdd_power0: regulator@2 { ++ gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ hdd_power1: regulator@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@8 { ++ device_type = "ethernet-phy"; ++ reg = <8>; ++ }; ++}; ++ ++ð1 { ++ status = "okay"; ++ ++ ethernet1-port@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 ++ * ++ * 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 ++ * ++ * 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@f1000000 { ++ pinctrl: pin-controller@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 ++ * ++ * 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@1,0 { ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ ocp@f1000000 { ++ pinctrl: pin-controller@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@12000 { ++ status = "okay"; ++ }; ++ ++ sata@80000 { ++ status = "okay"; ++ nr-ports = <1>; ++ }; ++ ++ spi@10600 { ++ status = "okay"; ++ ++ m25p40@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "st,m25p40", "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <25000000>; ++ mode = <0>; ++ ++ partition@0 { ++ reg = <0x0 0x60000>; ++ label = "uboot"; ++ read-only; ++ }; ++ ++ partition@60000 { ++ reg = <0x60000 0x10000>; ++ label = "dtb"; ++ read-only; ++ }; ++ ++ partition@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 = ; ++ }; ++ ++ power-on-switch { ++ label = "Power-on Switch"; ++ linux,code = ; ++ linux,input-type = <5>; ++ }; ++ ++ power-auto-switch { ++ label = "Power-auto Switch"; ++ linux,code = ; ++ 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@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@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 +- * +- * 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@1,0 { +- status = "okay"; +- }; +- }; +- }; +- +- ocp@f1000000 { +- pinctrl: pin-controller@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@12000 { +- status = "okay"; +- }; +- +- sata@80000 { +- status = "okay"; +- nr-ports = <2>; +- }; +- +- spi@10600 { +- status = "okay"; +- +- m25p40@0 { +- #address-cells = <1>; +- #size-cells = <1>; +- compatible = "st,m25p40", "jedec,spi-nor"; +- reg = <0>; +- spi-max-frequency = <25000000>; +- mode = <0>; +- +- partition@0 { +- reg = <0x0 0x60000>; +- label = "uboot"; +- read-only; +- }; +- +- partition@60000 { +- reg = <0x60000 0x10000>; +- label = "dtb"; +- read-only; +- }; +- +- partition@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@1 { +- label = "Function Button"; +- linux,code = ; +- gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; +- }; +- +- button@2 { +- label = "Power-on Switch"; +- linux,code = ; +- linux,input-type = <5>; +- gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; +- }; +- +- button@3 { +- label = "Power-auto Switch"; +- linux,code = ; +- 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@1 { +- label = "lswxl:blue:func"; +- gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; +- }; +- +- led@2 { +- label = "lswxl:red:alarm"; +- gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; +- }; +- +- led@3 { +- label = "lswxl:amber:info"; +- gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; +- }; +- +- led@4 { +- label = "lswxl:blue:power"; +- gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; +- default-state = "keep"; +- }; +- +- led@5 { +- label = "lswxl:red:func"; +- gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; +- }; +- +- led@6 { +- label = "lswxl:red:hdderr0"; +- gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>; +- }; +- +- led@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@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@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@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@8 { +- device_type = "ethernet-phy"; +- reg = <8>; +- }; +-}; +- +-ð1 { +- status = "okay"; +- +- ethernet1-port@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 000000000..8b9049ec8 --- /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 +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 +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + 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 ++ * ++ * Based on the board file arch/arm/mach-orion5x/kurobox_pro-setup.c ++ * Copyright (C) Ronen Shitrit ++ * ++ * 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 ++ ++/ { ++ 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 000000000..2b2b89ae3 --- /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 +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 +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + 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@0 { ++ compatible = "jedec-flash"; ++ reg = <0 0x40000>; ++ bank-width = <1>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ header@0 { ++ reg = <0 0x30000>; ++ read-only; ++ }; ++ ++ uboot@30000 { ++ reg = <0x30000 0xF000>; ++ read-only; ++ }; ++ ++ uboot_env@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 000000000..83d70147d --- /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 +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 +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + 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 ++ * Copyright (C) 2015, 2016 ++ * Roger Shimizu + * + * 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@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@1 { + label = "lswtgl:blue:power"; + gpios = <&gpio0 0 GPIO_ACTIVE_LOW>; ++ default-state = "keep"; + }; + + led@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 000000000..d2dc64d53 --- /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 +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 +Reviewed-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +--- + 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 ++ * ++ * 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 ++ * ++ * 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 ++ ++/ { ++ 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 = ; ++ linux,input-type = <5>; ++ }; ++ ++ power-auto-switch { ++ label = "Power-auto Switch"; ++ linux,code = ; ++ 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 +-#include +-#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 = , +- , +- ; +- +- internal-regs { +- pinctrl: pinctrl@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@1 { +- label = "Power-on Switch"; +- linux,code = ; +- linux,input-type = <5>; ++ power-on-switch { + gpios = <&gpio0 8 GPIO_ACTIVE_LOW>; + }; + +- button@2 { +- label = "Power-auto Switch"; +- linux,code = ; +- 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@1 { +- label = "lswtgl:blue:power"; ++ blue-power-led { + gpios = <&gpio0 0 GPIO_ACTIVE_LOW>; +- default-state = "keep"; + }; + +- led@2 { +- label = "lswtgl:red:alarm"; ++ red-alarm-led { + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; + }; + +- led@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@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@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@0 { +- compatible = "jedec-flash"; +- reg = <0 0x40000>; +- bank-width = <1>; +- +- partitions { +- compatible = "fixed-partitions"; +- #address-cells = <1>; +- #size-cells = <1>; +- +- header@0 { +- reg = <0 0x30000>; +- read-only; +- }; +- +- uboot@30000 { +- reg = <0x30000 0xF000>; +- read-only; +- }; ++ pmx_led_alarm: pmx-leds { ++ marvell,pins = "mpp2"; ++ marvell,function = "gpio"; ++ }; + +- uboot_env@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@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 ++ * ++ * 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 = , ++ , ++ ; ++ }; ++ ++ 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@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@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@0 { ++ compatible = "jedec-flash"; ++ reg = <0 0x40000>; ++ bank-width = <1>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ header@0 { ++ reg = <0 0x30000>; ++ read-only; ++ }; ++ ++ uboot@30000 { ++ reg = <0x30000 0xF000>; ++ read-only; ++ }; ++ ++ uboot_env@3F000 { ++ reg = <0x3F000 0x1000>; ++ }; ++ }; ++ }; ++}; ++ ++&mdio { ++ status = "okay"; ++ ++ ethphy: ethernet-phy { ++ reg = <8>; ++ }; ++}; ++ ++ð { ++ status = "okay"; ++ ++ ethernet-port@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 6a7a98293..d40378ed9 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