--- /dev/null
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -995,6 +995,10 @@ int __init board_register_devices(void)
+ platform_device_register(&bcm63xx_gpio_buttons_device);
+ }
+
++ if (board.num_devs) {
++ platform_add_devices(board.devs, board.num_devs);
++ }
++
+ return 0;
+ }
+
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -59,6 +59,10 @@ struct board_info {
+
+ /* Reset button */
+ struct gpio_button reset_buttons[1];
++
++ /* Additional platform devices */
++ struct platform_device **devs;
++ unsigned int num_devs;
+ };
+
+ #endif /* ! BOARD_BCM963XX_H_ */
--- /dev/null
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -995,6 +995,10 @@ int __init board_register_devices(void)
+ platform_device_register(&bcm63xx_gpio_buttons_device);
+ }
+
++ if (board.num_devs) {
++ platform_add_devices(board.devs, board.num_devs);
++ }
++
+ return 0;
+ }
+
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -59,6 +59,10 @@ struct board_info {
+
+ /* Reset button */
+ struct gpio_button reset_buttons[1];
++
++ /* Additional platform devices */
++ struct platform_device **devs;
++ unsigned int num_devs;
+ };
+
+ #endif /* ! BOARD_BCM963XX_H_ */