[ARM] 4955/1: Orion: Support the Buffalo Linkstation Pro/Live Platform
authorByron Bradley <byron.bbradley@gmail.com>
Wed, 9 Apr 2008 20:50:16 +0000 (21:50 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 10 Apr 2008 14:27:11 +0000 (15:27 +0100)
The Buffalo Linkstation Pro/Live is the same hardware as the
Kurobox Pro but without the NAND flash. This patch adds a
second MACHINE_START macro to the Kurobox setup file to minimise
code duplication.

Signed-off-by: Byron Bradley <byron.bbradley@gmail.com>
Acked-by: Nicolas Pitre <nico@marvell.com>
Acked-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-orion5x/Kconfig
arch/arm/mach-orion5x/Makefile
arch/arm/mach-orion5x/kurobox_pro-setup.c

index 01c6695..93debf3 100644 (file)
@@ -36,6 +36,14 @@ config MACH_TS209
          Say 'Y' here if you want your kernel to support the
          QNAP TS-109/TS-209 platform.
 
+config MACH_LINKSTATION_PRO
+       bool "Buffalo Linkstation Pro/Live"
+       select I2C_BOARDINFO
+       help
+         Say 'Y' here if you want your kernel to support the
+         Buffalo Linkstation Pro/Live platform. Both v1 and
+         v2 devices are supported.
+
 endmenu
 
 endif
index d894caa..9301bf5 100644 (file)
@@ -2,5 +2,6 @@ obj-y                           += common.o addr-map.o pci.o gpio.o irq.o
 obj-$(CONFIG_MACH_DB88F5281)   += db88f5281-setup.o
 obj-$(CONFIG_MACH_RD88F5182)   += rd88f5182-setup.o
 obj-$(CONFIG_MACH_KUROBOX_PRO) += kurobox_pro-setup.o
+obj-$(CONFIG_MACH_LINKSTATION_PRO) += kurobox_pro-setup.o
 obj-$(CONFIG_MACH_DNS323)      += dns323-setup.o
 obj-$(CONFIG_MACH_TS209)       += ts209-setup.o
index 8ad4390..9141345 100644 (file)
@@ -178,11 +178,6 @@ static struct mv_sata_platform_data kurobox_pro_sata_data = {
  * General Setup
  ****************************************************************************/
 
-static struct platform_device *kurobox_pro_devices[] __initdata = {
-       &kurobox_pro_nor_flash,
-       &kurobox_pro_nand_flash,
-};
-
 static void __init kurobox_pro_init(void)
 {
        /*
@@ -224,12 +219,15 @@ static void __init kurobox_pro_init(void)
 
        orion5x_gpio_set_valid_pins(0x0000000c);
 
-       platform_add_devices(kurobox_pro_devices, ARRAY_SIZE(kurobox_pro_devices));
+       platform_device_register(&kurobox_pro_nor_flash);
+       if (machine_is_kurobox_pro())
+               platform_device_register(&kurobox_pro_nand_flash);
        i2c_register_board_info(0, &kurobox_pro_i2c_rtc, 1);
        orion5x_eth_init(&kurobox_pro_eth_data);
        orion5x_sata_init(&kurobox_pro_sata_data);
 }
 
+#ifdef CONFIG_MACH_KUROBOX_PRO
 MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro")
        /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */
        .phys_io        = ORION5X_REGS_PHYS_BASE,
@@ -241,3 +239,18 @@ MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro")
        .timer          = &orion5x_timer,
        .fixup          = tag_fixup_mem32,
 MACHINE_END
+#endif
+
+#ifdef CONFIG_MACH_LINKSTATION_PRO
+MACHINE_START(LINKSTATION_PRO, "Buffalo Linkstation Pro/Live")
+       /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */
+       .phys_io        = ORION5X_REGS_PHYS_BASE,
+       .io_pg_offst    = ((ORION5X_REGS_VIRT_BASE) >> 18) & 0xFFFC,
+       .boot_params    = 0x00000100,
+       .init_machine   = kurobox_pro_init,
+       .map_io         = orion5x_map_io,
+       .init_irq       = orion5x_init_irq,
+       .timer          = &orion5x_timer,
+       .fixup          = tag_fixup_mem32,
+MACHINE_END
+#endif