Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28f9ec34 authored by Vitaly Wool's avatar Vitaly Wool Committed by Paul Mackerras
Browse files

[POWERPC] Add of_platform support for ROM devices



This adds support for flash device descriptions to the OF device tree.
It's inspired by and partially borrowed from Sergei's patch "[RFC]
Adding MTD to device tree.patch".

Signed-off-by: default avatarVitaly Wool <vwool@ru.mvista.com>
Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent a5715d6d
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
@@ -6,6 +6,8 @@
    IBM Corp.
(c) 2005 Becky Bruce <becky.bruce at freescale.com>,
    Freescale Semiconductor, FSL SOC and 32-bit additions
(c) 2006 MontaVista Software, Inc.
    Flash chip node definition

   May 18, 2005: Rev 0.1 - Initial draft, no chapter III yet.

@@ -1693,6 +1695,43 @@ platforms are moved over to use the flattened-device-tree model.
		};
	};

    g) Flash chip nodes

    Flash chips (Memory Technology Devices) are often used for solid state
    file systems on embedded devices.

    Required properties:

     - device_type : has to be "rom"
     - compatible : Should specify what this ROM device is compatible with
       (i.e. "onenand"). Currently, this is most likely to be "direct-mapped"
       (which corresponds to the MTD physmap mapping driver).
     - regs : Offset and length of the register set (or memory mapping) for
       the device.

    Recommended properties :

     - bank-width : Width of the flash data bus in bytes. Required
       for the NOR flashes (compatible == "direct-mapped" and others) ONLY.
     - partitions : Several pairs of 32-bit values where the first value is
       partition's offset from the start of the device and the second one is
       partition size in bytes with LSB used to signify a read only
       partititon (so, the parition size should always be an even number).
     - partition-names : The list of concatenated zero terminated strings
       representing the partition names.

   Example:

 	flash@ff000000 {
 		device_type = "rom";
 		compatible = "direct-mapped";
 		regs = <ff000000 01000000>;
 		bank-width = <4>;
 		partitions = <00000000 00f80000
 			      00f80000 00080001>;
 		partition-names = "fs\0firmware";
 	};

   More devices will be defined as this spec matures.


+1 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o
obj-$(CONFIG_FSL_SOC)		+= fsl_soc.o
obj-$(CONFIG_TSI108_BRIDGE)	+= tsi108_pci.o tsi108_dev.o
obj-$(CONFIG_QUICC_ENGINE)	+= qe_lib/
obj-$(CONFIG_MTD)		+= rom.o

ifeq ($(CONFIG_PPC_MERGE),y)
obj-$(CONFIG_PPC_I8259)		+= i8259.o
+31 −0
Original line number Diff line number Diff line
/*
 * 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 <linux/kernel.h>
#include <asm/of_device.h>

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);