提交 28f9ec34 编写于 作者: V Vitaly Wool 提交者: Paul Mackerras

[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: NVitaly Wool <vwool@ru.mvista.com>
Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: NPaul Mackerras <paulus@samba.org>
上级 a5715d6d
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
IBM Corp. IBM Corp.
(c) 2005 Becky Bruce <becky.bruce at freescale.com>, (c) 2005 Becky Bruce <becky.bruce at freescale.com>,
Freescale Semiconductor, FSL SOC and 32-bit additions 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. 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. ...@@ -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. More devices will be defined as this spec matures.
......
...@@ -11,6 +11,7 @@ obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o ...@@ -11,6 +11,7 @@ obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o
obj-$(CONFIG_FSL_SOC) += fsl_soc.o obj-$(CONFIG_FSL_SOC) += fsl_soc.o
obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o
obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ obj-$(CONFIG_QUICC_ENGINE) += qe_lib/
obj-$(CONFIG_MTD) += rom.o
ifeq ($(CONFIG_PPC_MERGE),y) ifeq ($(CONFIG_PPC_MERGE),y)
obj-$(CONFIG_PPC_I8259) += i8259.o obj-$(CONFIG_PPC_I8259) += i8259.o
......
/*
* 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);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册