Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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"
+14 −2
Original line number Diff line number Diff line
@@ -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();
+9 −0
Original line number Diff line number Diff line
@@ -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);