Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 321264
b: refs/heads/master
c: 9eb61f4
h: refs/heads/master
v: v3
  • Loading branch information
Andrew Lunn committed Jul 27, 2012
1 parent de02957 commit 13c79ba
Show file tree
Hide file tree
Showing 10 changed files with 229 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 97b414e119ccc7216e29c3bd62fe1a1797f21404
refs/heads/master: 9eb61f473601c047a4c0c84269d0c25493e45277
21 changes: 21 additions & 0 deletions trunk/arch/arm/boot/dts/kirkwood-ts219-6281.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/dts-v1/;

/include/ "kirkwood-ts219.dtsi"

/ {
gpio_keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
button@1 {
label = "USB Copy";
linux,code = <133>;
gpios = <&gpio0 15 1>;
};
button@2 {
label = "Reset";
linux,code = <0x198>;
gpios = <&gpio0 16 1>;
};
};
};
21 changes: 21 additions & 0 deletions trunk/arch/arm/boot/dts/kirkwood-ts219-6282.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/dts-v1/;

/include/ "kirkwood-ts219.dtsi"

/ {
gpio_keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
button@1 {
label = "USB Copy";
linux,code = <133>;
gpios = <&gpio1 11 1>;
};
button@2 {
label = "Reset";
linux,code = <0x198>;
gpios = <&gpio1 5 1>;
};
};
};
74 changes: 74 additions & 0 deletions trunk/arch/arm/boot/dts/kirkwood-ts219.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/include/ "kirkwood.dtsi"

/ {
model = "QNAP TS219 family";
compatible = "qnap,ts219", "mrvl,kirkwood";

memory {
device_type = "memory";
reg = <0x00000000 0x20000000>;
};

chosen {
bootargs = "console=ttyS0,115200n8";
};

ocp@f1000000 {
i2c@11000 {
status = "okay";
clock-frequency = <400000>;

s35390a: s35390a@30 {
compatible = "s35390a";
reg = <0x30>;
};
};
serial@12000 {
clock-frequency = <200000000>;
status = "okay";
};
serial@12100 {
clock-frequency = <200000000>;
status = "okay";
};
spi@10600 {
status = "okay";

m25p128@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "m25p128";
reg = <0>;
spi-max-frequency = <20000000>;
mode = <0>;

partition@0000000 {
reg = <0x00000000 0x00080000>;
label = "U-Boot";
};

partition@00200000 {
reg = <0x00200000 0x00200000>;
label = "Kernel";
};

partition@00400000 {
reg = <0x00400000 0x00900000>;
label = "RootFS1";
};
partition@00d00000 {
reg = <0x00d00000 0x00300000>;
label = "RootFS2";
};
partition@00040000 {
reg = <0x00080000 0x00040000>;
label = "U-Boot Config";
};
partition@000c0000 {
reg = <0x000c0000 0x00140000>;
label = "NAS Config";
};
};
};
};
};
14 changes: 14 additions & 0 deletions trunk/arch/arm/mach-kirkwood/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,20 @@ config MACH_IB62X0_DT
RaidSonic IB-NAS6210 & IB-NAS6220 devices, using
Flattened Device Tree.

config MACH_TS219_DT
bool "Device Tree for QNAP TS-11X, TS-21X NAS"
select ARCH_KIRKWOOD_DT
select ARM_APPENDED_DTB
select ARM_ATAG_DTB_COMPAT
help
Say 'Y' here if you want your kernel to support the QNAP
TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
TS-219P+ Turbo NAS devices using Fattened Device Tree.
There are two different Device Tree descriptions, depending
on if the device is based on an if the board uses the MV6281
or MV6282. If you have the wrong one, the buttons will not
work.

config MACH_TS219
bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
help
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/arm/mach-kirkwood/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@ obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o
obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o
obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o
obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o
obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o
1 change: 1 addition & 0 deletions trunk/arch/arm/mach-kirkwood/Makefile.boot
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ dtb-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += kirkwood-dns320.dtb
dtb-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += kirkwood-dns325.dtb
dtb-$(CONFIG_MACH_ICONNECT_DT) += kirkwood-iconnect.dtb
dtb-$(CONFIG_MACH_IB62X0_DT) += kirkwood-ib62x0.dtb
dtb-$(CONFIG_MACH_TS219_DT) += kirkwood-qnap-ts219.dtb
4 changes: 4 additions & 0 deletions trunk/arch/arm/mach-kirkwood/board-dt.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ static void __init kirkwood_dt_init(void)
if (of_machine_is_compatible("raidsonic,ib-nas62x0"))
ib62x0_init();

if (of_machine_is_compatible("qnap,ts219"))
qnap_dt_ts219_init();

of_platform_populate(NULL, kirkwood_dt_match_table,
kirkwood_auxdata_lookup, NULL);
}
Expand All @@ -87,6 +90,7 @@ static const char *kirkwood_dt_board_compat[] = {
"dlink,dns-325",
"iom,iconnect",
"raidsonic,ib-nas62x0",
"qnap,ts219",
NULL
};

Expand Down
87 changes: 87 additions & 0 deletions trunk/arch/arm/mach-kirkwood/board-ts219.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
/*
*
* QNAP TS-11x/TS-21x Turbo NAS Board Setup via DT
*
* Copyright (C) 2012 Andrew Lunn <andrew@lunn.ch>
*
* Based on the board file ts219-setup.c:
*
* Copyright (C) 2009 Martin Michlmayr <tbm@cyrius.com>
* Copyright (C) 2008 Byron Bradley <byron.bbradley@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.
*/

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/mv643xx_eth.h>
#include <linux/ata_platform.h>
#include <linux/gpio_keys.h>
#include <linux/input.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <mach/kirkwood.h>
#include "common.h"
#include "mpp.h"
#include "tsx1x-common.h"

static struct mv643xx_eth_platform_data qnap_ts219_ge00_data = {
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
};

static struct mv_sata_platform_data qnap_ts219_sata_data = {
.n_ports = 2,
};

static unsigned int qnap_ts219_mpp_config[] __initdata = {
MPP0_SPI_SCn,
MPP1_SPI_MOSI,
MPP2_SPI_SCK,
MPP3_SPI_MISO,
MPP4_SATA1_ACTn,
MPP5_SATA0_ACTn,
MPP8_TW0_SDA,
MPP9_TW0_SCK,
MPP10_UART0_TXD,
MPP11_UART0_RXD,
MPP13_UART1_TXD, /* PIC controller */
MPP14_UART1_RXD, /* PIC controller */
MPP15_GPIO, /* USB Copy button (on devices with 88F6281) */
MPP16_GPIO, /* Reset button (on devices with 88F6281) */
MPP36_GPIO, /* RAM: 0: 256 MB, 1: 512 MB */
MPP37_GPIO, /* Reset button (on devices with 88F6282) */
MPP43_GPIO, /* USB Copy button (on devices with 88F6282) */
MPP44_GPIO, /* Board ID: 0: TS-11x, 1: TS-21x */
0
};

void __init qnap_dt_ts219_init(void)
{
u32 dev, rev;

kirkwood_mpp_conf(qnap_ts219_mpp_config);

kirkwood_pcie_id(&dev, &rev);
if (dev == MV88F6282_DEV_ID)
qnap_ts219_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);

kirkwood_ge00_init(&qnap_ts219_ge00_data);
kirkwood_sata_init(&qnap_ts219_sata_data);
kirkwood_ehci_init();

pm_power_off = qnap_tsx1x_power_off;
}

/* FIXME: Will not work with DT. Maybe use MPP40_GPIO? */
static int __init ts219_pci_init(void)
{
if (machine_is_ts219())
kirkwood_pcie_init(KW_PCIE0);

return 0;
}
subsys_initcall(ts219_pci_init);
5 changes: 5 additions & 0 deletions trunk/arch/arm/mach-kirkwood/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ void dreamplug_init(void);
#else
static inline void dreamplug_init(void) {};
#endif
#ifdef CONFIG_MACH_TS219_DT
void qnap_dt_ts219_init(void);
#else
static inline void qnap_dt_ts219_init(void) {};
#endif

#ifdef CONFIG_MACH_DLINK_KIRKWOOD_DT
void dnskw_init(void);
Expand Down

0 comments on commit 13c79ba

Please sign in to comment.