Skip to content

Commit

Permalink
Kirkwood: Add support for 6282 based QNAP devices
Browse files Browse the repository at this point in the history
Add support for the QNAP NAS devices based on Marvell's 6282 Kirkwood
chip (TS-119P+, TS-219P+ and TS-419P+).  The differences to the 6281
based devices are:
 - Ethernet PHY address
 - GPIOs used for buttons (TS-119P+/TS-219P+)

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
Acked-by: Saeed Bishara <saeed.bishara@gmail.com>
Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
  • Loading branch information
Martin Michlmayr authored and Nicolas Pitre committed Dec 7, 2010
1 parent 4bba1c3 commit ce56d16
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 8 deletions.
12 changes: 6 additions & 6 deletions arch/arm/mach-kirkwood/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,18 @@ config MACH_GURUPLUG
Marvell GuruPlug Reference Board.

config MACH_TS219
bool "QNAP TS-110, TS-119, TS-210, TS-219 and TS-219P Turbo NAS"
bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
help
Say 'Y' here if you want your kernel to support the
QNAP TS-110, TS-119, TS-210, TS-219 and TS-219P Turbo NAS
devices.
QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
TS-219P+ Turbo NAS devices.

config MACH_TS41X
bool "QNAP TS-410, TS-410U, TS-419P and TS-419U Turbo NAS"
bool "QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo NAS"
help
Say 'Y' here if you want your kernel to support the
QNAP TS-410, TS-410U, TS-419P and TS-419U Turbo NAS
devices.
QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo
NAS devices.

config MACH_DOCKSTAR
bool "Seagate FreeAgent DockStar"
Expand Down
16 changes: 14 additions & 2 deletions arch/arm/mach-kirkwood/ts219-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,19 @@ static unsigned int qnap_ts219_mpp_config[] __initdata = {
MPP11_UART0_RXD,
MPP13_UART1_TXD, /* PIC controller */
MPP14_UART1_RXD, /* PIC controller */
MPP15_GPIO, /* USB Copy button */
MPP16_GPIO, /* Reset button */
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
};

static void __init qnap_ts219_init(void)
{
u32 dev, rev;

/*
* Basic setup. Needs to be called early.
*/
Expand All @@ -100,6 +104,14 @@ static void __init qnap_ts219_init(void)
qnap_tsx1x_register_flash();
kirkwood_i2c_init();
i2c_register_board_info(0, &qnap_ts219_i2c_rtc, 1);

kirkwood_pcie_id(&dev, &rev);
if (dev == MV88F6282_DEV_ID) {
qnap_ts219_buttons[0].gpio = 43; /* USB Copy button */
qnap_ts219_buttons[1].gpio = 37; /* Reset button */
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();
Expand Down
9 changes: 9 additions & 0 deletions arch/arm/mach-kirkwood/ts41x-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@ static unsigned int qnap_ts41x_mpp_config[] __initdata = {

static void __init qnap_ts41x_init(void)
{
u32 dev, rev;

/*
* Basic setup. Needs to be called early.
*/
Expand All @@ -130,8 +132,15 @@ static void __init qnap_ts41x_init(void)
qnap_tsx1x_register_flash();
kirkwood_i2c_init();
i2c_register_board_info(0, &qnap_ts41x_i2c_rtc, 1);

kirkwood_pcie_id(&dev, &rev);
if (dev == MV88F6282_DEV_ID) {
qnap_ts41x_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);
qnap_ts41x_ge01_data.phy_addr = MV643XX_ETH_PHY_ADDR(1);
}
kirkwood_ge00_init(&qnap_ts41x_ge00_data);
kirkwood_ge01_init(&qnap_ts41x_ge01_data);

kirkwood_sata_init(&qnap_ts41x_sata_data);
kirkwood_ehci_init();
platform_device_register(&qnap_ts41x_button_device);
Expand Down

0 comments on commit ce56d16

Please sign in to comment.