[PATCH] Kirkwood: Add support for 6282 based QNAP devices
saeed bishara
saeed.bishara at gmail.com
Tue Dec 7 05:59:57 EST 2010
On Mon, Dec 6, 2010 at 11:53 PM, Martin Michlmayr <tbm at cyrius.com> wrote:
> * saeed bishara <saeed.bishara at gmail.com> [2010-11-30 12:43]:
>> > bool "QNAP TS-110, TS-119, TS-210, TS-219 and TS-219P Turbo NAS"
>> please add the new devices to the title as well.
>
> Ok, here's a new version:
>
> From: Martin Michlmayr <tbm at cyrius.com>
>
> 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 at cyrius.com>
>
> diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
> index 3410633..7fc603b 100644
> --- a/arch/arm/mach-kirkwood/Kconfig
> +++ b/arch/arm/mach-kirkwood/Kconfig
> @@ -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"
> diff --git a/arch/arm/mach-kirkwood/ts219-setup.c b/arch/arm/mach-kirkwood/ts219-setup.c
> index 6710bd7..dc999c4 100644
> --- a/arch/arm/mach-kirkwood/ts219-setup.c
> +++ b/arch/arm/mach-kirkwood/ts219-setup.c
> @@ -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.
> */
> @@ -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();
> diff --git a/arch/arm/mach-kirkwood/ts41x-setup.c b/arch/arm/mach-kirkwood/ts41x-setup.c
> index 3587a28..9a44029 100644
> --- a/arch/arm/mach-kirkwood/ts41x-setup.c
> +++ b/arch/arm/mach-kirkwood/ts41x-setup.c
> @@ -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.
> */
> @@ -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);
>
> --
> Martin Michlmayr
> http://www.cyrius.com/
>
looks fine to me, Nico, please merge
saeed
More information about the linux-arm-kernel
mailing list