--- arch/powerpc/sysdev/Makefile | 1 + arch/powerpc/sysdev/rom.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) Index: linux-2.6.22/arch/powerpc/sysdev/Makefile =================================================================== --- linux-2.6.22.orig/arch/powerpc/sysdev/Makefile +++ linux-2.6.22/arch/powerpc/sysdev/Makefile @@ -30,6 +30,7 @@ # Temporary hack until we have migrated to asm-powerpc ifeq ($(ARCH),powerpc) +obj-$(CONFIG_MTD) += rom.o obj-$(CONFIG_CPM2) += cpm2_common.o cpm2_pic.o obj-$(CONFIG_8xx) += mpc8xx_pic.o commproc.o obj-$(CONFIG_UCODE_PATCH) += micropatch.o Index: linux-2.6.22/arch/powerpc/sysdev/rom.c =================================================================== --- /dev/null +++ linux-2.6.22/arch/powerpc/sysdev/rom.c @@ -0,0 +1,32 @@ +/* + * ROM device registration + * + * (C) 2006 MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + +#include +#include +#include + +static int __init powerpc_flash_init(void) +{ + struct device_node *node = NULL; + + /* + * Register all the devices which type is "rom" + */ + while ((node = of_find_node_by_type(node, "rom")) != NULL) { + if (node->name == NULL) { + printk(KERN_WARNING "powerpc_flash_init: found 'rom' " + "device, but with no name, skipping...\n"); + continue; + } + of_platform_device_create(node, node->name, NULL); + } + return 0; +} + +arch_initcall(powerpc_flash_init);