Commit ce56d169 authored by Martin Michlmayr's avatar Martin Michlmayr Committed by Nicolas Pitre

Kirkwood: Add support for 6282 based QNAP devices

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: default avatarMartin Michlmayr <tbm@cyrius.com>
Acked-by: default avatarSaeed Bishara <saeed.bishara@gmail.com>
Signed-off-by: default avatarNicolas Pitre <nico@fluxnic.net>
parent 4bba1c34
...@@ -45,18 +45,18 @@ config MACH_GURUPLUG ...@@ -45,18 +45,18 @@ config MACH_GURUPLUG
Marvell GuruPlug Reference Board. Marvell GuruPlug Reference Board.
config MACH_TS219 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 help
Say 'Y' here if you want your kernel to support the 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 QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
devices. TS-219P+ Turbo NAS devices.
config MACH_TS41X 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 help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
QNAP TS-410, TS-410U, TS-419P and TS-419U Turbo NAS QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo
devices. NAS devices.
config MACH_DOCKSTAR config MACH_DOCKSTAR
bool "Seagate FreeAgent DockStar" bool "Seagate FreeAgent DockStar"
......
...@@ -80,15 +80,19 @@ static unsigned int qnap_ts219_mpp_config[] __initdata = { ...@@ -80,15 +80,19 @@ static unsigned int qnap_ts219_mpp_config[] __initdata = {
MPP11_UART0_RXD, MPP11_UART0_RXD,
MPP13_UART1_TXD, /* PIC controller */ MPP13_UART1_TXD, /* PIC controller */
MPP14_UART1_RXD, /* PIC controller */ MPP14_UART1_RXD, /* PIC controller */
MPP15_GPIO, /* USB Copy button */ MPP15_GPIO, /* USB Copy button (on devices with 88F6281) */
MPP16_GPIO, /* Reset button */ MPP16_GPIO, /* Reset button (on devices with 88F6281) */
MPP36_GPIO, /* RAM: 0: 256 MB, 1: 512 MB */ 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 */ MPP44_GPIO, /* Board ID: 0: TS-11x, 1: TS-21x */
0 0
}; };
static void __init qnap_ts219_init(void) static void __init qnap_ts219_init(void)
{ {
u32 dev, rev;
/* /*
* Basic setup. Needs to be called early. * Basic setup. Needs to be called early.
*/ */
...@@ -100,6 +104,14 @@ static void __init qnap_ts219_init(void) ...@@ -100,6 +104,14 @@ static void __init qnap_ts219_init(void)
qnap_tsx1x_register_flash(); qnap_tsx1x_register_flash();
kirkwood_i2c_init(); kirkwood_i2c_init();
i2c_register_board_info(0, &qnap_ts219_i2c_rtc, 1); 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_ge00_init(&qnap_ts219_ge00_data);
kirkwood_sata_init(&qnap_ts219_sata_data); kirkwood_sata_init(&qnap_ts219_sata_data);
kirkwood_ehci_init(); kirkwood_ehci_init();
......
...@@ -119,6 +119,8 @@ static unsigned int qnap_ts41x_mpp_config[] __initdata = { ...@@ -119,6 +119,8 @@ static unsigned int qnap_ts41x_mpp_config[] __initdata = {
static void __init qnap_ts41x_init(void) static void __init qnap_ts41x_init(void)
{ {
u32 dev, rev;
/* /*
* Basic setup. Needs to be called early. * Basic setup. Needs to be called early.
*/ */
...@@ -130,8 +132,15 @@ static void __init qnap_ts41x_init(void) ...@@ -130,8 +132,15 @@ static void __init qnap_ts41x_init(void)
qnap_tsx1x_register_flash(); qnap_tsx1x_register_flash();
kirkwood_i2c_init(); kirkwood_i2c_init();
i2c_register_board_info(0, &qnap_ts41x_i2c_rtc, 1); 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_ge00_init(&qnap_ts41x_ge00_data);
kirkwood_ge01_init(&qnap_ts41x_ge01_data); kirkwood_ge01_init(&qnap_ts41x_ge01_data);
kirkwood_sata_init(&qnap_ts41x_sata_data); kirkwood_sata_init(&qnap_ts41x_sata_data);
kirkwood_ehci_init(); kirkwood_ehci_init();
platform_device_register(&qnap_ts41x_button_device); platform_device_register(&qnap_ts41x_button_device);
......
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