diff options
Diffstat (limited to 'arch/arm/mach-kirkwood')
-rw-r--r-- | arch/arm/mach-kirkwood/Kconfig | 7 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/openrd-setup.c | 27 |
2 files changed, 31 insertions, 3 deletions
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig index 427827107b4b..f638ec16bb7f 100644 --- a/arch/arm/mach-kirkwood/Kconfig +++ b/arch/arm/mach-kirkwood/Kconfig | |||
@@ -75,6 +75,13 @@ config MACH_OPENRD_CLIENT | |||
75 | Say 'Y' here if you want your kernel to support the | 75 | Say 'Y' here if you want your kernel to support the |
76 | Marvell OpenRD Client Board. | 76 | Marvell OpenRD Client Board. |
77 | 77 | ||
78 | config MACH_OPENRD_ULTIMATE | ||
79 | bool "Marvell OpenRD Ultimate Board" | ||
80 | select MACH_OPENRD | ||
81 | help | ||
82 | Say 'Y' here if you want your kernel to support the | ||
83 | Marvell OpenRD Ultimate Board. | ||
84 | |||
78 | config MACH_NETSPACE_V2 | 85 | config MACH_NETSPACE_V2 |
79 | bool "LaCie Network Space v2 NAS Board" | 86 | bool "LaCie Network Space v2 NAS Board" |
80 | help | 87 | help |
diff --git a/arch/arm/mach-kirkwood/openrd-setup.c b/arch/arm/mach-kirkwood/openrd-setup.c index ad3f1ec33796..a48103649eba 100644 --- a/arch/arm/mach-kirkwood/openrd-setup.c +++ b/arch/arm/mach-kirkwood/openrd-setup.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/arm/mach-kirkwood/openrd-setup.c | 2 | * arch/arm/mach-kirkwood/openrd-setup.c |
3 | * | 3 | * |
4 | * Marvell OpenRD (Base|Client) Board Setup | 4 | * Marvell OpenRD (Base|Client|Ultimate) Board Setup |
5 | * | 5 | * |
6 | * This file is licensed under the terms of the GNU General Public | 6 | * This file is licensed under the terms of the GNU General Public |
7 | * License version 2. This program is licensed "as is" without any | 7 | * License version 2. This program is licensed "as is" without any |
@@ -73,9 +73,15 @@ static void __init openrd_init(void) | |||
73 | 73 | ||
74 | kirkwood_ehci_init(); | 74 | kirkwood_ehci_init(); |
75 | 75 | ||
76 | if (machine_is_openrd_ultimate()) { | ||
77 | openrd_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); | ||
78 | openrd_ge01_data.phy_addr = MV643XX_ETH_PHY_ADDR(1); | ||
79 | } | ||
80 | |||
76 | kirkwood_ge00_init(&openrd_ge00_data); | 81 | kirkwood_ge00_init(&openrd_ge00_data); |
77 | if (machine_is_openrd_client()) | 82 | if (!machine_is_openrd_base()) |
78 | kirkwood_ge01_init(&openrd_ge01_data); | 83 | kirkwood_ge01_init(&openrd_ge01_data); |
84 | |||
79 | kirkwood_sata_init(&openrd_sata_data); | 85 | kirkwood_sata_init(&openrd_sata_data); |
80 | kirkwood_sdio_init(&openrd_mvsdio_data); | 86 | kirkwood_sdio_init(&openrd_mvsdio_data); |
81 | 87 | ||
@@ -84,7 +90,9 @@ static void __init openrd_init(void) | |||
84 | 90 | ||
85 | static int __init openrd_pci_init(void) | 91 | static int __init openrd_pci_init(void) |
86 | { | 92 | { |
87 | if (machine_is_openrd_base() || machine_is_openrd_client()) | 93 | if (machine_is_openrd_base() || |
94 | machine_is_openrd_client() || | ||
95 | machine_is_openrd_ultimate()) | ||
88 | kirkwood_pcie_init(); | 96 | kirkwood_pcie_init(); |
89 | 97 | ||
90 | return 0; | 98 | return 0; |
@@ -116,3 +124,16 @@ MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board") | |||
116 | .timer = &kirkwood_timer, | 124 | .timer = &kirkwood_timer, |
117 | MACHINE_END | 125 | MACHINE_END |
118 | #endif | 126 | #endif |
127 | |||
128 | #ifdef CONFIG_MACH_OPENRD_ULTIMATE | ||
129 | MACHINE_START(OPENRD_ULTIMATE, "Marvell OpenRD Ultimate Board") | ||
130 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ | ||
131 | .phys_io = KIRKWOOD_REGS_PHYS_BASE, | ||
132 | .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc, | ||
133 | .boot_params = 0x00000100, | ||
134 | .init_machine = openrd_init, | ||
135 | .map_io = kirkwood_map_io, | ||
136 | .init_irq = kirkwood_init_irq, | ||
137 | .timer = &kirkwood_timer, | ||
138 | MACHINE_END | ||
139 | #endif | ||