[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: Vitaly Wool <vwool@ru.mvista.com> Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
a5715d6dfc
commit
28f9ec349a
|
@ -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.
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* 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);
|
Loading…
Reference in New Issue