From patchwork Mon Jan 6 23:47:07 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Lunn X-Patchwork-Id: 3443161 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id C6D0C9F2E9 for ; Mon, 6 Jan 2014 23:50:29 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id A7E9120179 for ; Mon, 6 Jan 2014 23:50:26 +0000 (UTC) Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9BE5420172 for ; Mon, 6 Jan 2014 23:50:22 +0000 (UTC) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1W0JvB-0002P4-BV; Mon, 06 Jan 2014 23:49:26 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1W0Jv0-00019G-Vz; Mon, 06 Jan 2014 23:49:15 +0000 Received: from vps0.lunn.ch ([178.209.37.122]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1W0Juk-00016j-30 for linux-arm-kernel@lists.infradead.org; Mon, 06 Jan 2014 23:49:09 +0000 Received: from lunn by vps0.lunn.ch with local (Exim 4.80) (envelope-from ) id 1W0JtD-0004OD-UO; Tue, 07 Jan 2014 00:47:23 +0100 From: Andrew Lunn To: Jason Cooper Subject: [PATCH RFC RFT 2/2] ARM: Kirkwood: Add support for many Synology NAS devices Date: Tue, 7 Jan 2014 00:47:07 +0100 Message-Id: <1389052027-16819-3-git-send-email-andrew@lunn.ch> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1389052027-16819-1-git-send-email-andrew@lunn.ch> References: <1389052027-16819-1-git-send-email-andrew@lunn.ch> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140106_184858_618488_E860BA5F X-CRM114-Status: GOOD ( 10.92 ) X-Spam-Score: -2.2 (--) Cc: devicetree@vger.kernel.org, klightspeed@killerwolves.net, linux ARM , Andrew Lunn X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add device tree fragments and files to support many of the kirkwood based Synology NAS devices. This is a translation of the board setup file maintained by Ben Peddell Signed-off-by: Andrew Lunn cc: Ben Peddell --- arch/arm/boot/dts/Makefile | 15 ++++ arch/arm/boot/dts/kirkwood-ds109.dts | 33 +++++++ arch/arm/boot/dts/kirkwood-ds110jv10.dts | 33 +++++++ arch/arm/boot/dts/kirkwood-ds111.dts | 33 +++++++ arch/arm/boot/dts/kirkwood-ds112.dts | 34 +++++++ arch/arm/boot/dts/kirkwood-ds209.dts | 33 +++++++ arch/arm/boot/dts/kirkwood-ds210.dts | 35 ++++++++ arch/arm/boot/dts/kirkwood-ds212.dts | 37 ++++++++ arch/arm/boot/dts/kirkwood-ds212j.dts | 34 +++++++ arch/arm/boot/dts/kirkwood-ds409.dts | 34 +++++++ arch/arm/boot/dts/kirkwood-ds409slim.dts | 32 +++++++ arch/arm/boot/dts/kirkwood-ds411.dts | 35 ++++++++ arch/arm/boot/dts/kirkwood-ds411j.dts | 34 +++++++ arch/arm/boot/dts/kirkwood-ds411slim.dts | 34 +++++++ arch/arm/boot/dts/kirkwood-rs212.dts | 34 +++++++ arch/arm/boot/dts/kirkwood-rs409.dts | 33 +++++++ arch/arm/boot/dts/kirkwood-rs411.dts | 34 +++++++ arch/arm/boot/dts/synology/alarm-led-12.dtsi | 28 ++++++ arch/arm/boot/dts/synology/common.dtsi | 112 ++++++++++++++++++++++++ arch/arm/boot/dts/synology/ethernet-1.dtsi | 15 ++++ arch/arm/boot/dts/synology/fan-alarm-18.dtsi | 22 +++++ arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi | 22 +++++ arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi | 32 +++++++ arch/arm/boot/dts/synology/fan-gpios-15.dtsi | 34 +++++++ arch/arm/boot/dts/synology/fan-gpios-32.dtsi | 34 +++++++ arch/arm/boot/dts/synology/fan-speed-100.dtsi | 20 +++++ arch/arm/boot/dts/synology/fan-speed-120.dtsi | 20 +++++ arch/arm/boot/dts/synology/fan-speed-150.dtsi | 20 +++++ arch/arm/boot/dts/synology/hdd-leds-20.dtsi | 90 +++++++++++++++++++ arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi | 36 ++++++++ arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi | 52 +++++++++++ arch/arm/boot/dts/synology/hdd-leds-36.dtsi | 103 ++++++++++++++++++++++ arch/arm/boot/dts/synology/hdd-leds-38.dtsi | 52 +++++++++++ arch/arm/boot/dts/synology/hdd-power-29.dtsi | 56 ++++++++++++ arch/arm/boot/dts/synology/hdd-power-30-1.dtsi | 40 +++++++++ arch/arm/boot/dts/synology/hdd-power-30-2.dtsi | 56 ++++++++++++ arch/arm/boot/dts/synology/hdd-power-30-4.dtsi | 89 +++++++++++++++++++ arch/arm/boot/dts/synology/hdd-power-31.dtsi | 40 +++++++++ arch/arm/boot/dts/synology/hdd-power-34.dtsi | 73 +++++++++++++++ arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi | 18 ++++ arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi | 18 ++++ arch/arm/boot/dts/synology/pcie-2.dtsi | 19 ++++ 42 files changed, 1658 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-ds109.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds110jv10.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds111.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds112.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds209.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds210.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds212.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds212j.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds409.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds409slim.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds411.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds411j.dts create mode 100644 arch/arm/boot/dts/kirkwood-ds411slim.dts create mode 100644 arch/arm/boot/dts/kirkwood-rs212.dts create mode 100644 arch/arm/boot/dts/kirkwood-rs409.dts create mode 100644 arch/arm/boot/dts/kirkwood-rs411.dts create mode 100644 arch/arm/boot/dts/synology/alarm-led-12.dtsi create mode 100644 arch/arm/boot/dts/synology/common.dtsi create mode 100644 arch/arm/boot/dts/synology/ethernet-1.dtsi create mode 100644 arch/arm/boot/dts/synology/fan-alarm-18.dtsi create mode 100644 arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi create mode 100644 arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi create mode 100644 arch/arm/boot/dts/synology/fan-gpios-15.dtsi create mode 100644 arch/arm/boot/dts/synology/fan-gpios-32.dtsi create mode 100644 arch/arm/boot/dts/synology/fan-speed-100.dtsi create mode 100644 arch/arm/boot/dts/synology/fan-speed-120.dtsi create mode 100644 arch/arm/boot/dts/synology/fan-speed-150.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-leds-20.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-leds-36.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-leds-38.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-power-29.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-power-30-1.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-power-30-2.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-power-30-4.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-power-31.dtsi create mode 100644 arch/arm/boot/dts/synology/hdd-power-34.dtsi create mode 100644 arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi create mode 100644 arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi create mode 100644 arch/arm/boot/dts/synology/pcie-2.dtsi \ No newline at end of file diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index d57c1a65b24f..dc5ec1c57b43 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -78,6 +78,18 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \ kirkwood-dns325.dtb \ kirkwood-dockstar.dtb \ kirkwood-dreamplug.dtb \ + kirkwood-ds109.dtb \ + kirkwood-ds110jv10.dtb \ + kirkwood-ds111.dtb \ + kirkwood-ds209.dtb \ + kirkwood-ds210.dtb \ + kirkwood-ds212.dtb \ + kirkwood-ds212j.dtb \ + kirkwood-ds409.dtb \ + kirkwood-ds409slim.dtb \ + kirkwood-ds411.dtb \ + kirkwood-ds411j.dtb \ + kirkwood-ds411slim.dtb \ kirkwood-goflexnet.dtb \ kirkwood-guruplug-server-plus.dtb \ kirkwood-ib62x0.dtb \ @@ -98,6 +110,9 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \ kirkwood-nsa310a.dtb \ kirkwood-openblocks_a6.dtb \ kirkwood-openblocks_a7.dtb \ + kirkwood-rs212.dtb \ + kirkwood-rs409.dtb \ + kirkwood-rs411.dtb \ kirkwood-sheevaplug.dtb \ kirkwood-sheevaplug-esata.dtb \ kirkwood-topkick.dtb \ diff --git a/arch/arm/boot/dts/kirkwood-ds109.dts b/arch/arm/boot/dts/kirkwood-ds109.dts new file mode 100644 index 000000000000..bea085ad540a --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds109.dts @@ -0,0 +1,33 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-ricoh.dtsi" +#include "synology/fan-speed-150.dtsi" +#include "synology/fan-gpios-32.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-21-1.dtsi" + +/ { + model = "Synology DS109, DS110, DS110jv20"; + compatible = "synology,ds109", "synology,ds110jv20", + "synology,ds110", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds110jv10.dts b/arch/arm/boot/dts/kirkwood-ds110jv10.dts new file mode 100644 index 000000000000..d6b746952947 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds110jv10.dts @@ -0,0 +1,33 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/fan-speed-150.dtsi" +#include "synology/fan-gpios-32.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-21-1.dtsi" + +/ { + model = "Synology DS110j v10 and v30"; + compatible = "synology,ds110jv10", "synology,ds110jv30", + "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds111.dts b/arch/arm/boot/dts/kirkwood-ds111.dts new file mode 100644 index 000000000000..5f51e088903f --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds111.dts @@ -0,0 +1,33 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6282.dtsi" +#include "synology/pcie-2.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/fan-speed-100.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-21-1.dtsi" + +/ { + model = "Synology DS111"; + compatible = "synology,ds111", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds112.dts b/arch/arm/boot/dts/kirkwood-ds112.dts new file mode 100644 index 000000000000..cda3203a0824 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds112.dts @@ -0,0 +1,34 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6282.dtsi" +#include "synology/pcie-2.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/fan-speed-100.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-35.dtsi" +#include "synology/hdd-leds-21-2.dtsi" +#include "synology/hdd-power-30.dtsi" + +/ { + model = "Synology DS111"; + compatible = "synology,ds111", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds209.dts b/arch/arm/boot/dts/kirkwood-ds209.dts new file mode 100644 index 000000000000..b2ebb423e129 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds209.dts @@ -0,0 +1,33 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-ricoh.dtsi" +#include "synology/fan-speed-150.dtsi" +#include "synology/fan-gpios-32.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-21-2.dtsi" +#include "synology/hdd-power-31.dtsi" + +/ { + model = "Synology DS209"; + compatible = "synology,ds209", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds210.dts b/arch/arm/boot/dts/kirkwood-ds210.dts new file mode 100644 index 000000000000..8623dd63f44d --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds210.dts @@ -0,0 +1,35 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/fan-speed-150.dtsi" +#include "synology/fan-gpios-32.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-21-2.dtsi" +#include "synology/hdd-power-31.dtsi" + +/ { + model = "Synology DS210 v10, v20, v30, DS211j"; + compatible = "synology,ds210jv10", "synology,ds210jv20", + "synology,ds210jv30", "synology,ds211j", + "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds212.dts b/arch/arm/boot/dts/kirkwood-ds212.dts new file mode 100644 index 000000000000..89e091ce2174 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds212.dts @@ -0,0 +1,37 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6282.dtsi" +#include "synology/pcie-2.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/fan-speed-100.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-21-2.dtsi" +#include "synology/hdd-power-30-2.dtsi" + +/ { + model = "Synology DS212, DS212p v10, v20, DS213air v10, DS213 v10"; + compatible = "synology,ds212", "synology,ds212pv10", + "synology,ds212pv10", "synology,ds212pv20", + "synology,ds213airv10", "synology,ds213v10", + "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds212j.dts b/arch/arm/boot/dts/kirkwood-ds212j.dts new file mode 100644 index 000000000000..ed14b7bb695e --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds212j.dts @@ -0,0 +1,34 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/fan-speed-100.dtsi" +#include "synology/fan-gpios-32.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-21-2.dtsi" +#include "synology/hdd-power-29.dtsi" + +/ { + model = "Synology DS212j v10, v20"; + compatible = "synology,ds212jv10", "synology,ds212jv20", + "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds409.dts b/arch/arm/boot/dts/kirkwood-ds409.dts new file mode 100644 index 000000000000..7000de1add08 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds409.dts @@ -0,0 +1,34 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-ricoh.dtsi" +#include "synology/ethernet-1.dtsi" +#include "synology/fan-speed-120.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-18.dtsi" +#include "synology/hdd-leds-36.dtsi" +#include "synology/alarm-led-12.dtsi" + +/ { + model = "Synology DS409, DS410j"; + compatible = "synology,ds409", "synology,ds410j", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds409slim.dts b/arch/arm/boot/dts/kirkwood-ds409slim.dts new file mode 100644 index 000000000000..0ba525a594f7 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds409slim.dts @@ -0,0 +1,32 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-ricoh.dtsi" +#include "synology/fan-speed-120.dtsi" +#include "synology/fan-gpios-32.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-20.dtsi" + +/ { + model = "Synology 409slim"; + compatible = "synology,ds409slim", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds411.dts b/arch/arm/boot/dts/kirkwood-ds411.dts new file mode 100644 index 000000000000..4c1ca8e85559 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds411.dts @@ -0,0 +1,35 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6282.dtsi" +#include "synology/pcie-2.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/ethernet-1.dtsi" +#include "synology/fan-speed-100.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-36.dtsi" +#include "synology/hdd-power-34.dtsi" + +/ { + model = "Synology DS411, DS413jv10"; + compatible = "synology,ds411", "synology,ds413jv10", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds411j.dts b/arch/arm/boot/dts/kirkwood-ds411j.dts new file mode 100644 index 000000000000..7f08a46ddabb --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds411j.dts @@ -0,0 +1,34 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/ethernet-1.dtsi" +#include "synology/fan-speed-120.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-18.dtsi" +#include "synology/hdd-leds-36.dtsi" +#include "synology/alarm-led-12.dtsi" + +/ { + model = "Synology DS411j"; + compatible = "synology,ds411j", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-ds411slim.dts b/arch/arm/boot/dts/kirkwood-ds411slim.dts new file mode 100644 index 000000000000..2e6d66f37002 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-ds411slim.dts @@ -0,0 +1,34 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6282.dtsi" +#include "synology/pcie-2.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/ethernet-1.dtsi" +#include "synology/fan-speed-100.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-35-1.dtsi" +#include "synology/hdd-leds-36.dtsi" + +/ { + model = "Synology DS411slim"; + compatible = "synology,ds411slim", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-rs212.dts b/arch/arm/boot/dts/kirkwood-rs212.dts new file mode 100644 index 000000000000..edc797464983 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-rs212.dts @@ -0,0 +1,34 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6282.dtsi" +#include "synology/pcie-2.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/fan-speed-100.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-35-3.dtsi" +#include "synology/hdd-leds-38.dtsi" +#include "synology/hdd-power-30-2.dtsi" + +/ { + model = "Synology RS212"; + compatible = "synology,rs212", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-rs409.dts b/arch/arm/boot/dts/kirkwood-rs409.dts new file mode 100644 index 000000000000..906664a99602 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-rs409.dts @@ -0,0 +1,33 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6281.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-ricoh.dtsi" +#include "synology/ethernet-1.dtsi" +#include "synology/fan-speed-120.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-18.dtsi" +#include "synology/hdd-leds-36.dtsi" + +/ { + model = "Synology RS409"; + compatible = "synology,rs409", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/kirkwood-rs411.dts b/arch/arm/boot/dts/kirkwood-rs411.dts new file mode 100644 index 000000000000..75c806ea0dc9 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-rs411.dts @@ -0,0 +1,34 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/dts-v1/; + +#include "kirkwood.dtsi" +#include "kirkwood-6282.dtsi" +#include "synology/pcie-2.dtsi" +#include "synology/common.dtsi" +#include "synology/i2c-rtc-seiko.dtsi" +#include "synology/ethernet-1.dtsi" +#include "synology/fan-speed-100.dtsi" +#include "synology/fan-gpios-15.dtsi" +#include "synology/fan-alarm-35-3.dtsi" +#include "synology/hdd-leds-36.dtsi" + +/ { + model = "Synology RS411 RS812"; + compatible = "synology,rs411", "synology,rs812", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/alarm-led-12.dtsi b/arch/arm/boot/dts/synology/alarm-led-12.dtsi new file mode 100644 index 000000000000..e6ea8f07d1a5 --- /dev/null +++ b/arch/arm/boot/dts/synology/alarm-led-12.dtsi @@ -0,0 +1,28 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_led_12: pmx-led-12 { + marvell,pins = "mpp12"; + marvell,function = "gpio"; + }; + }; + }; + gpio-leds { + compatible = "gpio-leds"; + pinctrl-0 = <&pmx_led_12>; + pinctrl-names = "default"; + hdd1-green { + label = "synology:alarm"; + gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/common.dtsi b/arch/arm/boot/dts/synology/common.dtsi new file mode 100644 index 000000000000..386074f3b6a2 --- /dev/null +++ b/arch/arm/boot/dts/synology/common.dtsi @@ -0,0 +1,112 @@ +/* + * Nodes which are common to all Synology devices + * + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#include + +/ { + mbus { + pcie-controller { + status = "okay"; + + pcie@1,0 { + status = "okay"; + }; + }; + }; + ocp@f1000000 { + i2c@11000 { + status = "okay"; + clock-frequency = <400000>; + pinctrl-0 = <&pmx_twsi0>; + pinctrl-names = "default"; + }; + serial@12000 { + status = "okay"; + pinctrl-0 = <&pmx_uart0>; + pinctrl-names = "default"; + }; + serial@12100 { + status = "okay"; + pinctrl-0 = <&pmx_uart1>; + pinctrl-names = "default"; + }; + poweroff@12100 { + compatible = "synology,power-off"; + reg = <0x12000 0x100>; + clocks = <&gate_clk 7>; + }; + spi@10600 { + status = "okay"; + pinctrl-0 = <&pmx_spi>; + pinctrl-names = "default"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "m25p80"; + reg = <0>; + spi-max-frequency = <20000000>; + mode = <0>; + + partition@00000000 { + reg = <0x00000000 0x00080000>; + label = "RedBoot"; + }; + + partition@00080000 { + reg = <0x00080000 0x00200000>; + label = "zImage"; + }; + + partition@00280000 { + reg = <0x00280000 0x00140000>; + label = "rd.gz"; + }; + partition@003c0000 { + reg = <0x003c0000 0x00010000>; + label = "vendor"; + }; + partition@003d0000 { + reg = <0x003d0000 0x00020000>; + label = "RedBoot config"; + }; + partition@003f0000 { + reg = <0x003f0000 0x00010000>; + label = "FIS directory"; + }; + }; + }; + sata@80000 { + pinctrl-0 = <&pmx_sata0 &pmx_sata1>; + pinctrl-names = "default"; + status = "okay"; + nr-ports = <2>; + }; + }; + gpio_fan { + compatible = "gpio-fan"; + }; +}; + +&mdio { + status = "okay"; + + ethphy0: ethernet-phy { + device_type = "ethernet-phy"; + reg = <8>; + }; +}; + +ð0 { + status = "okay"; + ethernet0-port@0 { + phy-handle = <ðphy0>; + }; +}; diff --git a/arch/arm/boot/dts/synology/ethernet-1.dtsi b/arch/arm/boot/dts/synology/ethernet-1.dtsi new file mode 100644 index 000000000000..bf00eff53bbc --- /dev/null +++ b/arch/arm/boot/dts/synology/ethernet-1.dtsi @@ -0,0 +1,15 @@ +&mdio { + status = "okay"; + + ethphy1: ethernet-phy { + device_type = "ethernet-phy"; + reg = <9>; + }; +}; + +ð0 { + status = "okay"; + ethernet1-port@0 { + phy-handle = <ðphy1>; + }; +}; diff --git a/arch/arm/boot/dts/synology/fan-alarm-18.dtsi b/arch/arm/boot/dts/synology/fan-alarm-18.dtsi new file mode 100644 index 000000000000..af9efc076808 --- /dev/null +++ b/arch/arm/boot/dts/synology/fan-alarm-18.dtsi @@ -0,0 +1,22 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_fan_18: pmx-fan-18 { + marvell,pins = "mpp18"; + marvell,function = "gpio"; + }; + }; + }; + gpio_fan { + alarm-gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>; + }; +}; diff --git a/arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi b/arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi new file mode 100644 index 000000000000..12e52fdae870 --- /dev/null +++ b/arch/arm/boot/dts/synology/fan-alarm-35-1.dtsi @@ -0,0 +1,22 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_fan_35: pmx-fan-35 { + marvell,pins = "mpp35"; + marvell,function = "gpio"; + }; + }; + }; + gpio_fan { + alarm-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; + }; +}; diff --git a/arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi b/arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi new file mode 100644 index 000000000000..e2a44f402bf0 --- /dev/null +++ b/arch/arm/boot/dts/synology/fan-alarm-35-3.dtsi @@ -0,0 +1,32 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_fan_35: pmx-fan-35 { + marvell,pins = "mpp35"; + marvell,function = "gpio"; + }; + pmx_fan_44: pmx-fan-44 { + marvell,pins = "mpp44"; + marvell,function = "gpio"; + }; + pmx_fan_45: pmx-fan-45 { + marvell,pins = "mpp45"; + marvell,function = "gpio"; + }; + }; + }; + gpio_fan { + alarm-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH + &gpio1 12 GPIO_ACTIVE_HIGH + &gpio1 13 GPIO_ACTIVE_HIGH>; + }; +}; diff --git a/arch/arm/boot/dts/synology/fan-gpios-15.dtsi b/arch/arm/boot/dts/synology/fan-gpios-15.dtsi new file mode 100644 index 000000000000..e27cba942eed --- /dev/null +++ b/arch/arm/boot/dts/synology/fan-gpios-15.dtsi @@ -0,0 +1,34 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_fan_15: pmx-fan-15 { + marvell,pins = "mpp15"; + marvell,function = "gpio"; + }; + pmx_fan_16: pmx-fan-16 { + marvell,pins = "mpp16"; + marvell,function = "gpio"; + }; + pmx_fan_17: pmx-fan-17 { + marvell,pins = "mpp17"; + marvell,function = "gpio"; + }; + }; + }; + gpio_fan { + pinctrl-0 = <&pmx_fan_15 &pmx_fan_16 &pmx_fan_17>; + pinctrl-names = "default"; + gpios = <&gpio0 15 GPIO_ACTIVE_HIGH + &gpio0 16 GPIO_ACTIVE_HIGH + &gpio0 17 GPIO_ACTIVE_HIGH>; + }; +}; diff --git a/arch/arm/boot/dts/synology/fan-gpios-32.dtsi b/arch/arm/boot/dts/synology/fan-gpios-32.dtsi new file mode 100644 index 000000000000..aea1a0dce906 --- /dev/null +++ b/arch/arm/boot/dts/synology/fan-gpios-32.dtsi @@ -0,0 +1,34 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_fan_32: pmx-fan-32 { + marvell,pins = "mpp32"; + marvell,function = "gpio"; + }; + pmx_fan_33: pmx-fan-33 { + marvell,pins = "mpp33"; + marvell,function = "gpio"; + }; + pmx_fan_34: pmx-fan-34 { + marvell,pins = "mpp34"; + marvell,function = "gpio"; + }; + }; + }; + gpio_fan { + pinctrl-0 = <&pmx_fan_32 &pmx_fan_33 &pmx_fan_34>; + pinctrl-names = "default"; + gpios = <&gpio1 0 GPIO_ACTIVE_HIGH + &gpio1 1 GPIO_ACTIVE_HIGH + &gpio1 2 GPIO_ACTIVE_HIGH>; + }; +}; diff --git a/arch/arm/boot/dts/synology/fan-speed-100.dtsi b/arch/arm/boot/dts/synology/fan-speed-100.dtsi new file mode 100644 index 000000000000..5188ba59a9b2 --- /dev/null +++ b/arch/arm/boot/dts/synology/fan-speed-100.dtsi @@ -0,0 +1,20 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + gpio_fan { + gpio-fan,speed-map = < 0 0 + 2500 1 + 3100 2 + 3800 3 + 4600 4 + 4800 5 + 4900 6 + 5000 7 >; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/fan-speed-120.dtsi b/arch/arm/boot/dts/synology/fan-speed-120.dtsi new file mode 100644 index 000000000000..90157070492c --- /dev/null +++ b/arch/arm/boot/dts/synology/fan-speed-120.dtsi @@ -0,0 +1,20 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + gpio_fan { + gpio-fan,speed-map = < 0 0 + 2500 1 + 2700 2 + 3000 4 + 3600 3 + 3800 5 + 3900 6 + 4300 7 >; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/fan-speed-150.dtsi b/arch/arm/boot/dts/synology/fan-speed-150.dtsi new file mode 100644 index 000000000000..6abc36915886 --- /dev/null +++ b/arch/arm/boot/dts/synology/fan-speed-150.dtsi @@ -0,0 +1,20 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + gpio_fan { + gpio-fan,speed-map = < 0 0 + 2200 1 + 2500 2 + 3000 4 + 3300 3 + 3700 5 + 3800 6 + 4200 7 >; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-leds-20.dtsi b/arch/arm/boot/dts/synology/hdd-leds-20.dtsi new file mode 100644 index 000000000000..e6663ea7014c --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-leds-20.dtsi @@ -0,0 +1,90 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_led_20: pmx-led-20 { + marvell,pins = "mpp20"; + marvell,function = "gpio"; + }; + pmx_led_21: pmx-led-21 { + marvell,pins = "mpp21"; + marvell,function = "gpio"; + }; + pmx_led_22: pmx-led-22 { + marvell,pins = "mpp22"; + marvell,function = "gpio"; + }; + pmx_led_23: pmx-led-23 { + marvell,pins = "mpp23"; + marvell,function = "gpio"; + }; + pmx_led_24: pmx-led-24 { + marvell,pins = "mpp24"; + marvell,function = "gpio"; + }; + pmx_led_25: pmx-led-25 { + marvell,pins = "mpp25"; + marvell,function = "gpio"; + }; + pmx_led_26: pmx-led-26 { + marvell,pins = "mpp26"; + marvell,function = "gpio"; + }; + pmx_led_27: pmx-led-27 { + marvell,pins = "mpp27"; + marvell,function = "gpio"; + }; + pmx_led_28: pmx-led-28 { + marvell,pins = "mpp28"; + marvell,function = "gpio"; + }; + }; + }; + gpio-leds { + compatible = "gpio-leds"; + pinctrl-0 = <&pmx_led_20 &pmx_led_21 &pmx_led_22 + &pmx_led_23 &pmx_led_24 &pmx_led_25 + &pmx_led_26 &pmx_led_27>; + pinctrl-names = "default"; + hdd1-green { + label = "synology:green:hdd1"; + gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; + }; + hdd1-amber { + label = "synology:amber:hdd1"; + gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; + }; + hdd2-green { + label = "synology:green:hdd2"; + gpios = <&gpio0 22 GPIO_ACTIVE_LOW>; + }; + hdd2-amber { + label = "synology:amber:hdd2"; + gpios = <&gpio0 23 GPIO_ACTIVE_LOW>; + }; + hdd3-green { + label = "synology:green:hdd3"; + gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; + }; + hdd3-amber { + label = "synology:amber:hdd3"; + gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; + }; + hdd4-green { + label = "synology:green:hdd4"; + gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; + }; + hdd4-amber { + label = "synology:amber:hdd4"; + gpios = <&gpio0 27 GPIO_ACTIVE_LOW>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi b/arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi new file mode 100644 index 000000000000..034323f9ffb0 --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-leds-21-1.dtsi @@ -0,0 +1,36 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_led_21: pmx-led-21 { + marvell,pins = "mpp21"; + marvell,function = "gpio"; + }; + pmx_led_23: pmx-led-23 { + marvell,pins = "mpp23"; + marvell,function = "gpio"; + }; + }; + }; + gpio-leds { + compatible = "gpio-leds"; + pinctrl-0 = <&pmx_led_21 &pmx_led_23>; + pinctrl-names = "default"; + hdd1-green { + label = "synology:green:hdd1"; + gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; + }; + hdd1-amber { + label = "synology:amber:hdd1"; + gpios = <&gpio0 23 GPIO_ACTIVE_LOW>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi b/arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi new file mode 100644 index 000000000000..446a28f2200b --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-leds-21-2.dtsi @@ -0,0 +1,52 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_led_20: pmx-led-20 { + marvell,pins = "mpp20"; + marvell,function = "gpio"; + }; + pmx_led_21: pmx-led-21 { + marvell,pins = "mpp21"; + marvell,function = "gpio"; + }; + pmx_led_22: pmx-led-22 { + marvell,pins = "mpp22"; + marvell,function = "gpio"; + }; + pmx_led_23: pmx-led-23 { + marvell,pins = "mpp23"; + marvell,function = "gpio"; + }; + }; + }; + gpio-leds { + compatible = "gpio-leds"; + pinctrl-0 = <&pmx_led_21 &pmx_led_23 &pmx_led_20 &pmx_led_22>; + pinctrl-names = "default"; + hdd1-green { + label = "synology:green:hdd1"; + gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; + }; + hdd1-amber { + label = "synology:amber:hdd1"; + gpios = <&gpio0 23 GPIO_ACTIVE_LOW>; + }; + hdd2-green { + label = "synology:green:hdd2"; + gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; + }; + hdd2-amber { + label = "synology:amber:hdd2"; + gpios = <&gpio0 22 GPIO_ACTIVE_LOW>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-leds-36.dtsi b/arch/arm/boot/dts/synology/hdd-leds-36.dtsi new file mode 100644 index 000000000000..9541c0c943e6 --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-leds-36.dtsi @@ -0,0 +1,103 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_led_36: pmx-led-36 { + marvell,pins = "mpp36"; + marvell,function = "gpio"; + }; + pmx_led_37: pmx-led-37 { + marvell,pins = "mpp37"; + marvell,function = "gpio"; + }; + pmx_led_38: pmx-led-38 { + marvell,pins = "mpp38"; + marvell,function = "gpio"; + }; + pmx_led_39: pmx-led-39 { + marvell,pins = "mpp39"; + marvell,function = "gpio"; + }; + pmx_led_40: pmx-led-40 { + marvell,pins = "mpp40"; + marvell,function = "gpio"; + }; + pmx_led_41: pmx-led-41 { + marvell,pins = "mpp41"; + marvell,function = "gpio"; + }; + pmx_led_42: pmx-led-42 { + marvell,pins = "mpp42"; + marvell,function = "gpio"; + }; + pmx_led_43: pmx-led-43 { + marvell,pins = "mpp43"; + marvell,function = "gpio"; + }; + pmx_led_44: pmx-led-44 { + marvell,pins = "mpp44"; + marvell,function = "gpio"; + }; + pmx_led_45: pmx-led-45 { + marvell,pins = "mpp45"; + marvell,function = "gpio"; + }; + }; + }; + gpio-leds { + compatible = "gpio-leds"; + pinctrl-0 = <&pmx_led_36 &pmx_led_37 &pmx_led_38 + &pmx_led_39 &pmx_led_40 &pmx_led_41 + &pmx_led_42 &pmx_led_43 &pmx_led_44 + &pmx_led_45>; + pinctrl-names = "default"; + hdd1-green { + label = "synology:green:hdd1"; + gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; + }; + hdd1-amber { + label = "synology:amber:hdd1"; + gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; + }; + hdd2-green { + label = "synology:green:hdd2"; + gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; + }; + hdd2-amber { + label = "synology:amber:hdd2"; + gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; + }; + hdd3-green { + label = "synology:green:hdd3"; + gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; + }; + hdd3-amber { + label = "synology:amber:hdd3"; + gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; + }; + hdd4-green { + label = "synology:green:hdd4"; + gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; + }; + hdd4-amber { + label = "synology:amber:hdd4"; + gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; + }; + hdd5-green { + label = "synology:green:hdd5"; + gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; + }; + hdd5-amber { + label = "synology:amber:hdd5"; + gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-leds-38.dtsi b/arch/arm/boot/dts/synology/hdd-leds-38.dtsi new file mode 100644 index 000000000000..d2fe351a0808 --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-leds-38.dtsi @@ -0,0 +1,52 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_led_38: pmx-led-38 { + marvell,pins = "mpp38"; + marvell,function = "gpio"; + }; + pmx_led_39: pmx-led-39 { + marvell,pins = "mpp39"; + marvell,function = "gpio"; + }; + pmx_led_36: pmx-led-36 { + marvell,pins = "mpp36"; + marvell,function = "gpio"; + }; + pmx_led_37: pmx-led-37 { + marvell,pins = "mpp37"; + marvell,function = "gpio"; + }; + }; + }; + gpio-leds { + compatible = "gpio-leds"; + pinctrl-0 = <&pmx_led_38 &pmx_led_39 &pmx_led_36 &pmx_led_37>; + pinctrl-names = "default"; + hdd1-green { + label = "synology:green:hdd1"; + gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; + }; + hdd1-amber { + label = "synology:amber:hdd1"; + gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; + }; + hdd2-green { + label = "synology:green:hdd2"; + gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; + }; + hdd2-amber { + label = "synology:amber:hdd2"; + gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-power-29.dtsi b/arch/arm/boot/dts/synology/hdd-power-29.dtsi new file mode 100644 index 000000000000..8b08c86ab942 --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-power-29.dtsi @@ -0,0 +1,56 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_hdd1_pwr_29: pmx-hdd1-pwr-29 { + marvell,pins = "mpp29"; + marvell,function = "gpio"; + }; + pmx_hdd2_pwr_31: pmx-hdd2-pwr-31 { + marvell,pins = "mpp31"; + marvell,function = "gpio"; + }; + }; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-0 = <&pmx_hdd1_pwr_29 &pmx_hdd2_pwr_31>; + pinctrl-names = "default"; + + hdd1_power: regulator@1 { + compatible = "regulator-fixed"; + reg = <1>; + regulator-name = "hdd1power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>; + }; + hdd2_power: regulator@2 { + compatible = "regulator-fixed"; + reg = <2>; + regulator-name = "hdd2power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio0 31 GPIO_ACTIVE_HIGH>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-power-30-1.dtsi b/arch/arm/boot/dts/synology/hdd-power-30-1.dtsi new file mode 100644 index 000000000000..b0998d4e231f --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-power-30-1.dtsi @@ -0,0 +1,40 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_hdd1_pwr_30: pmx-hdd-pwr-30 { + marvell,pins = "mpp30"; + marvell,function = "gpio"; + }; + }; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-0 = <&pmx_hdd1_pwr_30>; + pinctrl-names = "default"; + + hdd1_power: regulator@1 { + compatible = "regulator-fixed"; + reg = <1>; + regulator-name = "hdd1power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio0 30 GPIO_ACTIVE_HIGH>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-power-30-2.dtsi b/arch/arm/boot/dts/synology/hdd-power-30-2.dtsi new file mode 100644 index 000000000000..766e6352d5af --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-power-30-2.dtsi @@ -0,0 +1,56 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_hdd1_pwr_30: pmx-hdd-pwr-30 { + marvell,pins = "mpp30"; + marvell,function = "gpio"; + }; + pmx_hdd2_pwr_34: pmx-hdd2-pwr-34 { + marvell,pins = "mpp34"; + marvell,function = "gpio"; + }; + }; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-0 = <&pmx_hdd1_pwr_30 &pmx_hdd2_pwr_34>; + pinctrl-names = "default"; + + hdd1_power: regulator@1 { + compatible = "regulator-fixed"; + reg = <1>; + regulator-name = "hdd1power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio0 30 GPIO_ACTIVE_HIGH>; + }; + hdd2_power: regulator@2 { + compatible = "regulator-fixed"; + reg = <2>; + regulator-name = "hdd2power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-power-30-4.dtsi b/arch/arm/boot/dts/synology/hdd-power-30-4.dtsi new file mode 100644 index 000000000000..5bbced207965 --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-power-30-4.dtsi @@ -0,0 +1,89 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_hdd1_pwr_30: pmx-hdd-pwr-30 { + marvell,pins = "mpp30"; + marvell,function = "gpio"; + }; + pmx_hdd2_pwr_34: pmx-hdd2-pwr-34 { + marvell,pins = "mpp34"; + marvell,function = "gpio"; + }; + pmx_hdd3_pwr_44: pmx-hdd3-pwr-44 { + marvell,pins = "mpp44"; + marvell,function = "gpio"; + }; + pmx_hdd4_pwr_45: pmx-hdd4-pwr-45 { + marvell,pins = "mpp45"; + marvell,function = "gpio"; + }; + }; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-0 = <&pmx_hdd1_pwr_30 &pmx_hdd2_pwr_34 + &pmx_hdd3_pwr_44 &pmx_hdd4_pwr_45>; + pinctrl-names = "default"; + + hdd1_power: regulator@1 { + compatible = "regulator-fixed"; + reg = <1>; + regulator-name = "hdd1power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio0 30 GPIO_ACTIVE_HIGH>; + }; + hdd2_power: regulator@2 { + compatible = "regulator-fixed"; + reg = <2>; + regulator-name = "hdd2power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>; + }; + hdd3_power: regulator@3 { + compatible = "regulator-fixed"; + reg = <3>; + regulator-name = "hdd3power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>; + }; + hdd4_power: regulator@4 { + compatible = "regulator-fixed"; + reg = <4>; + regulator-name = "hdd3power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio1 32 GPIO_ACTIVE_HIGH>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-power-31.dtsi b/arch/arm/boot/dts/synology/hdd-power-31.dtsi new file mode 100644 index 000000000000..0774ecdcaf64 --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-power-31.dtsi @@ -0,0 +1,40 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_hdd2_pwr_31: pmx-hdd2-pwr-31 { + marvell,pins = "mpp31"; + marvell,function = "gpio"; + }; + }; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-0 = <&pmx_hdd2_pwr_31>; + pinctrl-names = "default"; + + hdd2_power: regulator@1 { + compatible = "regulator-fixed"; + reg = <1>; + regulator-name = "hdd2power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio0 31 GPIO_ACTIVE_HIGH>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/hdd-power-34.dtsi b/arch/arm/boot/dts/synology/hdd-power-34.dtsi new file mode 100644 index 000000000000..d90becf582f1 --- /dev/null +++ b/arch/arm/boot/dts/synology/hdd-power-34.dtsi @@ -0,0 +1,73 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + pinctrl: pinctrl@10000 { + + pmx_hdd2_pwr_34: pmx-hdd2-pwr-34 { + marvell,pins = "mpp34"; + marvell,function = "gpio"; + }; + pmx_hdd3_pwr_44: pmx-hdd3-pwr-44 { + marvell,pins = "mpp44"; + marvell,function = "gpio"; + }; + pmx_hdd4_pwr_45: pmx-hdd4-pwr-45 { + marvell,pins = "mpp45"; + marvell,function = "gpio"; + }; + }; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-0 = <&pmx_hdd2_pwr_34 &pmx_hdd3_pwr_44 + &pmx_hdd4_pwr_45>; + pinctrl-names = "default"; + + hdd2_power: regulator@2 { + compatible = "regulator-fixed"; + reg = <2>; + regulator-name = "hdd2power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>; + }; + hdd3_power: regulator@3 { + compatible = "regulator-fixed"; + reg = <3>; + regulator-name = "hdd3power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>; + }; + hdd4_power: regulator@4 { + compatible = "regulator-fixed"; + reg = <4>; + regulator-name = "hdd3power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + regulator-always-on; + regulator-boot-on; + startup-delay-us = <5000000>; + gpio = <&gpio1 32 GPIO_ACTIVE_HIGH>; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi b/arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi new file mode 100644 index 000000000000..98a23588ee62 --- /dev/null +++ b/arch/arm/boot/dts/synology/i2c-rtc-ricoh.dtsi @@ -0,0 +1,18 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + i2c@11000 { + rs5c372: rs5c372@32 { + compatible = "rs5c372"; + reg = <0x32>; + }; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi b/arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi new file mode 100644 index 000000000000..3dd0d554ac66 --- /dev/null +++ b/arch/arm/boot/dts/synology/i2c-rtc-seiko.dtsi @@ -0,0 +1,18 @@ +/* + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + ocp@f1000000 { + i2c@11000 { + s35390a: s35390a@30 { + compatible = "s35390a"; + reg = <0x30>; + }; + }; + }; +}; \ No newline at end of file diff --git a/arch/arm/boot/dts/synology/pcie-2.dtsi b/arch/arm/boot/dts/synology/pcie-2.dtsi new file mode 100644 index 000000000000..e34ebb5515c2 --- /dev/null +++ b/arch/arm/boot/dts/synology/pcie-2.dtsi @@ -0,0 +1,19 @@ +/* + * Nodes which are common to all Synology devices + * + * Andrew Lunn + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +/ { + mbus { + pcie-controller { + pcie@2,0 { + status = "okay"; + }; + }; + }; +};