[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