--- a/arch/mips/bcm63xx/dev-flash.c
+++ b/arch/mips/bcm63xx/dev-flash.c
@@ -23,6 +23,8 @@
 #include <bcm63xx_regs.h>
 #include <bcm63xx_io.h>
 
+#include "boards/board_common.h"
+
 static int flash_type;
 
 static struct mtd_partition mtd_partitions[] = {
@@ -179,6 +181,9 @@ int __init bcm63xx_flash_register(void)
 
 	switch (flash_type) {
 	case BCM63XX_FLASH_TYPE_PARALLEL:
+		/* don't register when already registered through from dtb */
+		if (board_of_device_present("pflash"))
+			return 0;
 
 		if (!mtd_resources[0].start) {
 			/* read base address of boot chip select (0) */
