Commit 2d0a7add authored by Ben Peddell's avatar Ben Peddell Committed by Jason Cooper

ARM: Kirkwood: Add support for many Synology NAS devices

Add device tree fragments and files to support many of the kirkwood
based Synology NAS devices. This is a modification of
Andrew Lunn's <andrew@lunn.ch> translation of the board setup file
maintained by Ben Peddell <klightspeed@killerwolves.net>

The Ricoh RS5C372 RTC was used in all 2009 units and some 2010 units.
All other Synology Kirkwood-based DiskStations and RackStations use
the Seiko S35390A RTC.

Most of the 1-bay and 2-bay units use the GPIOs that are multiplexed
with the built-in SATA interface activity/presence pins on mpp 20-23,
while the 4-bay units use ge01 and a PCIe SATA controller, and put the
software controlled HDD leds on mpp 36-43.

Most of the 6281 units with HDD power controls use mpp 29 and 31, while
most of the 6282 units with HDD power controls use mpp 30, 34, 44 and 45
and provide a model ID on mpp 28, 29, 46 and 47.  Pre-2012 units and
most 4-bay units didn't have a separate power control for HDD1.  These
power controls are presumably to limit startup current from the 12V
brick power supply.

Instead of using separate dtsi files in a synology directory, this
patch uses a single dtsi file containing all of the modules for
these boards, with all of the modules not common to all boards
disabled.  The board dts files then enable the appropriate modules for
their boards.
Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarBen Peddell <klightspeed@killerwolves.net>
Tested-by: Ben Peddell <klightspeed@killerwolves.net> (ds211j)
Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent 36670de1
......@@ -90,6 +90,18 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-b3.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 \
......@@ -115,6 +127,9 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-b3.dtb \
kirkwood-rd88f6192.dtb \
kirkwood-rd88f6281-a0.dtb \
kirkwood-rd88f6281-a1.dtb \
kirkwood-rs212.dtb \
kirkwood-rs409.dtb \
kirkwood-rs411.dtb \
kirkwood-sheevaplug.dtb \
kirkwood-sheevaplug-esata.dtb \
kirkwood-topkick.dtb \
......
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.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";
};
gpio-fan-150-32-35 {
status = "okay";
};
gpio-leds-hdd-21-1 {
status = "okay";
};
};
&rs5c372 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.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";
};
gpio-fan-150-32-35 {
status = "okay";
};
gpio-leds-hdd-21-1 {
status = "okay";
};
};
&s35390a {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology DS111";
compatible = "synology,ds111", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-100-15-35-1 {
status = "okay";
};
gpio-leds-hdd-21-1 {
status = "okay";
};
};
&s35390a {
status = "okay";
};
&pcie2 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology DS111";
compatible = "synology,ds111", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-100-15-35-1 {
status = "okay";
};
gpio-leds-21-2 {
status = "okay";
};
regulators-hdd-30 {
status = "okay";
};
};
&s35390a {
status = "okay";
};
&pcie2 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology DS209";
compatible = "synology,ds209", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-150-32-35 {
status = "okay";
};
gpio-leds-hdd-21-2 {
status = "okay";
};
regulators-hdd-31 {
status = "okay";
};
};
&rs5c372 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.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";
};
gpio-fan-150-32-35 {
status = "okay";
};
gpio-leds-hdd-21-2 {
status = "okay";
};
regulators-hdd-31 {
status = "okay";
};
};
&s35390a {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.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";
};
gpio-fan-100-15-35-1 {
status = "okay";
};
gpio-leds-hdd-21-2 {
status = "okay";
};
};
&s35390a {
status = "okay";
};
&pcie2 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.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";
};
gpio-fan-100-32-35 {
status = "okay";
};
gpio-leds-hdd-21-2 {
status = "okay";
};
};
&s35390a {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology DS409, DS410j";
compatible = "synology,ds409", "synology,ds410j", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-150-15-18 {
status = "okay";
};
gpio-leds-hdd-36 {
status = "okay";
};
gpio-leds-alarm-12 {
status = "okay";
};
};
&eth1 {
status = "okay";
};
&rs5c372 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology 409slim";
compatible = "synology,ds409slim", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-150-32-35 {
status = "okay";
};
gpio-leds-hdd-20 {
status = "okay";
};
};
&rs5c372 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology DS411, DS413jv10";
compatible = "synology,ds411", "synology,ds413jv10", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-100-15-35-1 {
status = "okay";
};
gpio-leds-hdd-36 {
status = "okay";
};
regulators-hdd-34 {
status = "okay";
};
};
&eth1 {
status = "okay";
};
&s35390a {
status = "okay";
};
&pcie2 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology DS411j";
compatible = "synology,ds411j", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-150-15-18 {
status = "okay";
};
gpio-leds-hdd-36 {
status = "okay";
};
gpio-leds-alarm-12 {
status = "okay";
};
};
&eth1 {
status = "okay";
};
&s35390a {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology DS411slim";
compatible = "synology,ds411slim", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-100-15-35-1 {
status = "okay";
};
gpio-leds-hdd-36 {
status = "okay";
};
};
&eth1 {
status = "okay";
};
&s35390a {
status = "okay";
};
&pcie2 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology RS212";
compatible = "synology,rs212", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-100-15-35-3 {
status = "okay";
};
gpio-leds-hdd-38 {
status = "okay";
};
regulators-hdd-30-2 {
status = "okay";
};
};
&s35390a {
status = "okay";
};
&pcie2 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology RS409";
compatible = "synology,rs409", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-150-15-18 {
status = "okay";
};
gpio-leds-hdd-36 {
status = "okay";
};
};
&eth1 {
status = "okay";
};
&rs5c372 {
status = "okay";
};
/*
* Andrew Lunn <andrew@lunn.ch>
* Ben Peddell <klightspeed@killerwolves.net>
*
* 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 "kirkwood-synology.dtsi"
/ {
model = "Synology RS411 RS812";
compatible = "synology,rs411", "synology,rs812", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
};
gpio-fan-100-15-35-3 {
status = "okay";
};
gpio-leds-hdd-36 {
status = "okay";
};
};
&eth1 {
status = "okay";
};
&s35390a {
status = "okay";
};
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment