From mboxrd@z Thu Jan 1 00:00:00 1970 From: gregory.clement@free-electrons.com (Gregory CLEMENT) Date: Mon, 29 Jun 2015 15:22:53 +0200 Subject: [PATCH v2 1/2] ARM: dts: add buffalo linkstation ls-wxl/wsxl In-Reply-To: <1434985216-6409-1-git-send-email-rogershimizu@gmail.com> References: <1434713319-8691-2-git-send-email-rogershimizu@gmail.com> <1434985216-6409-1-git-send-email-rogershimizu@gmail.com> Message-ID: <559146AD.4040602@free-electrons.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Roger, On 22/06/2015 17:00, Roger Shimizu wrote: > Add dts file to support Buffalo Linkstation LS-WXL and LS-WSXL, > which are 2-bay NAS with 3.5" and 2.5" HDD respectively. > > Signed-off-by: Roger Shimizu > Reviewed-by: Nobuhiro Iwamatsu it seems that you addressed Andrew's remarks too, so Acked-by: Gregory CLEMENT However I will wait for Andrew's formal acked-by before applying it. Thanks, Gregory > --- > .../devicetree/bindings/arm/marvell,kirkwood.txt | 1 + > arch/arm/boot/dts/Makefile | 1 + > arch/arm/boot/dts/kirkwood-lswxl.dts | 301 +++++++++++++++++++++ > 3 files changed, 303 insertions(+) > create 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 4f40ff3..b79212f 100644 > --- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt > +++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt > @@ -20,6 +20,7 @@ And in addition, the compatible shall be extended with the specific > board. Currently known boards are: > > "buffalo,lschlv2" > +"buffalo,lswxl" > "buffalo,lsxhl" > "buffalo,lsxl" > "dlink,dns-320" > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index a8bf702..b45c974 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -176,6 +176,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \ > kirkwood-km_kirkwood.dtb \ > kirkwood-laplug.dtb \ > kirkwood-lschlv2.dtb \ > + kirkwood-lswxl.dtb \ > kirkwood-lsxhl.dtb \ > kirkwood-mplcec4.dtb \ > kirkwood-mv88f6281gtw-ge.dtb \ > diff --git a/arch/arm/boot/dts/kirkwood-lswxl.dts b/arch/arm/boot/dts/kirkwood-lswxl.dts > new file mode 100644 > index 0000000..f5db16a > --- /dev/null > +++ b/arch/arm/boot/dts/kirkwood-lswxl.dts > @@ -0,0 +1,301 @@ > +/* > + * Device Tree file for Buffalo Linkstation LS-WXL/WSXL > + * > + * Copyright (C) 2015, rogershimizu at gmail.com > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License > + * as published by the Free Software Foundation; either version > + * 2 of the License, or (at your option) any later version. > + */ > + > +/dts-v1/; > + > +#include "kirkwood.dtsi" > +#include "kirkwood-6281.dtsi" > + > +/ { > + model = "Buffalo Linkstation LS-WXL/WSXL"; > + compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood"; > + > + memory { /* 128 MB */ > + device_type = "memory"; > + reg = <0x00000000 0x8000000>; > + }; > + > + chosen { > + bootargs = "console=ttyS0,115200n8 earlyprintk"; > + stdout-path = &uart0; > + }; > + > + mbus { > + pcie-controller { > + status = "okay"; > + pcie at 1,0 { > + status = "okay"; > + }; > + }; > + }; > + > + ocp at f1000000 { > + pinctrl: pin-controller at 10000 { > + pmx_power_hdd0: pmx-power-hdd0 { > + marvell,pins = "mpp28"; > + marvell,function = "gpio"; > + }; > + pmx_power_hdd1: pmx-power-hdd1 { > + marvell,pins = "mpp29"; > + marvell,function = "gpio"; > + }; > + pmx_usb_vbus: pmx-usb-vbus { > + marvell,pins = "mpp37"; > + marvell,function = "gpio"; > + }; > + pmx_fan_high: pmx-fan-high { > + marvell,pins = "mpp47"; > + marvell,function = "gpio"; > + }; > + pmx_fan_low: pmx-fan-low { > + marvell,pins = "mpp48"; > + marvell,function = "gpio"; > + }; > + pmx_led_hdderr0: pmx-led-hdderr0 { > + marvell,pins = "mpp8"; > + marvell,function = "gpio"; > + }; > + pmx_led_hdderr1: pmx-led-hdderr1 { > + marvell,pins = "mpp46"; > + marvell,function = "gpio"; > + }; > + pmx_led_alarm: pmx-led-alarm { > + marvell,pins = "mpp49"; > + marvell,function = "gpio"; > + }; > + pmx_led_function_red: pmx-led-function-red { > + marvell,pins = "mpp34"; > + marvell,function = "gpio"; > + }; > + pmx_led_function_blue: pmx-led-function-blue { > + marvell,pins = "mpp36"; > + marvell,function = "gpio"; > + }; > + pmx_led_info: pmx-led-info { > + marvell,pins = "mpp38"; > + marvell,function = "gpio"; > + }; > + pmx_led_power: pmx-led-power { > + marvell,pins = "mpp39"; > + marvell,function = "gpio"; > + }; > + pmx_fan_lock: pmx-fan-lock { > + marvell,pins = "mpp40"; > + marvell,function = "gpio"; > + }; > + pmx_button_function: pmx-button-function { > + marvell,pins = "mpp41"; > + marvell,function = "gpio"; > + }; > + pmx_power_switch: pmx-power-switch { > + marvell,pins = "mpp42"; > + marvell,function = "gpio"; > + }; > + pmx_power_auto_switch: pmx-power-auto-switch { > + marvell,pins = "mpp43"; > + marvell,function = "gpio"; > + }; > + }; > + > + serial at 12000 { > + status = "okay"; > + }; > + > + sata at 80000 { > + status = "okay"; > + nr-ports = <2>; > + }; > + > + spi at 10600 { > + status = "okay"; > + > + m25p40 at 0 { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "st,m25p40", "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <25000000>; > + mode = <0>; > + > + partition at 0 { > + reg = <0x0 0x60000>; > + label = "uboot"; > + read-only; > + }; > + > + partition at 60000 { > + reg = <0x60000 0x10000>; > + label = "dtb"; > + read-only; > + }; > + > + partition at 70000 { > + reg = <0x70000 0x10000>; > + label = "uboot_env"; > + }; > + }; > + }; > + }; > + > + gpio_keys { > + compatible = "gpio-keys"; > + #address-cells = <1>; > + #size-cells = <0>; > + pinctrl-0 = <&pmx_button_function &pmx_power_switch > + &pmx_power_auto_switch>; > + pinctrl-names = "default"; > + > + button at 1 { > + label = "Function Button"; > + linux,code = ; > + gpios = <&gpio1 41 GPIO_ACTIVE_LOW>; > + }; > + > + button at 2 { > + label = "Power-on Switch"; > + linux,code = ; > + linux,input-type = <5>; > + gpios = <&gpio1 42 GPIO_ACTIVE_LOW>; > + }; > + > + button at 3 { > + label = "Power-auto Switch"; > + linux,code = ; > + linux,input-type = <5>; > + gpios = <&gpio1 43 GPIO_ACTIVE_LOW>; > + }; > + }; > + > + gpio_leds { > + compatible = "gpio-leds"; > + pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm > + &pmx_led_info &pmx_led_power > + &pmx_led_function_blue > + &pmx_led_hdderr0 > + &pmx_led_hdderr1>; > + pinctrl-names = "default"; > + > + led at 1 { > + label = "lswxl:blue:func"; > + gpios = <&gpio1 36 GPIO_ACTIVE_LOW>; > + }; > + > + led at 2 { > + label = "lswxl:red:alarm"; > + gpios = <&gpio1 49 GPIO_ACTIVE_LOW>; > + }; > + > + led at 3 { > + label = "lswxl:amber:info"; > + gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; > + }; > + > + led at 4 { > + label = "lswxl:blue:power"; > + gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; > + }; > + > + led at 5 { > + label = "lswxl:red:func"; > + gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; > + default-state = "keep"; > + }; > + > + led at 6 { > + label = "lswxl:red:hdderr0"; > + gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; > + }; > + > + led at 7 { > + label = "lswxl:red:hdderr1"; > + gpios = <&gpio1 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 47 GPIO_ACTIVE_LOW > + &gpio0 48 GPIO_ACTIVE_LOW>; > + > + gpio-fan,speed-map = <0 3 > + 1500 2 > + 3250 1 > + 5000 0>; > + > + alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>; > + }; > + > + restart_poweroff { > + compatible = "restart-poweroff"; > + }; > + > + regulators { > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <0>; > + pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>; > + pinctrl-names = "default"; > + > + usb_power: regulator at 1 { > + compatible = "regulator-fixed"; > + reg = <1>; > + regulator-name = "USB Power"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + enable-active-high; > + regulator-always-on; > + regulator-boot-on; > + gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>; > + }; > + hdd_power0: regulator at 2 { > + compatible = "regulator-fixed"; > + reg = <2>; > + regulator-name = "HDD0 Power"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + enable-active-high; > + regulator-always-on; > + regulator-boot-on; > + gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>; > + }; > + hdd_power1: regulator at 3 { > + compatible = "regulator-fixed"; > + reg = <3>; > + regulator-name = "HDD1 Power"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + enable-active-high; > + regulator-always-on; > + regulator-boot-on; > + gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>; > + }; > + }; > +}; > + > +&mdio { > + status = "okay"; > + > + ethphy1: ethernet-phy at 8 { > + device_type = "ethernet-phy"; > + reg = <8>; > + }; > +}; > + > +ð1 { > + status = "okay"; > + > + ethernet1-port at 0 { > + phy-handle = <ðphy1>; > + }; > +}; > -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com