瀏覽代碼

[ARM] 4955/1: Orion: Support the Buffalo Linkstation Pro/Live Platform

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>
Byron Bradley 17 年之前
父節點
當前提交
875492511a
共有 3 個文件被更改,包括 28 次插入6 次删除
  1. 8 0
      arch/arm/mach-orion5x/Kconfig
  2. 1 0
      arch/arm/mach-orion5x/Makefile
  3. 19 6
      arch/arm/mach-orion5x/kurobox_pro-setup.c

+ 8 - 0
arch/arm/mach-orion5x/Kconfig

@@ -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

+ 1 - 0
arch/arm/mach-orion5x/Makefile

@@ -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

+ 19 - 6
arch/arm/mach-orion5x/kurobox_pro-setup.c

@@ -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