瀏覽代碼

[ARM] Marvell OpenRD-Ultimate machine support

This patch adds support for the OpenRD Ultimate machine (could be found
at http://www.arm.linux.org.uk/developer/machines/list.php?id=2884)

Signed-off-by: Dmytro Milinevskyy <milinevskyy@gmail.com>
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Dmytro Milinevskyy 15 年之前
父節點
當前提交
43b56074b6
共有 2 個文件被更改,包括 31 次插入3 次删除
  1. 7 0
      arch/arm/mach-kirkwood/Kconfig
  2. 24 3
      arch/arm/mach-kirkwood/openrd-setup.c

+ 7 - 0
arch/arm/mach-kirkwood/Kconfig

@@ -75,6 +75,13 @@ config MACH_OPENRD_CLIENT
 	  Say 'Y' here if you want your kernel to support the
 	  Say 'Y' here if you want your kernel to support the
 	  Marvell OpenRD Client Board.
 	  Marvell OpenRD Client Board.
 
 
+config MACH_OPENRD_ULTIMATE
+	bool "Marvell OpenRD Ultimate Board"
+	select MACH_OPENRD
+	help
+	  Say 'Y' here if you want your kernel to support the
+	  Marvell OpenRD Ultimate Board.
+
 config MACH_NETSPACE_V2
 config MACH_NETSPACE_V2
 	bool "LaCie Network Space v2 NAS Board"
 	bool "LaCie Network Space v2 NAS Board"
 	help
 	help

+ 24 - 3
arch/arm/mach-kirkwood/openrd-setup.c

@@ -1,7 +1,7 @@
 /*
 /*
  * arch/arm/mach-kirkwood/openrd-setup.c
  * arch/arm/mach-kirkwood/openrd-setup.c
  *
  *
- * Marvell OpenRD (Base|Client) Board Setup
+ * Marvell OpenRD (Base|Client|Ultimate) Board Setup
  *
  *
  * This file is licensed under the terms of the GNU General Public
  * This file is licensed under the terms of the GNU General Public
  * License version 2.  This program is licensed "as is" without any
  * License version 2.  This program is licensed "as is" without any
@@ -73,9 +73,15 @@ static void __init openrd_init(void)
 
 
 	kirkwood_ehci_init();
 	kirkwood_ehci_init();
 
 
+	if (machine_is_openrd_ultimate()) {
+		openrd_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);
+		openrd_ge01_data.phy_addr = MV643XX_ETH_PHY_ADDR(1);
+	}
+
 	kirkwood_ge00_init(&openrd_ge00_data);
 	kirkwood_ge00_init(&openrd_ge00_data);
-	if (machine_is_openrd_client())
+	if (!machine_is_openrd_base())
 		kirkwood_ge01_init(&openrd_ge01_data);
 		kirkwood_ge01_init(&openrd_ge01_data);
+
 	kirkwood_sata_init(&openrd_sata_data);
 	kirkwood_sata_init(&openrd_sata_data);
 	kirkwood_sdio_init(&openrd_mvsdio_data);
 	kirkwood_sdio_init(&openrd_mvsdio_data);
 
 
@@ -84,7 +90,9 @@ static void __init openrd_init(void)
 
 
 static int __init openrd_pci_init(void)
 static int __init openrd_pci_init(void)
 {
 {
-	if (machine_is_openrd_base() || machine_is_openrd_client())
+	if (machine_is_openrd_base() ||
+	    machine_is_openrd_client() ||
+	    machine_is_openrd_ultimate())
 		kirkwood_pcie_init();
 		kirkwood_pcie_init();
 
 
 	return 0;
 	return 0;
@@ -116,3 +124,16 @@ MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board")
 	.timer		= &kirkwood_timer,
 	.timer		= &kirkwood_timer,
 MACHINE_END
 MACHINE_END
 #endif
 #endif
+
+#ifdef CONFIG_MACH_OPENRD_ULTIMATE
+MACHINE_START(OPENRD_ULTIMATE, "Marvell OpenRD Ultimate Board")
+	/* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */
+	.phys_io	= KIRKWOOD_REGS_PHYS_BASE,
+	.io_pg_offst	= ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
+	.boot_params	= 0x00000100,
+	.init_machine	= openrd_init,
+	.map_io		= kirkwood_map_io,
+	.init_irq	= kirkwood_init_irq,
+	.timer		= &kirkwood_timer,
+MACHINE_END
+#endif